buoyantPimpleFoam相关问题
-
@李东岳 我按步骤顺序来说我看到的有啥不一样哈,为了方便比较,我就用截图的方式了。
步骤1
#include "rhoEqn.H"来求解$\rho^{*}$
of8中buoyantPimpleFoam.C头文件并没有和它类似的
步骤2
组建速度方程在buoyantPimpleFoam.C文件中也没有找到,反而是在该文件夹下的UEqn.H文件里面找打了
步骤3
用thermo.correct()更新$\psi^{*}$,用rho = thermo.rho()更新$\rho^{\ast}$
前者我是在EEqn.H中找到的,这是个啥文件呀?后者我是在pEqn.H里面找到的。
步骤4
用
fvScalarMatrix p_rghDDtEqn ( psi*correction(fvm::ddt(p_rgh)) + fvc::ddt(rho) + fvc::div(phi) - fvm::laplacian(rhorAUf, p_rgh) );
组建压力柏松方程,我在pEqn.H文件中找到了一个类似的,但长得不一样
步骤5
用
phi += p_rghEqn.flux()
来更新速度,我在pEqn.H文件中找到了一个类似的,但长得不一样
步骤6
我在pEqn.H文件中找到了密度更新
步骤7
我在pEqn.H文件中找到了判断连续性误差
为啥会分散到这么多文件中呀?除了您展示的关键代码,其他部分例如
if (correctPhi) { divrhoU = new volScalarField ( "divrhoU", fvc::div(fvc::absolute(phi, rho, U)) ); } if (LTS) { #include "setRDeltaT.H" } else { #include "compressibleCourantNo.H" #include "setDeltaT.H" }
确实看的一脸懵圈,心态处于将崩不崩的边缘
-
@李东岳 东子老师,我今天花了一整天的时间仔仔细细的看完了icoFoam(CFD: 不可压 + 瞬态)的算法,在看源代码之前有几个疑问。
问题1
红框部分应该是$U_{f}^{*}$吧?
问题2
无痛苦N-S笔记方程(5.138)我有点疑问,从红框部分接着计算,
分子部分
所以最后的结果应该为
$\frac{\phi _{WW}+\phi _{EE}-2\phi _P}{2\Delta x}\Delta y\Delta z$
所以分母系数应该是2吧?问题3
红框部分是咋来的呀?
问题4
红框部分是否应该为$U_{p}^{t}$?
问题5
应该是方程(21)相对于方程(20)存在一定的滞后吧?
问题6
方程(22)中,
$U_{p}^{'}= U_{p}^{t+\Delta t}- U_{p}^{\ast}$,
方程(29)处
$U_{p}^{\ast\ast}= U_{p}^{'}+ U_{p}^{*}$,您是想表达迭代两步之后就收敛了,所以$ U_{p}^{t+\Delta t}= U_{p}^{**}$?问题7
这里是(33)吧?
问题8
红框应该是PIMPLE吧?
-
@李东岳 老师,算法文字部分我看懂了,然后我去看源代码,icoFoam文件夹下面主要有icoFoam.C和creatFields.H俩文件,我只看了icoFoam.C文件,有几个疑问,都在PISO循环部分。
红框①
您展示的关键代码没有这行代码,感觉像是定义HbyA,constrain啥意思呀?括号里U,P有啥作用?
红框②
我看您在无痛N-S方程里面提到过phiHbyA=$\sum U_{f}\cdot S_{f}$,明显phiHbyA不等于HbyA,但您在笔记中又提到了“同时需要注意,在组建phiHbyA的时候,可以通过fvc::flux(HbyA)函数调用不同的离散格式”,意思是fvc::div(phiHbyA)=$\sum HbyA_{f}^{t+\Delta t}\cdot S_{f}$了?因为您又提到了“可以把HbyA理解为速度中间量”,不然图片中间while语句部分的fvc::div(phiHbyA)和您文章中的方程(26)就对不上了。如果真是这样的话,红框②中fvc::flux(HbyA)代表啥呀?fvc::interpolate(rAU)是插值到面上对吗? fvc::ddtCorr(U, phi)在笔记中没有搜到。
红框③和④
这俩语句作用是啥?
红框⑤
我感觉这两行代码是在PISO循环到最后一步时,计算通量的嘛?
红框⑥
我感觉是在计算速度?
红框⑦
我感觉是在更新速度?