phiHbyA边界问题
-
volScalarField rAU(1.0/UEqn.A()); volVectorField HbyA("HbyA", U); HbyA = rAU*UEqn.H(); surfaceScalarField phiHbyA ( "phiHbyA", (fvc::interpolate(HbyA) & mesh.Sf()) + fvc::interpolate(rAU)*fvc::ddtCorr(U, phi) );
rAU是1/Ap, Ap是矩阵的对角线元素。
fvm::laplacian(rAU, p) == fvc::div(phiHbyA) 这一步是求解泊松方程,但需要用到phyHbyA的边界值。phiHbyA在两个网格之间的内部面是采用线性插值的interpolate(phiHbyA)这个好理解,但它是如何插值到外部边界上的?
cfdonline有个同样的讨论,但我还是没弄清楚。https://www.cfd-online.com/Forums/openfoam-programming-development/214351-fvc-interpolate-rau-boundary-faces.html -
@李东岳 李老师您好,我最近也对这个问题感到好奇,看了您的回答,也就是说phiHbyA在边界处直接赋值为边界处的通量phi即可,然后压力泊松方程里还有Ap这一项也要插值到面上,还想请教那么Ap在边界处是如何处理的呢?
-
@李东岳 李老师,那意思是说在如图公式构建压力泊松方程的时候,边界上的Ap并不做出贡献么,公式右侧的外部面求和不用考虑边界面么?我对该过程的理解有限,还希望李老师解答。
-
Ap在边界处是如何处理的呢?
http://dyfluid.com/piso.html 方程15,Ap本身是定义在vol上面的但是要插值到面上,就是简单的插值
边界上的Ap并不做出贡献么
有贡献,但不是phi那种直接定义出来的贡献,是插值过去的贡献
Ap是体场,在边界不存在值,对边界不影响
我冲说一下。Ap是定义在vol上的,是对角线系数,在边界处不存在值。但下一步需要定义Apf,存在边界值(包含通量的贡献)。
-
@李东岳 李老师,Ap定义我大概了解了,意思是计算域内部面的Apf是直接插值得到,而实际上Ap本身是对当前vol所有面如图公式求和得到的,
,那么在边界处的Apf也就考虑在边界面处的
和
就行了么。
-
-
@李东岳 不好意思,李老师,工作原因回复慢了一些,我目前只在尝试稳态simple方法的实现,那就先只考虑边界面
+
的贡献么,我去修改代码再调试一下,非常感谢!
7/12