算例比较upwind与linearUpwind对结果的影响
-
模拟建筑物风场,使用了fluent和OpenFOAM,主要对比了对流格式的影响,发现OpenFOAM的upwind算的摩擦速度竟然比linearUpwind更接近论文结果。难以理解,希望大家给与看法。
需要说明的是参考论文采用了fluent计算,fluent,OpenFOAM湍流模型均为realizable k-$\epsilon$。
fluent计算
- 首先是使用fluent进行计算,由于fluent默认的动量方程的格式就是二阶迎风,只有湍流k和$\epsilon$采用了一阶迎风,因此对湍流k和$\epsilon$的格式进行变量控制
k $\epsilon$ 梯度 动量 fluentCase1 一阶迎风 一阶迎风 最小二乘法 二阶迎风 fluentCase2 二阶迎风 二阶迎风 最小二乘法 二阶迎风 计算结果与论文比较见图1
图1 fluent与论文摩擦速度计算结果 可以看出,湍流k和$\epsilon$使用二阶迎风格式后,与论文更加接近,可以认为使用二阶迎风格式后,计算更加准确。
OpenFOAM计算
- 由于通过fluent计算发现,湍流k和$\epsilon$采用二阶迎风格式后,计算能更加准确,因此OpenFOAM计算中,对流的k和$\epsilon$项均采用二阶迎风,变量控制为网格和速度的对流项格式:
div(phi,U) k和$\epsilon$ grad laplace solver OFCase1(最小网格尺寸与fluent一样) Gauss upwind Gauss linearUpwind default Gauss linear Gauss linear corrected SIMPLE+非正交修正1次 OFCase2(网格与OFCase1相同) Gauss linearUpwind grad(U) Gauss linearUpwind default Gauss linear Gauss linear corrected SIMPLE+非正交修正1次 OFFinerCase1(最小网格尺寸比OFCase1精细) Gauss upwind Gauss linearUpwind default Gauss linear Gauss linear corrected SIMPLE+非正交修正2次 OFFinerCase2(网格与OFFinerCase1相同) Gauss linearUpwind grad(U) Gauss linearUpwind default Gauss linear Gauss linear corrected SIMPLE+非正交修正2次 计算结果与论文比较见图2
图2 OpenFOAM与论文摩擦速度计算结果 由图2可以看出:
1.网格加密和非正交修正对结果影响已经不大,影响结果的是div(phi,U)的格式
2. Gauss upwind 比 Gauss linearUpwind grad(U)的摩擦速度计算结果更接近论文最优结果综合
图3 最优结果综合 结论
- fluent中尽量采用二阶格式,由于动量已经采用了二阶迎风,湍流默认的一阶迎风,应改为二阶迎风使用
- OpenFOAM中div(phi,U)项使用Gauss upwind结果比Gauss linearUpwind grad(U)更接近论文,不知原因,希望大家指教
- fluent和OpenFOAM计算结果有差异,但差距不大。由于论文本身采用的是fluent计算,因此使用fluent验证的结果与论文更接近。
-
最小网格尺寸与fluent一样
OpenFOAM与FLuent为什么不采用同样的网格?
-
@东岳 是一样的网格,只是fluent是2D的网格,OpenFOAM网格是3D,但是使用二维计算的。OF网格完全是由fluent网格沿着z轴拉伸得到的。因此可以说fluent网格与OF网格其实是一样的。。
-
@Samuel-Tu https://www.cfd-china.com/topic/3259 这个帖子里面2D与3D有完全不同的结果
-
@东岳 论文也是用的fluent 2D算的,因此我在OF中也是用的二维计算。入口的边界设置的速度,k和$\epsilon$的剖面也是一致的。
-
@Samuel-Tu OpenFOAM中div(phi,U)项采用 linear的精度要比linearUpwind高,你用linear格式算一个看看结果
-
@波流力 好的。
-
@东岳 能再编辑这个帖子吗。我还想补充一下壁面条件的设置。。我都是加了低雷诺修正的。。
-
二阶迎风反而比一阶迎风差的特别远,不知道为什么会这样。。。
-
补充OF div(phi,U)项采用 linear计算结果,OFFinerCase3
差距还是挺大的,感觉还是upwind最接近论文 -
你库朗数多少?
-
@Samuel-Tu 保持小于0.5试试
-
@波流力 simpleFoam不用库朗数,这是稳态计算
-
我现在不知道是不是我k和$\epsilon$的初始场设置的原因。内部初始场我是用的相应剖面的平均值。
-
-
@东岳 y方向是不计算的方向,因此y方向只画了一层网格(fluent二维网格必须是x-y方向的,因此在hyperMesh中把fluent网格先绕x轴旋转90度,变为x-z方向,再沿着y方向推出一层网格,就变为三维网格了),然后再把平行于x-z平面的两个面设置为empty。
-
你是否比较Upwind格式下的残差曲线和linearUpwind 格式的差别呢?这两方法在OpenFOAM中的收敛性是不一样的。或者设置Porbes探针观察下数据采样点最后的波动情况。我觉的是收敛性影响的。有复杂地形或者建筑群的边界层计算时,OpenFOAM高阶阶方案的收敛性并不好,会影响计算精度@李东岳