本文介绍Fluent中的梯度计算方法。
注:本文内容来自Fluent Theory Guide 24.3.3。
”
梯度不仅用于在网格面上构造标量值,而且用于计算二阶扩散项和速度导数。流动守恒方程中的对流和扩散项计算需要用到变量的梯度。
Fluent使用以下方法计算梯度:
-
Green-Gauss Cell-Based -
Green-Gauss Node-Based -
Least Squares Cell-Based
1 Green-Gauss方法
当使用格林-高斯定理计算单元格中心处的标量的梯度时,可以写成下面的离散形式:
其中是网格面心处的值;为网格体积;为网格面向量。
2 Green-Gauss Cell-Based方法
默认情况下,上式中的面值取自相邻网格中心处的值的算术平均值,即有:
3 Green-Gauss Node-Based方法
另一种方法,可以通过面节点值的算术平均值来计算:
式中,为面节点数量。
节点值(上式中的)由节点周围的网格值的加权平均值构成,遵循最初由Holmes和Connel[1]和Rauch等[2]人提出的方法。该方法通过求解一个约束极小化问题,在任意非结构网格上从周围的网格中心值重构节点处的线性函数的精确值,同时保持了二阶空间精度。
注:Green-Gauss Node-Based梯度方法比Green-Gauss Cell-Based梯度方法更精确,特别是在不规则(倾斜和扭曲)的非结构网格上。然而其的计算成本比Green-Gauss Cell-Based梯度方法要高。
”
在密度基求解器中,基于节点梯度方法的稳定性可能会因为计算域边界上存在四面体网格而降低。要在四面体网格和混合网格上重新获得稳健性,建议选择TUI命令激活基于节点的扩展边界选项:
solve/set/nb-gradient-boundary-option? yes yes
4 Least Squares Cell-Based方法
在基于网格的最小二乘法中假定求解是线性变化的。如下图所示,网格和之间的单元值沿从网格的中心到网格的矢量变化,可以表示为:
如果为网格周围的每个网格写出类似的方程式,就会得到以下以紧凑形式写成的方程组:
式中,是纯几何函数的系数矩阵。
通过求解非平方系数矩阵在最小二乘意义下的最小化问题来确定网格梯度(通过求解最小二乘意义下的非平方系数矩阵系统的最小化问题)。上述线性方程组是超定的,可以通过使用Gram-Schmidt过程[3]分解系数矩阵来求解。这种分解为每个网格产生一个权重矩阵。因此对于以网格为中心的方法,这意味着为网格c0的每个面生成权重()的三个分量。
因此,然后可以通过将权重因子乘以差向量来计算单元格中心处的梯度:
在不规则(倾斜和扭曲)的非结构网格上,Least Squares Cell-Based梯度法的精度与Green-Gauss Node-Based梯度法相当(两者都比Green-Gauss Cell-Based梯度法好得多)。然而与Green-Gauss Node-Based梯度法相比,Least Squares Cell-Based梯度的计算成本更低,因此其被选为 Fluent求解器中的默认梯度方法。
参考文献
D. G. Holmes and S. D. Connell. Solution of the 2D Navier-Stokes Equations on Unstructured Adaptive Grids. Presented at the AIAA 9th Computational Fluid Dynamics Conference. June 1989.
[2]R. D. Rauch, J. T. Batira, and N. T. Y. Yang. Spatial Adaption Procedures on Unstructured Meshes for Accurate Unsteady Aerodynamic Flow Computations. Technical Report AIAA-91-1106. AIAA. 1991.
[3]W. Anderson and D. L. Bonhus. An Implicit Upwind Algorithm for Computing Turbulent Flows on Unstructured Grids. Computers Fluids. 23(1). 1–21. 1994.
(完)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册