实例: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的区别

这相当于问:“切蛋糕”和“缝衣服”有什么区别?

subsetMeshstitchMesh 是 OpenFOAM 网格操作中两个作用完全相反、用途截然不同的工具。


1. subsetMesh:切蛋糕(做减法)

它的核心逻辑是 “保留一部分,扔掉其余部分”

  • 动作:它基于你选定的一个网格集合(CellSet),把这个集合出来,变成一个新的独立网格。没被选中的网格会被直接丢弃。
  • 物理结果
    • 网格总量减少
    • 会产生新的边界(Patch),即原来的内部面现在暴露在外面了。
  • 典型场景
    • 雕刻网格:如之前的脚本,先画个大方块,然后“抠”出你想要的形状。
    • 提取子域:比如你有一个整车的网格,你只想算后视镜周围的气动声学,就用 subsetMesh 把后视镜那块单独切下来算。
    • 调试:网格某个角落报错,你切那一小块下来单独研究。

一句话:拿着手术刀,把不需要的肉割掉。


2. stitchMesh:缝衣服(做加法/修复)

它的核心逻辑是 “把两块裂开的布缝在一起”

  • 动作:它取两个几何位置重合(或非常接近)的边界(Patch),把它们上面的面(Face)合并,使原本断开的两个区域连通变成内部面(Internal Face)。
  • 物理结果
    • 网格拓扑连通
    • 边界数量减少(两个 Patch 消失了,变成了内部连接)。
    • 如果不完美匹配,可能会稍微拉扯网格节点(几何变形)。
  • 典型场景
    • 拼接网格:你有两套网格(比如一段直管和一段弯管),分别画好后,把它们拼在一起,接口处需要 stitchMesh 缝合,让流体能流过去。
    • 消除挡板 (Baffle):网格中间有一道极薄的墙(挡板),你想把它去掉,让流体穿过去,就把墙的两面“缝”起来。
    • 周期性边界修复:有时候做旋转周期性网格,首尾没对齐,可以用它强行缝合。

一句话:拿着针线,把两个分开的边界缝成一体。


对比总结表

特性 subsetMesh (切) stitchMesh (缝)
方向 拆分 / 提取 合并 / 连接
网格单元数 变少 (删除未选中的) 不变 (或者因合并略微减少面)
边界 (Patch) 增加 (切面变成新边界) 减少 (两个边界融合成内部面)
拓扑连通性 可能破坏连通性 (变孤岛) 修复/建立连通性
核心用途 只要一部分网格 把两部分网格连起来
生活类比 切除阑尾 缝合伤口

它们在你之前脚本里的关系

在刚才的“雕刻法”脚本中:

  1. subsetMesh 负责破坏:它把大方块切开,切出了形状,但可能导致某些本该连接的地方(比如环形结构的接口)变成了两个独立的边界。
  2. stitchMesh 负责善后:如果在切的过程中,导致了某些不需要的“裂缝”(比如你切了一个圆环,但圆环的首尾是断开的两个面),就需要用 stitchMesh 把这首尾缝起来,让流体能在圆环里无限循环流动。