多相流求解器中的曳力项实现
-
最近研究了一下OpenFOAM-v2206的twoPhaseEulerFoam求解器,注意到在文件
pU/Ueqns.H
中,动量方程的代码为U1Eqn = ( fvm::ddt(alpha1, rho1, U1) + fvm::div(alphaRhoPhi1, U1) - fvm::Sp(contErr1, U1) + MRF.DDt(alpha1*rho1 + Vm, U1) + phase1.turbulence().divDevRhoReff(U1) == - Vm *( fvm::ddt(U1) + fvm::div(phi1, U1) - fvm::Sp(fvc::div(phi1), U1) - DDtU2 ) + fvOptions(alpha1, rho1, U1) ); U1Eqn.relax(); U1Eqn += fvm::Sp(Kd, U1); fvOptions.constrain(U1Eqn); U1.correctBoundaryConditions(); fvOptions.correct(U1);
我注意到曳力项被写作
U1Eqn += fvm::Sp(Kd, U1);
然而按照我的经验,曳力似乎应该被写作
$$
F_D = K_d (\mathbf{U}_1 - \mathbf{U}_2)
$$
也就是后面的速度应该是两相速度的差值。但是好像OpenFOAM所有的多相流求解器都是按照开头代码那样实现的,非常困惑...恳请各位指点一下...