例子 2
/*********************************************************************
*
* Gmsh tutorial 2
*
* 文件包含、几何变换、几何体推移、立体的几何实体和物理实体
*
*********************************************************************/
// 我们可以使用 Include 将第一个例子包含进来作为这里的基础:
Include "t1.geo" ;
// 为了能够从前面的 t1.geo 中建立更加复杂的几何体,有几个可能的方式。
//
// 我们可以先加入新的点、线、曲面,就象在 t1.geo 中做的那样:
Point(5) = {0, .4, 0, lc} ;
Line(5) = {4, 5} ;
// 我们还可以通过几何变换来移动、加入或者推移基本的几何实体。比如,
// 我们可以将点 3 向左移动 0.05:
Translate {-0.05,0,0} { Point{3} ; }
// 得到的这个点能够复制一个并沿着 y 轴移动 0.1:
Translate {0,0.1,0} { Duplicata{ Point{3} ; } }
// 当然,移动、旋转和推移命令不光能够用在点上,也能够用在曲线和曲
// 面上。下面的命令就是将 t1.geo 中曲面 6 和一个新的曲面 11 沿着 z
// 轴推出去 'h':
h = 0.12 ;
Extrude Surface { 6, {0, 0, h} } ;
Line(7) = {3, 6} ; Line(8) = {6,5} ; Line Loop(10) = {5,-8,-7,3};
Plane Surface(11) = {10};
Extrude Surface { 11, {0, 0, h} } ;
// 所有的几何变换自动的会产生新的几何体,下面的命令允许手工指定
// 自动产生的点的特征长度:
Characteristic Length{6,22,2,3,16,12} = lc * 2 ;
// 如果说变换工具对于产生复杂的几何体非常方便的话,有时候产生一个
// 和已有的几何实体相同的平面几何体也是非常有用的。这可以通过菜单
// File->Save as->Geometry->Gmsh unrolled geometry 或者命令行
//
// $ gmsh t2.geo -0
//
// 来实现。
// 立体是 Gmsh 中的第四种基本几何体。和先定义了闭环曲线再定义曲面
// 一样,我们现在需要先定义闭环曲面(suface loop)。下面的立体是一
// 个单连通的,没有洞的体(所以只需要一个闭环曲面来定义它):
Surface Loop(145) = {121,11,131,135,139,144};
Volume(146) = {145};
Surface Loop(146) = {121,6,109,113,117,122};
Volume(147) = {146};
// 我们定义下面的物理立体实体使得所有剖分得到的四面体具有区域指标 1:
Physical Volume (1) = {146,147} ;
// 恭喜了!您现在已经得到了您的第一个无结构的三维四面体网格!