subsetMesh 实测:twoSimpleRotor 子网格提取
实例:twoSimpleRotor
1 | runApplication subsetMesh box -patch hole -overwrite |
命令拆解:
$$
\underbrace{\texttt{runApplication subsetMesh}}{\textcolor{red}{\text{主程序}}}
;
\underbrace{\texttt{box}}{\textcolor{blue}{\text{参数1: cellSet集合名}}}
;
\underbrace{\texttt{-patch hole}}_{\textcolor{green}{\text{参数2: 背景网格边界名}}}
;
\texttt{-overwrite}
$$
可以取消-overwrite参数,这样网格信息会写入新的时间步,结果见下:


subsetMesh和stitchMesh的区别
这相当于问:“切蛋糕”和“缝衣服”有什么区别?
subsetMesh 和 stitchMesh 是 OpenFOAM 网格操作中两个作用完全相反、用途截然不同的工具。
1. subsetMesh:切蛋糕(做减法)
它的核心逻辑是 “保留一部分,扔掉其余部分”。
- 动作:它基于你选定的一个网格集合(CellSet),把这个集合抠出来,变成一个新的独立网格。没被选中的网格会被直接丢弃。
- 物理结果:
- 网格总量减少。
- 会产生新的边界(Patch),即原来的内部面现在暴露在外面了。
- 典型场景:
- 雕刻网格:如之前的脚本,先画个大方块,然后“抠”出你想要的形状。
- 提取子域:比如你有一个整车的网格,你只想算后视镜周围的气动声学,就用
subsetMesh把后视镜那块单独切下来算。 - 调试:网格某个角落报错,你切那一小块下来单独研究。
一句话:拿着手术刀,把不需要的肉割掉。
2. stitchMesh:缝衣服(做加法/修复)
它的核心逻辑是 “把两块裂开的布缝在一起”。
- 动作:它取两个几何位置重合(或非常接近)的边界(Patch),把它们上面的面(Face)合并,使原本断开的两个区域连通变成内部面(Internal Face)。
- 物理结果:
- 网格拓扑连通。
- 边界数量减少(两个 Patch 消失了,变成了内部连接)。
- 如果不完美匹配,可能会稍微拉扯网格节点(几何变形)。
- 典型场景:
- 拼接网格:你有两套网格(比如一段直管和一段弯管),分别画好后,把它们拼在一起,接口处需要
stitchMesh缝合,让流体能流过去。 - 消除挡板 (Baffle):网格中间有一道极薄的墙(挡板),你想把它去掉,让流体穿过去,就把墙的两面“缝”起来。
- 周期性边界修复:有时候做旋转周期性网格,首尾没对齐,可以用它强行缝合。
- 拼接网格:你有两套网格(比如一段直管和一段弯管),分别画好后,把它们拼在一起,接口处需要
一句话:拿着针线,把两个分开的边界缝成一体。
对比总结表
| 特性 | subsetMesh (切) | stitchMesh (缝) |
|---|---|---|
| 方向 | 拆分 / 提取 | 合并 / 连接 |
| 网格单元数 | 变少 (删除未选中的) | 不变 (或者因合并略微减少面) |
| 边界 (Patch) | 增加 (切面变成新边界) | 减少 (两个边界融合成内部面) |
| 拓扑连通性 | 可能破坏连通性 (变孤岛) | 修复/建立连通性 |
| 核心用途 | 只要一部分网格 | 把两部分网格连起来 |
| 生活类比 | 切除阑尾 | 缝合伤口 |
它们在你之前脚本里的关系
在刚才的“雕刻法”脚本中:
subsetMesh负责破坏:它把大方块切开,切出了形状,但可能导致某些本该连接的地方(比如环形结构的接口)变成了两个独立的边界。stitchMesh负责善后:如果在切的过程中,导致了某些不需要的“裂缝”(比如你切了一个圆环,但圆环的首尾是断开的两个面),就需要用stitchMesh把这首尾缝起来,让流体能在圆环里无限循环流动。
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
