网格生成技术研究

本文旨在对网格生成、网格优化等相关技术做总结。

Ref. from Gmsh: a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities

Let us now consider an edge e of the mesh. We define the adimensional length of the edge with respect to the size field \delta as

l_{e}=\int_{e}\frac{1}{\delta \left ( x,y,z \right )}dl

The aim of the mesh generation process is twofold:

1. Generate a mesh for which each mesh edge e is of size close to l_{e}=1,

2. Generate a mesh for which each element K is well shaped.

In other words, the aim of the mesh generation procedure is to be able to build a good quality mesh that complies with the mesh size field.

零、预修

0.1 柯西-黎曼方程 (Cauchy-Riemann Equations)

设函数f\left ( z \right )=u\left ( x,y \right )+iv\left ( x,y \right )在区域D内有定义,则f\left ( z \right )在区域内解析的充分必要条件是

1) u\left ( x,y \right )v\left ( x,y \right )D内处处可微;

2) u\left ( x,y \right )v\left ( x,y \right )D内处处满足\frac{\partial u }{\partial x}=\frac{\partial v }{\partial y},\frac{\partial u }{\partial y}=-\frac{\partial v }{\partial x}

一、网格生成概述

1.1 基本概念

1.1.1 龙格现象 (Runge phenomenon)

在计算方法中,利用多项式对某一函数的近似逼近,计算相应的函数值。一般情况下,多项式的次数越多,需要的数据就越多,而预测也就越准确。但是插值次数越高,插值结果越偏离原函数的现象称为龙格现象。

1.1.2 各向同性与各向异性

各向同性网格要求单元拉伸比(单元的长边和短边边长比)接近1的“正多边形”。

各向异性网格是指拉伸比比较大的网格,网格单元沿某一方向的伸展度较大,而沿另一方向的伸展度较小,单元的形状扁平。

二、结构化网格

结构化网格是指网格节点之间的连接关系存在隐含顺序,其可以在几何空间进行维度分解,并可以通过葛方向指标(i,j,k)增减直接得到对应连接关系。

2.1 保角变换法

2.2 代数生成方法

2.3 微分方程法

2.4 块结构化网格生成方法

三、非结构化网格

非结构网格指网格节点间的关系不再存在直接的顺序关系,节点和单元信息必须通过特点的数据结构存储。

3.1 Delaunay三角化

Delaunay三角化方法的依据是Diriehlet在1850年提出的一种利用已知点集将平面划分成凸多边形的理论。其基本思想是:给定平面上的点集P_{i},则平面上存在一系列互不重叠的凸多边形即Voronoi区域V_{i}, 任意一个Voronoi区域V_{k}包含一个给定点P_{k}并且V_{k}内的任意一点与P_{k}的距离都比与 P_{i}中其它点的距离小。其数学描述为,

V_{k}=\left \{ P:\left | P-P_{k}\right | < \left | P-P_{i}\right |, \forall j \neq k \right \}

连接相邻Voronoi域的包含点,即可构成唯一的Delaunay三角形网格。

Delannay方法的优点在于生成的网格质量好, 效率高并且有严格的数学理论基础。缺点是不能提供完美的点集分布, 并且不能保证流场边界的完整性。

3.2 阵面推进法 (Adancing Front Technique, AFT)

阵面推进方法的基本思想是:首先将待离散化区域的边界按需要的网格尺度分布和推进方向划分成各个小阵元(在二维下是线段 三维情况下是三角形面片),由这些阵元构成封闭的初始阵面。然后从某一阵元开始 在其面向流场的一侧插入新点或在现有阵面上找到一个合适点与该阵元连成三角形单元,同时也生成了新的阵元。接着将新阵元加入到阵面中,并删除被掩盖了的旧阵元,从而又形成了一个新的封闭阵面。以此方式进行逐步推进,直到最后的阵面中不存在阵元时推进过程结束,全场三角形网格即生成完毕。

阵面推进法的优点是:初始阵面即为物面 因此它不存在保证边界完整性的问题: 阵面推进是一个局部过程,相交判断仅涉及局部邻近边,因而减少了由于计算截断误差导致推进失败的可能性,而且局部性使得执行过程可以从推进的任一个中间状态开始; 在流场内引入新点是伴随推进过程自动完成的,因而易于控制网格步长分布,而且在流场的大部分区域也能得到高质量的网格。缺点是每推进一步,仅生成一个单元 因此效率较低。

3.2.1 尺寸场

在生成初始阵面和新的三角形单元时, 需要知道局部网格空间尺度参数, 这可以由背景网格提供,对背景网格的要求是它能完全覆盖计算区域。早期的阵面推进法采用非结构化背景网格,背景网格的几何形状与拓扑结构以及其上的空间尺度参数通过人为给定,这种方法缺点为人工介入成分多,不易被使用者掌握,生成的非结构化网格光滑性难于保证,进行空间尺度参数插值运算时需要进行大量的搜索运算,降低了网格的生成效率。

事实上,背景网格的唯一作用是为计算区域内的任一点提供网格尺度参数, 这完全可由结构化笛卡尔直角坐标网格来提供。背景网格上的空间尺度参数分布就类似于热源扩散的温度场的分布,网格的疏密程度可由背景网格区域内分布的一些点源和线源来控制,这相当于求解一个Possion方程:

\nabla^{2}S=G

式中S为网格空间尺度参数,G为源项,

对于外流问题,一般使用Dirichlet边界条件,即S=S_{b}S_{b}为边界值,取为远场网格的边长;

对于内流问题,一般使用Neumann边界条件,即\frac{\partial S}{\partial n}=C_{b}C_{b}边界处法向梯度。

将上述定解问题采用有限差分求解,在矩形网格点\left ( i,j \right )处,有

G_{i,j}=\sum_{n=1}^{N}\Psi _{n}\left ( S_{i,j}J_{n}-I_{n} \right )

I_{n}=\left\{\begin{matrix} S_{n}/r_{n}^{2} & point\\ \frac{1}{\left | l_{n} \right |} \int_{l_{n}} \frac{f_{n}\left ( l \right )}{r^{2}\left ( l \right )}dl & line \end{matrix}\right.


J_{n}=\left\{\begin{matrix} 1/r_{n}^{2} & line\\ \frac{1}{\left | l_{n} \right |} \int_{l_{n}} \frac{1}{r^{2}\left ( l \right )}dl & point \end{matrix}\right.

其中,

N为热源总数,

\Psi _{n}为强度因子,

S_{n}为第n个点源处的网格步长,

f_{n}\left ( l \right )为第n个线源处的网格步长,

l_{n}为线源长度,

r_{n}为点源或者线源到背景网格的距离。

3.2.2 初始阵面
3.2.3 阵面推进

3.3 四叉树/八叉树

修正的四叉树/八叉树方法生成非结构网格的基本做法是:首先用树状结构的矩形/立方体单元覆盖整个流场,其分布符合预先设置的疏密要求,然后将矩形/立方体切割成三角形/四面体单元。由于流场边界一般为曲线或曲面,所以边界初的切割要特殊处理。

这种方法尽管效率较高,但在物面附近有可能切割出体积很小的单元。而且它很难保证边界的形状,最终的网格要加入很多的逻辑关系来确保生成单元的质量和边界的形状。

四、混合网格

五、特殊网格

六、网格质量与优化

七、软件

7.1 商用软件

供应商软件特点/特色
AltairHyperMesh
Ansys

ICEM

TurboGrid

Pointwise

Gridgen

Pointwise

CIMNEGID

7.2 开源软件

软件开源协议特点/特色
Gmsh

blockMesh

snappyHexMesh

cfMesh
Triangle

参考文献

  • Thompson J F. Handbook of Mesh Generation. Boca Raton: CRC Press, 1998.
  • Thompson J F. Numerical grid generation:foundations and applications,1985.
  • P. Knupp. Fundamentals of Grid Generation[M]. CRC Press, 1993.
  • Frey P J. Mesh Generation: Application to Finite Elements. ISTE,2007.
  • Fletcher C. Computational Techniques for Fluid Dynamics. Vol. 1, Fundamental and General Techniques.  1991.
  • George P L. Automatic Mesh Generation, John Willey & Sons, 1st Edition, Masson, Paris, 1991.
  • Baker T J. Mesh generation: Art or science? Progress in Aerospace Sciences, 2005, 41(1), 29–63.
  • Castillo. Mathematical aspects of numerical grid generation. SIAM, 1991.
  • Gordon W J. Transfinite mappings and their application to grid generation. Applied Mathematics & Computation, 1982, 10(none):171-233.
  • Godunov S K, Prokopov G P. On the computation of conformal transformations and the construction of difference meshes. Ussr Computational Mathematics & Mathematical Physics, 1967, 7(5):89-124.
  • Eiseman P R, Erlebacher G. Grid generation for the solution of partial differential equations[J]. 1989.
  • Bern M, Plassmann P. Mesh Generation[J]. Handbook of Computational Geometry Elsevier Science, 2000.
  • 郑耀. 非结构网格生成: 理论,算法和应用. 科学出版社, 2016.
  • 张来平. 计算流体力学网格生成技术. 科学出版社,2017.
  • 张正科. 计算流体力学网格生成方法. 科学出版社, 2020.
  • C. Geuzaine. Gmsh: a three-dimensional finite element mesh generator with built-in pre- and post-processing facilities. International Journal for Numerical Methods in Engineering 79(11), pp. 1309-1331, 2009. 

数理教材

  • 王元明. 数学物理方程与特殊函数. 
  • 陆庆乐. 复变函数.
  • 张元林. 积分变换.


网络资料

CFD Onlinehttps://www.cfd-online.com/

中物院高性能数值模拟软件中心http://www.caep-scns.ac.cn/

Robert Schneidershttps://www.robertschneiders.de/

OpenFOAMhttps://openfoam.org/  

cfMeshhttps://cfmesh.com/

SU2https://su2code.github.io/  

Gmshhttp://gmsh.info/

 enGridhttps://github.com/enGits/engrid

Netgenhttps://ngsolve.org/

TetGen https://wias-berlin.de/software/tetgen/

Trianglehttps://www.cs.cmu.edu/%7Equake/triangle.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值