Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
@mengweilm425 在 关于OpenFOAM snappyHexMesh 画网格的问题 中说:
我们尝试了让红色圆形的部分凸出来一点,或者凹下去一点,但是需要在灰色的网格部分再画一个过度区,这样圆形的边界就能准确的描述出来,但是这样就破坏了原有的几何形状。
这个不应该会这样。我初步感觉你的几何是不是有重复。如果是这样的话,这个可以提bug
@wwzhao
是的,OpenFOAM中面的方向定义永远是从小编号指向大编号,Gauss定理中面的方向指向外。也许把这些面分为大面和小面区分一下更容易理解。
对于编号大于P的单元U,他们之间面上的量为:
ϕf=ϖϕP+(1−ϖ)ϕU
m˙f=(ρu)f⋅Sf
对于编号小于P的单元L,他们之间面上的量为:
ϕf=(1−ϖ)ϕP+ϖϕL
m˙f=−(ρu)f⋅Sf
∑f∼nb(P)(ρuϕ)f⋅Sf=∑N∈L(P)(−m˙fϕf)+∑N∈U(P)m˙fϕf =∑N∈L(P)−m˙f[(1−ϖ)ϕP+ϖϕN]+∑N∈U(P)m˙f[ϖϕP+(1−ϖ)ϕN]
=(∑N∈L(P)−m˙f(1−ϖ)+∑N∈U(P)m˙fϖ)ϕP+∑N∈L(P)−m˙fϖϕN+∑N∈U(P)m˙f(1−ϖ)ϕN
这样可以看出lower存的是 −ϖfm˙f, upper存的是m˙f(1−ϖ)f.并且diag存的是 aP=−[∑N∈L(P)m˙f(1−ϖ)+∑N∈U(P)(−m˙fϖ)]
厉害了我的哥哥姐姐们
@cfd-china −∇p 应该写成 -fvc::grad(p) 更不容易引起误解,因为方程左边是对单元体积分并用高斯定理和离散后得到的矩阵,而右边是没有对单元体进行积分的。