GMSH中带扩张的矩形拉伸及结构化网格生成方案问询
在Gmsh中生成带边界层的结构化网格:拉伸扩张与替代方案
一、对矩形进行带扩张的拉伸生成结构化网格
完全可以通过带扩张参数的拉伸操作实现,具体步骤如下:
- 先创建目标矩形面,确定用于拉伸的基准边(例如矩形的一条短边)。
- 使用
Extrude命令时,通过Layers参数指定层数和扩张因子,语法示例:
其中Extrude {0, 1, 0} {Surface{1}; Layers{10, 1.3}; Recombine;}10是拉伸层数,1.3是扩张因子(大于1表示层厚向外递增,小于1则递减),Recombine参数强制生成结构化的四边形网格。 - 如果需要边界层,可先在矩形的目标边上用
Boundary Layer命令预先生成边界层网格,再执行拉伸操作,保证边界层的结构化延续性。
二、替代方案
如果拉伸操作无法完全匹配几何需求,还可以采用以下两种实用方法:
- 分块结构化拼接:将目标几何拆分为多个拓扑规则的子块(例如小矩形+梯形子面),为每个子块单独生成结构化网格,再通过
Compound{Surface{1,2,...};}命令合并子面,确保网格在拼接处的连续性。这种方法适配更复杂的几何拆分场景,每个子块可独立控制网格密度和边界层参数。 - Transfinite曲面生成:若目标几何是四边形面(即使是梯形类非矩形),直接对四条边定义Transfinite网格参数,再生成结构化曲面网格:
- 给四条边分别设置节点数和扩张因子,示例:
Transfinite Line{1} = 10 Using Progression 1.2; Transfinite Line{2} = 10 Using Progression 1.0; - 执行曲面结构化网格生成:
Transfinite Surface{1}; Recombine Surface{1}; - 最后在指定边上添加边界层:
Boundary Layer{Surface{1}; Layers{5, 1.2};}
- 给四条边分别设置节点数和扩张因子,示例:
注意事项
- 确保几何拓扑无错误(无重叠边、缝隙),否则会导致结构化网格生成失败。
- 扩张因子建议控制在1.1-1.5之间,避免网格畸变过大影响计算精度。
- 可通过设置
Mesh.MeshSizeExtendFromBoundary = 2让网格尺寸从边界向内自然过渡,优化结构化网格的均匀性。
内容的提问来源于stack exchange,提问作者Nico Su
相关产品推荐
相关产品推荐

