本文描述网格的一些基础概念。
网格是FEA和CFD模拟过程中的基本要素之一。
网格是由单元和或节点组成的网络,其可以拥有几乎任何形状或尺寸,并用于求解偏微分方程。网格中的每个单元都代表方程的一个独立解。
如果不将对象划分成较小的部分, 由于对象内部的复杂性, 求解整个对象将是不可能的。孔洞、拐角和尖角等都会给求解带来极大的困难。另一方面, 较小的单元相对更容易求解, 因此是首选策略。
网格划分是一种在几何体上生成二维或三维网格的方法,目的是将区域离散化,以便进行模拟分析。根据几何体的复杂程度,网格的划分方式也有所不同。
网格和网格划分技术的发展历程与数值方法的历史紧密相连。Courant、Friedrichs 和 Lewy 的论文可以视为有限差分法(FDM)的基础,其中引入了 CFL(Courant- Friedrichs- Lewy)稳定性条件等概念。
从历史角度看,矩形网格和笛卡尔网格都与有限差分法有关,因为它依赖于相邻单元和节点来近似变量的行为。然而,有限元法(FEM)允许使用混合网格单元类型,从而使非结构网格变得可行。使用变分法数值求解问题的历史,可以追溯到 Rayleigh 和 Ritz 在 19 世纪末到 20 世纪初的研究工作。
求解偏微分方程组(PDE)的第一步是对方程和问题域进行离散化。如前所述,直接求解整个问题域是困难的,而将问题域划分为多个小块进行求解则是可行的。
离散化过程与有限差分法、有限体积法(FVM)以及有限元法等方法密切相关,其目标是将连续形式的方程转化为代数差分方程组。在进行域离散化时,会产生一组离散单元,从而也会形成覆盖连续问题域的点或节点。
网格,如其名,是由一组点和单元相互连接而构成的网络。这个网络可以拥有多种几何形状和拓扑结构。
在网格的每个单元或节点中,都会包含方程的局部解,具体取决于方程是在单元还是节点上进行离散化。离散化的选择由具体项目决定。
通常情况下,当使用有限差分法来逼近方程时,会选择点离散化,其中偏微分方程通常在每个点的邻居处用泰勒级数展开来逼近。有时点离散化可以与有限体积法共同使用,但单元格必须在点周围隐式地使用。
当需要离散的方程被认为是弱形式、积分形式或守恒形式时,通常会在离散单元上进行积分求解。如在考虑输运现象时,有限体积法可以被表述为表示小体积的离散单元。通量可以通过这些单元进行平衡,同时假设解在它们内部是恒定的。
通常情况下,网格类型可以被划分为两大类:结构网格和非结构网格。如前文所述,结构网格在历史上与有限差分法密切相关。而有限体积法和有限元方法则允许采用更为通用的网格。
结构网格,通常也被称为 grid,其特点是网格结构和形成方式易于识别相邻单元和点。这一特性源于结构网格通常应用于分析坐标系(如矩形、椭圆、球形等),形成规则的网格。
从程序设计的角度看,构成结构化网格的单元或点可以通过枚举的方式进行列举,进而对单元或点坐标进行邻近查询。
如下图所示的网格,首先枚举出第一个单元格以及左右边界的前四个单元格。此网格是矩形网格的一个示例。为了说明获取单元格邻接关系的难易程度,我们可以清楚地看到,要从任意单元格中获取右侧的邻接关系,问题就简化为在枚举单元格时求和。
同样,任何单元格的顶端邻接关系都是通过与单元格枚举相加而得到的。这样就可以将每个网格元素直接映射到数组或向量中,从而使计算变得更加简便。
任何曲线网格都可以映射到这样的坐标和邻接系统中。因此,从编程的角度来看,曲线网格和矩形网格在邻接查询方面几乎没有区别。
结构网格也可以根据边界拟合来进行定义。例如,笛卡尔网格适用于矩形边界,圆柱网格适用于圆柱边界。
此外,还可以采用混合边界拟合的方式,利用多种不同的曲线或曲面来定义边界。这包括任何类型的可参数化曲线和曲面,如样条曲线和 NURBS(非均匀有理基样条曲线)。在网格划分算法中,会根据每条曲线或曲面需要创建的点数来确定在这些曲面上如何分布点,以及如何将相对的曲面连接起来。
非结构网格具有更强的通用性,能够任意逼近任何几何形状。相对于结构网格,其坐标和连通性映射到矩阵元素中,非结构网格则需要特殊的数据结构,如邻接矩阵、列表以及节点坐标列表。非结构网格的节点/单元编号可以是任意和稀疏的,因为它无需进行任何分析形式的邻接查询。
对于那些无法生成结构化网格的复杂几何形状,非结构化网格技术可以进行离散化处理。非结构网格的灵活特性允许在同一网格中使用和共存各种单元类型,从而可以得到更好的几何拟合效果和整体网格质量。
根据维度,网格类型可以分为二维网格和三维网格。常见的二维网格类型包括三角形和四边形,而常见的三维网格类型则有四面体和六面体,也可能包括金字塔和楔形。
这些单元类型有时被称为有限元动物园,因为这些单元类型通常用于有限元格式。众所周知,有限体积格式在使用单元类型方面更加灵活,有时允许使用任何类型的多边形和多面体。
网格单元无需保形。不符合要求的网格是指出现悬挂节点的网格。这些节点通常出现在网格调整过程中。
网格自适应。由于非结构网格上的点和邻接关系不遵循任何类型的全局结构,因此可以方便地添加或删除网格单元和点。动态添加、删除或移动网格单元和点的过程称为网格自适应。
根据问题的性质,需要采用网格适应技术来获得精确的求解域,同时通过控制网格单元和节点的总体数量来降低计算成本。一般来说,所需的细化程度与误差有关,而误差是根据待解方程估算的。因此,误差较大的区域最终会积累更多的网格单元。
网格细化通常分为几种类型:
网格细化,又称为 H 型细化,是通过增加单元或点来减少局部特征边长的一种技术。这种技术可以低成本地提高局部网格的分辨率,但同时也会增加需要求解的同步差分方程的数量,因为它增加了系统的自由度。
在非结构网格上进行细化非常简单,因为只需要修改后单元的重新连接。然而,在结构网格上进行细化并不容易,因为添加单元格可能会破坏网格的规则性。因此,在使用自适应结构网格时,通常会允许不规则网格的存在。
同样,一般来说,网格细化技术允许网格粗化,可用于减少估计误差非常小的区域的单元格数量。这样可以更有效地利用计算能力,降低成本并缩短模拟时间。
网格移动或 R 型细化是通过网格单元和点的移动或位移来实现的。在这种情况下,单元和点的数量保持不变,而连接性有时也保持不变。
图 11 显示了一个 R 型网格细化过程的示例,该过程可能与冲击波传播问题有关。在解法变化较大的区域,网格分辨率会更高。这种网格细化技术有助于提高求解的精度和效率,因为它可以在不增加单元数量的情况下改善网格质量。
其他常见的网格适应技术还包括 P 型细化和自适应网格重构。
P 型细化与有限元法有关,其主要思想是在保持相同网格数量的情况下,通过增加形函数的复杂度来提高网格的精度。这种技术可以在不增加计算成本的情况下提高求解的精度。
自适应重网格技术则是根据估计误差生成新的网格,旨在获得最佳的整体网格质量,同时减少使用的点数。然而,这种方法的缺点是创建新网格的开销可能会很大。
为了更有效地利用这些技术,我们可以将它们组合使用。例如,R 型细化和 H 型细化的组合可以称为 RH 型细化,其中节点既可以在网格上移动,也可以在网格上创建。这种组合技术可以在提高网格质量的同时,降低计算成本。
原文地址:https://www.simscale.com/docs/simwiki/preprocessing/what-is-a-mesh/。采用DeepL翻译,文心一言负责文字润色。最近很忙,没时间准备干货。
”
(完)