reactingTwoPhaseEulerFoam求解器的相变求解过程
-
Here:
if (phase1_.divU().valid() && phase2_.divU().valid()) { tdgdt = ( alpha2() *phase1_.divU()()() - alpha1() *phase2_.divU()()() ); }
// Set the phase dilatation rates if (pEqnComp1.valid()) { phase1.divU(-pEqnComp1 & p_rgh); } if (pEqnComp2.valid()) { phase2.divU(-pEqnComp2 & p_rgh); }
-
@东岳 代码如下:
tmp<fvScalarMatrix> pEqnComp1; tmp<fvScalarMatrix> pEqnComp2; // Construct the compressibility parts of the pressure equation if (pimple.transonic()) { if (phase1.compressible()) { surfaceScalarField phid1 ( IOobject::groupName("phid", phase1.name()), fvc::interpolate(psi1)*phi1 ); pEqnComp1 = ( phase1.continuityError() - fvc::Sp(fvc::ddt(alpha1) + fvc::div(alphaPhi1), rho1) )/rho1 //相方程可压缩部分 + correction ( (alpha1/rho1)* ( psi1*fvm::ddt(p_rgh) + fvm::div(phid1, p_rgh) - fvm::Sp(fvc::div(phid1), p_rgh) ) ); deleteDemandDrivenData(pEqnComp1.ref().faceFluxCorrectionPtr()); pEqnComp1.ref().relax(); }
if (phase1.compressible()) { phase1.divU(-pEqnComp1 & p_rgh);//divU(divU_)函数返回自身参数 }
// Construct the dilatation rate source term tmp<volScalarField::Internal> tdgdt; if (phase1_.divU().valid() && phase2_.divU().valid()) { tdgdt = ( alpha2() *phase1_.divU()()() - alpha1() *phase2_.divU()()() ); }
如此看来是不是dgdt1=alpha1* alpha2* dgdt2* p_rgh?难道我还有遗漏?