通量phi的计算问题
-
各位大佬,请教一个代码问题:关于求解器在什么时候计算通量phi的值
以simpleFoam为例,在组装速度方程系数矩阵的时候,散度项会用到phi:tmp<fvVectorMatrix> tUEqn ( fvm::div(phi, U) + MRF.DDt(U) + turbulence->divDevSigma(U) == fvModels.source(U) );
phi是在createPhi.H里初始化的,代码如下:
surfaceScalarField phi ( IOobject ( "phi", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), fvc::flux(U) );
fvc::flux(U)是确定了phi的一个计算方式?那,只要用到phi的地方就会更新phi的值吗,还是有什么代码会暗中计算一下,如果我在程序里写phi=fvc::flux(U),也能正常计算是吗
主要是现在我需要在求解器里加入另一个速度的方程,需要计算这个速度的通量,甚至在主流U的方程里就会用到另一个速度的通量,但是通量的计算结果不太对,每隔一个数就会有一个0tmp<fvVectorMatrix> tUEqn ( fvm::div(phi, U) + MRF.DDt(U) + turbulence->divDevSigma(U) == fvModels.source(U) + fvc::div(phi2, U2) );
类似上面这样的形式,直接在方程里加一个另一个速度的散度项,这样计算出来的phi2就不太对,请问这样直接引用phi2对吗各位老师,还是我需要在速度方程之前自己算一下这个phi2的值