reactingTwoPhaseEulerFoam求解器的相变求解过程
-
从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); }
-
@zwl 在 reactingTwoPhaseEulerFoam求解器的相变求解过程 中说:
dgdt1=alpha1alpha2dgdt2p_rgh
乘号漏掉了:dgdt1=alpha1 * alpha2 * dgdt2*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?难道我还有遗漏?
2019年1月4日 12:26
2/15
2019年1月9日 03:05