微分公式OpenFOAM编程
-
遇到一个不是那么常规的微分公式,请大家帮忙看看我编的程序对不对。
数学公式如下其中
为代求的标量场, 为已知速度场, 就是一个已知标量,例如 。左边第二项式 只是向 方向的导数,OpenFOAM里面没有直接能够表这一项的,因此我做了如下转换:其中
此时,式(1)可转化为:式(3)是div的典型形式,在OF中,我是这样实现的:
#首先构造一个体心向量场 volVectorField W ( IOobject ( "W", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE ), mesh, dimensionedVector ( "", dimensionSet(0,1,-1,0,0,0), vector(0.0,0.0,0.2)#w=0.2 ) ); W+=U; #W+U,速度场已知 surfaceScalarField phiW ( "phiW", fvc::flux(W) ); #方程可写为: fvm::div(phiW, beta)
-
@东岳 在 微分公式OpenFOAM编程 中说:
volVectorField t = fvc::grad(wbeta);
volScalarField t2 = t.component(2);我有试过求梯度,再求分量,通过源项的方式加入微分方程中:
volVectorField t = fvc::grad(wbeta); volScalarField t2 = t.component(2); fvm::div(phi, beta)==-fvc::su(t2, beta);
这样可以吗
。。
2020年8月5日 09:21
1/3
2020年8月5日 13:12