drift-flux model中相对速度计算问题
-
把源代码放上来,我用的是v2312版本的OpenFOAM,tutorials里面有参考算例
compressibleDriftFoam.zip -
请教个问题,就是再滑移速度模型植入时,出现了类似于棋盘一样的相对速度Udm,想问下这种问题该怎么处理呢~
求解器更换成了twoPhaseMixingCentralFoam(Kraposhin Matvey的求解器https://github.com/unicfdlab/hybridCentralSolvers),在其中的YEqn中添加了滑移速度Udm的通量,但是出现了Udm的棋盘一样的变化,不清楚问题出在了哪里,请大佬指条明路~
Udm植入时使用了固定大小的Udc,Udc的方向由加速度方向决定(认为气液两相惯性的差异导致速度的差异)。
这个算例在孔内是50%质量含气率的气液两相,入口压力10MPa,温度383K,(这是个测试,并非真实场景) -
我参考的是这篇文章~
1-s2.0-S0301932221001397-main.pdf -
方程19处理成固定值是指Ur的大小方程都恒定么?这个时候不会出现震荡,但是遇到了一个问题,就是Y在计算时会超过1,应该算是过度堆积?这种问题应该怎么处理呢~ 这里我也使用了MULES进行限制。
MULES的调用是这样的void Foam::mulesWithDiffusionImplicitLimiter ( const volScalarField& rho, volScalarField& Y, const surfaceScalarField& phi, scalarField& lambdaFace, surfaceScalarField& rhoPhif, surfaceScalarField& diffFlux, const surfaceScalarField& Dmi, const fvScalarMatrix& SuSp ) { const fvMesh& mesh = rho.mesh(); const word Yname (Y.name()); Y.rename("Yi"); upwind<scalar> UDs(mesh, phi); fvScalarMatrix YConvection ( fv::gaussConvectionScheme<scalar>(mesh, phi, UDs).fvmDiv(phi, Y) ); surfaceScalarField rhoPhifBD (YConvection.flux()); surfaceScalarField& rhoPhifCorr = rhoPhif; rhoPhifCorr -= rhoPhifBD; volScalarField Su ( "Su", SuSp & Y ); MULES::limiter ( lambdaFace, 1.0/mesh.time().deltaTValue(), rho, Y, rhoPhifBD, rhoPhifCorr, zeroField(), Su, oneField(), //psiMax, zeroField() //psiMin, ); Y.rename(Yname); }