OpenFOAM中MRF的代码
-
MRF方法,理论上应该是在相对参考系中求解绝对速度,按照OpenFOAM wiki:http://openfoamwiki.net/index.php/See_the_MRF_development 的思路,其公式应该是: , 对应的OpenFOAM代码为:
tmp<fvVectorMatrix> tUEqn ( fvm::ddt(U) + fvm::div(phi, U) + MRF.DDt(U) + turbulence->divDevReff(U) == fvOptions(U) );
代码实现中,
MRF.DDt(U)
即为omega^ UI,注意此处是显式处理,作为动量方程的源项,而通过连续性方程组建压力泊松方程时,phiHbyA
只考虑了相对通量omege^r
,即MRF.makeRelative(phiHbyA);
;但并没有考虑omega^ UI这个源项,有人注意过这段代码实现吗?是不是这里的方程错了? -
我最近看了下,
上面这个方程应该是稳态算法的方程。里面
MRF.DDt(U)
用于处理$\Omega\times\bfU_I$。但是上面这个方程不是OpenFOAM植入的方程。在瞬态情况下应该是下面这个:
$$
\frac{\p \bfU_I}{\p t}+\nabla\cdot(\bfU_I\bfU_R)+\Omega\times\bfU_I=...
$$
下面的瞬态代码分别对应:tmp<fvVectorMatrix> tUEqn ( fvm::ddt(U) //第1项 + fvm::div(phi, U) //第2项 + MRF.DDt(U) //第3项 + turbulence->divDevReff(U) == fvOptions(U) );