mvConvection->fvmDiv
-
各位老师晚上好,在看sprayFoam代码的过程中,发现其在YEqn.H中定义了一个mvConvection变量
tmp<fv::convectionScheme<scalar>> mvConvection ( fv::convectionScheme<scalar>::New ( mesh, fields, phi, mesh.divScheme("div(phi,Yi_h)") ) );
并通过
mvConvection->fvmDiv(phi, Yi)
来表示对流项,想问一下他与fvm::div
的区别在哪里呢?以及fv::convectionScheme<scalar>::New
中的各个量有什么意义呢? -
@李东岳 李老师您好
我参考的组分方程中的扩散项采取了以下的形式:// convection + ( UseMvConvection ? mvConvection->fvmDiv(phi + phiVc, Yi) : fvm::div(phi + phiVc, Yi, "div(phi,Yi_h)") )
并且cfd-online中也有人指出:
“When I use separate but same scheme for these two variable ( fvm::div(phi, field) ), I found that the results is different with mvConvection ( mvConvection->fvmDiv(phi, field) ).”
所以或许mvConvection->fvmDiv(phi, Yi)
和fvm::div
有点区别,不知道您有没有研究过? -
tmp<fv::convectionScheme<scalar> > mvConvection ( fv::convectionScheme<scalar>::New ( mesh, fields, phi, mesh.divScheme("div(phi,Yi_h)") ) ); { reaction->correct(); dQ = reaction->dQ(); label inertIndex = -1; volScalarField Yt(0.0*Y[0]); forAll(Y, i) { if (Y[i].name() != inertSpecie) { volScalarField& Yi = Y[i]; fvScalarMatrix YiEqn ( fvm::ddt(rho, Yi) + mvConvection->fvmDiv(phi, Yi)
这个看起来并不会导致区别。有可能cfd-online的用户没做特别仔细的判定吧。