CFD有限体积3-网格

8 篇文章 0 订阅

参考文献:

F. Moukalled, L. Mangani, M. Darwish. The finite volume method in computational fluid dynamics. An advanced introduction with Openfoam and Matlab[M]. Chapter 6.

本文仅介绍结构化网格。


        1. 有限体积网格

        以“在网格上计算参数梯度”问题说明FVM对网格的要求。

        网格单元上参数C的平均梯度为

根据散度定理,将体积分转化为面积分

根据中值定理

上式中\bar{\phi _{f}}为界面中心点处参数值,该值由与该界面相邻的网格单元中心点(cell-cenered)参数值确定,如下图所示,f处值由C处和F1处参数值插值获得。

因此,FVM需要网格生成模块提供的信息有:界面向量(\vec{S_{f}},包括面积大小和方向)、单元中心点和相邻单元中心点参数值(\phi _{C}, \phi_{F}) ,以及计算界面上参数值(\bar{\phi_{f}})的插值方法(也可称为参数变化型线)。假设

\bar{\phi_{f}}=g_{C}\phi_{C}+g_{F_{1}}\phi_{F_{1}}

 gc和gf1的给定方法代表不同插值方法,给定一种方法

g_{F_{1}}=V_{C}/(V_{C}+V_{F_{1}}), g_{C}=V_{F_{1}}/(V_{C}+V_{F_{1}})


        2. 结构化网格

        2.1 网格拓扑

        网格不仅需要提供网格几何坐标值、界面参数等,还需要提供网格拓扑信息。网格拓扑信息代表了网格局部索引与全局索引之间的关系(需要网格拓扑是因为问题的全局求解矩阵是根据各网格单元的积分方程构造的)。对结构化网格,其拓扑是已知的,无需另外定义。

        对二维结构化网格,全局坐标n与局部坐标(i,j)之间的关系为

对三维结构化网格,全局坐标n与局部坐标(i, j, k)之间的关系为

         2.2 几何信息

        对网格单元(i, j)

       其四周界面为S1(i, j), S2(i, j), S1(i+1, j), S2(i, j+1) (为界面名,界面方向由全局索引较小单元指向全局索引较大单元)。当针对单元时,规定单元界面法向量向外,因此

存储信息:2D和3D结构化网格的相关信息存储可以用1D列表/矩阵,如对Ni*Nj的2D网格,可采用Ni*Nj长度的1D列表存储信息,单元(i, j)所存储列表位置为其对应的全局索引n。

        2.3 单元参数

        对单元(i, j)

其梯度根据公式

可写作

\bar{\nabla\phi_{i,j}}=\frac{1}{V_{i,j}}(\bar{\phi}_{i+1/2, j}\vec{S}_{i+1/2,j}+\bar{\phi}_{i-1/2, j}\vec{S}_{i-1/2,j}+\bar{\phi}_{i, j+1/2}\vec{S}_{i,j+1/2}+\bar{\phi}_{i, j-1/2}\vec{S}_{i,j-1/2})

根据界面方向,上式

=\frac{1}{V_{i,j}}(\bar{\phi}_{i+1/2, j}\vec{S1}_{i+1,j}-\bar{\phi}_{i-1/2, j}\vec{S1}_{i,j}+\bar{\phi}_{i, j+1/2}\vec{S2}_{i,j+1}-\bar{\phi}_{i, j-1/2}\vec{S2}_{i,j})

当采用全局索引时,上式可写作

\bar{\nabla\phi_{n}}=\frac{1}{V_{n}}(\bar{\phi}_{n+1/2}\vec{S}_{n+1/2}+\bar{\phi}_{n-1/2}\vec{S}_{n-1/2}+\bar{\phi}_{n+Ni/2}\vec{S}_{n+Ni/2}+\bar{\phi}_{n-Ni/2}\vec{S}_{n-Ni/2})

注意界面正方向总是由索引值较小的单元指向索引值较大的单元。

        以上内容更清楚的说明,在FVM计算前,网格生成需要提供的信息包括: 拓扑、界面向量(\vec{S_{f}},包括面积大小和方向)、单元中心点和相邻单元中心点参数值 ,以及计算界面上参数值的插值方法(也可称为参数变化型线)。下文说明这些参数值的给定/计算方法,首先介绍常见的网格单元类型。

        2.2.1 网格单元类型

        最常用的三维网格单元类型包括四面体、六面体、棱柱等,如下图所示。

最常用的二维网格单元类型包括四边形、三角形、五角形等,如下图所示。

在进行二维计算时,二维网格的体积是将二维网格面积乘以单位长度1(平面法矢量方向),因此二维网格参数与三维网格参数的计算方法一致。

        2.2.2 单元面积和中心点坐标计算

        多边形的几何中心为

\vec{x}_{G}=\frac{1}{k}\sum_{i=1}^{k}\vec{x}_{i}

几何中心一般与多边形中心点不重合,当多边形为三角形时,二者重合。为了计算多边形中心点,以几何中心为顶点,将多边形划分为若干三角形,如下图所示

得多边形面积与中心点位置为

其中三角形面积的计算方法为,给定3点1,2,3和坐标原点,形成矢量r1,r2,r3,该3点形成的三角形的面积为

当为二维网格时,z3=z2=z1,因此,

        2.2.3 体积和单元中心

         计算多面体体积和中心时,首先计算其几何中心,再以其为顶点,以多面体的面为底面,将多面体分解为若干棱柱。具体计算方法如下

        2.2.4 界面权重系数

        为由单元中心点处参数值计算界面上参数值,需要定义单元中心点之间的参数分布型线。1D情况下,进行线性插值时,可得

2D或3D情况下,基于界面法向量上单元中心点距离插值

 f为界面中心点,ef为界面单位法向量


        3. uFVM mesh

        uFVM是一个教学/研究用非结构化FVM Matlab code,uFVM在许多方面都与工业开源程序Openfoam相似,但更为简单。与网格相关的信息存储于算例物理性质设置路径constant的polyMesh中。如下图展示了算例flange中包含的文件

其中0文件中包含了初始场信息、边界条件等;constant中包含相关物理性质,如polyMesh为网格参数;system中进行算例设置、数值格式设置/选择、求解参数定义。本文重点介绍polyMesh。

        polyMesh包含文件夹points, faces, owners, neighbours, boundary. 

        1) points 

        形式如下所示,由上之下为第0个,第1个,……第n个点。

        

举例:

 

         2) faces

        形式如下,由上至下为第0个,第1个,……,第n个面。每个面由组成其边缘线的顶点定义。

举例:

        3)owners

        owner文件中存储的是截面的owner单元,所在行位置代表其所在界面。owner的总数等于界面总数(内部界面+边界界面),owner的最大值等于网格单元数。

        形式如下:

举例:

 

         4) neighbors

        neighbor文件中存储的是内部界面的neighbor单元,neighbor总数等于内部界面总数。

        形式如下:

举例:

 

        5)boundary

        boundary文件列出了计算域的边界。

        形式如下:

 

举例:

4个边界,名分别为patch1, patch2, patch3, patch4; 类型均为wall; 分别有2440,348,96,384个界面; 开始界面索引分别为15316...

         uFVM中采用cfdReadOpenFoamMesh(现版本中采用cfdReadPolyMesh)读取OpenFOAM网格,依次读入points,faces, boundary, owners, neighbors,形成elements,并利用读入数据计算其他几何和拓扑信息。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hypermesh是一款常用的工程分析软件,它在CFD(Computational Fluid Dynamics,计算流体动力学)网格划分方面具备强大的功能和广泛的应用。 在使用Hypermesh进行CFD网格划分时,首先需要导入几何模型。用户可以选择导入常见的几何文件格式,例如IGES、STEP等,或者通过Hypermesh自带的几何建模工具绘制几何模型。接下来,用户可以根据实际需求进行网格划分。 Hypermesh提供了多种不同的网格划分方法,包括结构化网格划分和非结构化网格划分。结构化网格划分适用于简单几何形状,可以生成规则的矩形或六面体网格。而非结构化网格划分适用于复杂几何形状,可以生成具有更高拟合度的不规则形状网格。 在进行网格划分时,用户可以根据需要调整划分的密度和细节。Hypermesh提供了丰富的网格控制功能,包括用于调整网格大小和划分比例的工具。用户还可以添加和移动节点,以便更好地捕捉流体流动中的关键细节。 完成网格划分后,可以进行网格质量检查。Hypermesh提供了各种网格质量评估指标,例如网格散度、网格变形和网格剪应力等。这些指标可以帮助用户评估网格的质量,并进行必要的调整和改进。 总的来说,Hypermesh是一款功能强大的CFD网格划分工具,具备丰富的功能和灵活的操作方式。通过合理使用Hypermesh的网格划分功能,可以帮助工程师更好地进行流体力学分析和优化设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值