· 靳贺伟 · 网格基础 · 11 min read
OpenFOAM v2512 网格体系总览:从静态共形网格到重叠网格
从有限体积离散、网格拓扑和运动处理三个层级,系统梳理 OpenFOAM v2512 中的静态共形网格、移动/变形网格、AMI、重叠网格、拓扑变化网格和动态加密网格。
在 OpenFOAM 中,“网格类型”至少存在三套彼此独立的分类标准:
- 按单元几何形状分类:六面体、四面体、棱柱、棱锥和任意多面体;
- 按拓扑组织方式分类:结构化、块结构化和非结构化;
- 按计算过程中网格如何连接、运动和更新分类:静态共形网格、移动/变形网格、AMI 滑移网格、重叠网格、拓扑变化网格和动态加密网格。
“重叠网格与六面体网格哪个好”不是一个严格的问题。前者描述多套网格之间如何连接,后者描述单元的几何形状。六面体网格既可以用于静态计算,也可以用于 AMI、重叠网格或动态加密。
本文采用第三种分类方法,建立 OpenFOAM v2512 网格体系的整体框架。
1. OpenFOAM 的底层网格:polyMesh 与 fvMesh
OpenFOAM 使用通用多面体网格数据结构。一个有限体积计算区域的核心文件位于:
constant/polyMesh/
├── points
├── faces
├── owner
├── neighbour
└── boundary其中:
points:所有网格点坐标;faces:每个面的顶点编号;owner:每个面所属的主单元;neighbour:内部面的邻单元;boundary:边界面分组及其 patch 类型。
这种存储方式不要求单元必须是六面体。只要一个单元由封闭面围成,并满足几何和拓扑合法性,就可以参与有限体积离散。
fvMesh 在 polyMesh 的几何和拓扑信息之上,增加单元体积、面面积矢量、单元中心、面中心及插值系数等有限体积数据。
对于动态问题,OpenFOAM 通过 dynamicFvMesh 抽象类统一处理:
- 网格点位置变化;
- 网格拓扑变化;
- 网格运动与拓扑变化同时发生。
如果算例中不存在 constant/dynamicMeshDict,v2512 会自动使用 staticFvMesh。
2. 按运动与连接方式划分的六类网格
2.1 静态共形网格
静态共形网格满足:
- 计算期间网格点坐标不变;
- 单元和面的连接关系不变;
- 同一计算区域内相邻单元共享同一个内部面;
- 不需要跨接口插值。
这类网格的数值链条最短,守恒处理最直接,通常也是精度、稳定性和计算效率的基准。
典型应用包括固定管道、建筑通风、固定炉膛、换热器以及不解析叶片真实运动的稳态旋转机械。
2.2 移动或变形网格
这类方法允许网格点随时间移动,但保持单元连接关系不变。
可分为:
- 刚体运动:局部或整体网格平移、旋转,单元相对形状不变;
- 变形网格:边界运动通过 Laplace、弹性或应力类方程向内部传播,单元发生拉伸和扭曲。
v2512 中常见网格类包括:
dynamicMotionSolverFvMesh
dynamicMotionSolverListFvMesh
dynamicMultiMotionSolverFvMesh常用运动求解器包括:
solidBody
displacementLaplacian
displacementSBRStress
sixDoFRigidBodyMotion该方法没有跨网格插值,但运动幅度受网格质量限制。
2.3 AMI 滑移网格
AMI 是 Arbitrary Mesh Interface,即任意网格接口。
AMI 两侧的网格:
- 在体积上不重叠;
- 在公共界面处不必一一共形;
- 通过界面面积交叠关系传递变量和通量。
常用 patch 类型为:
type cyclicAMI;AMI 特别适合固定转轴旋转机械,例如风机、泵、压缩机、搅拌器和螺旋桨。
2.4 重叠网格
重叠网格又称 Overset Mesh 或 Chimera Mesh。它由两套或多套相互独立、在空间中重叠的网格组成。
重叠区内需要识别:
- calculated cells:正常求解单元;
- donor cells:供体单元;
- acceptor/interpolated cells:受体或插值单元;
- hole cells:被遮挡、不参与求解的孔洞单元。
v2512 中可使用:
staticOversetFvMesh
dynamicOversetFvMesh重叠网格适用于大位移、复杂轨迹、多运动体和六自由度运动,但插值误差、质量守恒和并行通信成本高于 AMI。
2.5 拓扑变化网格
拓扑变化意味着计算过程中发生以下一种或多种变化:
- 单元增加或删除;
- 网格层增加或删除;
- 面连接关系改变;
- 两个接口连接或断开;
- 单元分裂或合并。
v2512 中仍包含多种专用网格类,例如:
topoChangerFvMesh
movingConeTopoFvMesh
linearValveFvMesh
linearValveLayersFvMesh
mixerFvMesh它们常用于活塞、阀门、往复腔体和规则滑动机构。
2.6 动态加密网格
dynamicRefineFvMesh 根据计算场自动细化或粗化单元。它本质上也属于拓扑变化,但由于应用方式独立,通常单列为一类。
典型触发场包括:
- VOF 相分数;
- 温度或组分梯度;
- 涡量;
- 压力梯度;
- 用户构造的误差指示场。
适用于气液界面、火焰、激波、羽流和局部高梯度输运问题。
3. 六类网格的核心区别
| 类型 | 网格点移动 | 拓扑改变 | 跨接口插值 | 主要限制 |
|---|---|---|---|---|
| 静态共形网格 | 否 | 否 | 否 | 不能描述真实边界运动 |
| 移动/变形网格 | 是 | 否 | 否 | 大运动可能导致负体积 |
| AMI 滑移网格 | 是 | 通常否 | 二维界面插值 | 需要可定义的滑移接口 |
| 重叠网格 | 是或否 | 子网格内部通常不变 | 三维单元插值 | 守恒和供体搜索更复杂 |
| 拓扑变化网格 | 是 | 是 | 视方法而定 | 设置和场映射复杂 |
| 动态加密网格 | 可选 | 是 | 否 | 单元数和时间步可能剧烈变化 |
4. MRF 为什么不属于网格类型
MRF,即 Multiple Reference Frame,是多参考系法。
MRF 的网格通常保持静止,在指定区域的动量方程中加入旋转参考系项。它是一种物理建模和方程处理方法,不是动态网格类型。
但在旋转机械工程中,MRF 常与 AMI 和重叠网格并列比较:
| 方法 | 网格真实运动 | 可得到叶片通过效应 | 计算成本 |
|---|---|---|---|
| MRF | 否 | 否 | 低 |
| AMI | 是 | 是 | 中 |
| Overset | 是 | 是 | 中—高 |
5. 选择网格方法的基本逻辑
5.1 固定几何
优先使用静态共形网格。
5.2 固定轴连续旋转
选择顺序通常为:
- 只需要时间平均结果:MRF;
- 需要真实叶片通过效应:AMI;
- 接口难以构造或存在多个复杂运动体:重叠网格。
5.3 小幅边界运动
优先尝试移动/变形网格。若全周期内 checkMesh 指标可控,则没有必要引入插值接口。
5.4 大位移或任意轨迹
优先考虑重叠网格。若运动具有规则的一维层增删特征,可考虑拓扑变化网格。
5.5 局部高梯度随时间移动
考虑动态加密。动态加密解决的是“哪里需要更细”,而不是“物体怎样运动”。
6. 网格方法不能替代网格质量控制
无论采用哪种方法,都应检查:
checkMesh -allGeometry -allTopology动态计算还要监控:
- 最大非正交角;
- 最大偏斜度;
- 最小单元体积;
- 网格 Courant 数;
- AMI 覆盖率和权重;
- Overset 供体数量、孔洞单元和插值层;
- 动态加密后的 2:1 层级约束;
- 入口、出口及各耦合界面的质量守恒。
“计算能够运行”不等于网格方法正确。网格运动、插值和拓扑变化都会改变离散误差结构,因此必须通过守恒检查、时间步独立性和网格独立性验证其可靠性。
7. 本专栏的文章结构
本网格子栏目包括:
- 静态共形网格;
- 移动与变形网格;
- AMI 滑移网格;
- 重叠网格;
- 拓扑变化网格;
- 动态加密网格。
后续文章均以 OpenCFD 发布的 OpenFOAM v2512 为基准。不同 OpenFOAM 分支在类名、字典关键字、求解器名称和教程路径上可能不同,使用前应先确认发行分支。