例子 3
/*********************************************************************
*
* Gmsh tutorial 3
*
* 网格推移、选项
*
*********************************************************************/
// 我们还是先将例子 1 包含进来:
Include "t1.geo" ;
// 和 't2.geo' 中一样,我们也做一个沿着 z 骤的推移:
h = 0.1 ;
// 和 't2.geo' 中不同的是,我们不仅仅推移了几何体,而且推移了二维的
// 网格。命令还是相同的 Extrude,但是通过设置层数(这里,我们有四层,
// 分别是 8, 4, 2, 1 个单元深度),立体数(从 9000 到 9003)以及相应
// 的高度为 h/4 来实现了网格的推移:
Extrude Surface { 6, {0,0,h} } {
Layers { {8,4,2,1}, {9000:9003}, {0.25,0.5,0.75,1} } ;
} ;
// 和用平移进行推移一样,我们也可以使用一个旋转来进行推移,这样
// 得到的网格能够重组为三棱柱(如果曲面上的网格是三角形)或者
// 是六面体(如果曲面上的网格是四边形)。每个旋转通过一个轴向
// ({0,1,0})、一个轴心点({-0.1,0,0.1})以及一个角度(-Pi/2)来指定:
Extrude Surface { 122, {0,1,0} , {-0.1,0,0.1} , -Pi/2 } {
Recombine ; Layers { 7, 9004, 1 } ;
};
// 一个平移 ({-2*h,0,0}) 和一个旋转 ({1,0,0}, {0,0.15,0.25}, Pi/2) 能
// 够组合起来使用:
Extrude Surface {news-1, {-2*h,0,0}, {1,0,0} , {0,0.15,0.25} , Pi/2}{
Layers {10,9004,1}; Recombine;
};
Physical Volume(101) = {9000:9004};
// 所有交互方式输入的选项都能够直接在输入文件中指定。比如下面
// 我们指定了一个全局的特征长度因子,重新设定了一些背景颜色,
// 并设定不显示坐标轴,选择了一个初始给定的视图,禁止掉了交互
// 式的旋转选择视图:
Mesh.CharacteristicLengthFactor = 4;
General.Color.Background = {120,120,120};
General.Color.Foreground = {255,255,255};
General.Color.Text = White;
Geometry.Color.Points = Orange;
General.Axes = 0;
General.Trackball = 0;
General.RotationX = 10;
General.RotationY = 70;
General.TranslationX = -0.2;
// 颜色可以通过文字方式或者 RGB 方式给定,比如 'General.Color.Background
// = Red' 与 'General.Color.Background = {255,0,0}' 是完全一样的。
// 这些选项就和用户定义的变量一样,能够用作任何的左值和右值,
// 比如
Geometry.Color.Surfaces = Geometry.Color.Points;
// 将会把曲面的颜色设置得和点的颜色一样。
// 点击状态条上的问号 '?' 会将当前的左右选项打印在终端上,使用
// 菜单 File->Save as->Geometry->Gmsh current options 会将这些选项存
// 储到文件中。菜单 Options->Save options now 会将当前选项存储起
// 来作为将来的缺省选项。