关于“CFD中的能量方程”中最后的方程(16)
-
东岳大神,最近在看rhopimpleFoam 解析,发现pEqn.H代码中以前这一行
volScalarField Dp("Dp", rho*rAU);
在新版的求解器中已经没有了,取而代之的是
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
而对应的Dp
fvScalarMatrix pEqn //方程(99) ( fvm::ddt(psi, p) + fvc::div(phiHbyA) - fvm::laplacian(Dp, p)//就是这一行 == fvOptions(psi, p, rho.name()) );
已经改成了
- fvm::laplacian(rhorAUf, p)
-
@hurricane007
区别不大:expressionless: 哈哈 -
@cfd-china 嗯啊其实基本没区别。。。不过我有点疑惑的是一个用的是volScalarField 另一个是surfaceScalarField,所以差别应该是一个是体心的值,另一个是差值到面上了?
-
@hurricane007
fvm::laplacian(A, p)
中的A可以使体场也可以是面场,应该在fvm::laplacian()
函数内部有重载,你可以看这个函数的C文件看看:expressionless: -
@cfd-china 感谢指教!我还有个问题,为啥有的要用体场,而有的要用面场呢?这个应该是牵涉到对高斯定理散度体积分变为面积分?而就这个例子来说,把以前的体心值改成了面上的插值,数值上有什么影响?
-
为啥有的要用体场,而有的要用面场呢?这个应该是牵涉到对高斯定理散度体积分变为面积分?
体场一般存储值,有限体积法大体都需要把体场变成面场,通过高斯定理处理通量求解NS方程,所以说通量是有限体积法重要的概念,也是有限体积法的优点。
而就这个例子来说,把以前的体心值改成了面上的插值,数值上有什么影响?
我建议你看看
fvm::laplacian()
函数重载,有可能处理体场的函数调用了处理面场的函数,这样的话结果是一样的。
https://github.com/OpenFOAM/OpenFOAM-2.2.x/blob/master/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.C
大略看了下,一样的。 -
@李东岳 老师,我发现东岳流体“CFD中的能量方程”可能的三处笔误,供您参考。
2. 我觉得应该是将方程(20)代入到(18),得到的方程(22)应该缺少了热源项。因为在下面一行才忽略热源得到的方程(23)。
3. 由方程(26)(27)(18)得到的方程(29)(30)(31)应该都有粘性力做功和重力做功项的。是不是(29)和(30)缺少粘性力做功和重力做功项?(31)缺少重力做功项?
-
@李东岳 哦哦,没问题了。
12/13