阅读量:0
总结:
simpleGrading参数分为xyz三个方向。如果你想使得网格在某个方向上更密集,可以在simpleGrading中将该方向的渐变率设置为小于 1 .更稀疏则设置大于1.
一、案例
比如我这个爆炸案例:
对应的blockMeshDIct文件如下:
// 定义划分的网络数目 u1 20;//100 u2 4;//20 u3 16; //80 v1 12;//60 v2 20;//100 w 16; //16;//160 // 3D d*32 //w 1; // 2D // 定义划分的网络渐变率,分为xyz三个方向。如果你想使得网格在某个方向上更密集,可以在simpleGrading中将该方向的渐变率设置为小于 1 . r1 0.25; r2 4; //((0.5 0.5 $r1) (0.5 0.5 $r2)) 表示Z方向中间密集两遍稀疏,因为爆炸点在最中间 //blocks中包含了五个长方体块,其中hex是一个构成长方体块的8个顶点,($u1 $v1 $w)代表xyz三个方向的网格,simpleGrading代表三个方向划分网格的渐变率。可以某个方向网格逐渐变密(值[0,1])或者变稀(值[1,无穷]) blocks ( hex (0 1 5 4 12 13 17 16) ($u1 $v1 $w) simpleGrading (0.4 3 ((0.5 0.5 $r1) (0.5 0.5 $r2))) hex (2 3 7 6 14 15 19 18) ($u3 $v1 $w) simpleGrading (4 3 ((0.5 0.5 $r1) (0.5 0.5 $r2))) hex (4 5 9 8 16 17 21 20) ($u1 $v2 $w) simpleGrading (0.4 3 ((0.5 0.5 $r1) (0.5 0.5 $r2))) hex (5 6 10 9 17 18 22 21) ($u2 $v2 $w) simpleGrading (1 3 ((0.5 0.5 $r1) (0.5 0.5 $r2))) hex (6 7 11 10 18 19 23 22) ($u3 $v2 $w) simpleGrading (4 3 ((0.5 0.5 $r1) (0.5 0.5 $r2))) );
解析:
u,v,w:代表三个方向划分的网络数目
r1,r2:定义划分的网络渐变率。
blocks:中包含了五个长方体块,其中hex是一个构成长方体块的8个顶点,($u1 $v1 $w)代表xyz三个方向的网格,simpleGrading代表三个方向划分网格的渐变率。可以某个方向网格逐渐变密(值[0,1])或者变稀(值[1,无穷])
simpleGrading详解:
例子:simpleGrading (0.4 3 ((0.5 0.5 $r1)(0.5 0.5 $r2)))
simpleGrading参数分为xyz三个方向。如果你想使得网格在某个方向上更密集,可以在simpleGrading中将该方向的渐变率设置为小于 1 .更稀疏则设置大于1.
simpleGrading (0.4 3 ((0.5 0.5 $r1)(0.5 0.5 $r2)))
是 OpenFOAM 中定义网格渐变率的语法。它定义了每个方向上网格单元的变化比例。具体来说:
- 0.4:沿 x 方向的网格渐变率。
- 3:沿 y 方向的网格渐变率。
- ((0.5 0.5 $r1)(0.5 0.5 $r2)):沿 z 方向的分段渐变率。
详细解析
0.4
沿 x 方向:网格单元从左到右逐渐变小,密度更高。3
沿 y 方向:网格单元从下到上逐渐变大,密度更低。((0.5 0.5 $r1)(0.5 0.5 $r2)))
沿 z 方向:- 第一段占长度的一半,均匀分布,初始和末端的渐变率为 0.25(单个网格逐渐变小)。
- 第二段占长度的一半,均匀分布,初始和末端的渐变率为 4(单个网格逐渐变大)。
- 总结就是Z方向上两边网格稀疏,中间网格密集。(因为爆炸点在Z方向中间,需要希望格捕捉细小变化)
可以看出符合预期,越靠近中间的弹性挡板和爆炸点,xyz三个方向的网格就越密。