【网格生成】Gmsh快速入门教程 | 您所在的位置:网站首页 › c语言的变量必须先定义后使用吗 › 【网格生成】Gmsh快速入门教程 |
上一篇文章讲解了Gmsh的图形化方式入门使用。根据Gmsh官方的描述,Gmsh使用可以分为三个层次: 图形化界面使用;“.geo”语言方式;通过Gmsh API方式,将gmsh集成至其他软件。
下面具体介绍geo脚本语句,语句参考自官方教程。首先创建一个名为demo.geo的文件。 几何定义 // 创建变量lc lc = 1e-2; // 创建一个坐标值为(0, 0, 0)序号为1的 点单元 ,点的第四个参数表示划分网格的疏密程度,数字越小, // 则表示周围网格越密集。前三个参数对应xyz坐标轴数值必须设置,第四个参数为可选参数。 Point(1) = {0, 0, 0, lc}; // 同理可创建更多顶点,但需要保证每个点的编号唯一,且都为正数。 Point(2) = {.1, 0, 0, lc}; Point(3) = {.1, .3, 0, lc}; Point(4) = {0, .3, 0, lc}; // 创建一个边单元。边的序号为1,边的起点为序号为1的顶点,终点为序号为2的顶点。 // 同理,维度为1的边,其序号也需要保证唯一。 Line(1) = {1, 2}; // 创建多个边单元 Line(1) = {1, 2}; Line(2) = {3, 2}; Line(3) = {3, 4}; Line(4) = {4, 1}; // 创建一个曲线环单元。语句形式与边类似,左侧表示曲线序号,右侧表示组成环的边的序号。 // 需要注意,这里的边是有先后顺序的,序号前的负号表示将边的首尾倒转。 Curve Loop(1) = {4, 1, -2, 3}; // 上述组成的边环,在形式上已经看起来是一个“长方形”。但是此时对其画2维网格,得到的 // 结果是空的,因为此时只是一个“环”,内部仍然是空的。 // Surface语句可以将环的内部填充,成为一个面。 Plane Surface(1) = {1};以上就简单的定义了一个长方形的平面。几何部分的定义结束了,你可以直接使用上一篇文章提到的图形化方式打开demo.geo,并进行后续的网格划分操作。 当然geo脚本能做的事情很多,并不局限于几何的定义。 其他操作 // 对几何体划分2维网格。 // 每次使用Gmsh打开该geo文件就会直接进行网格划分。 Mesh 2; // 保存网格文件。 Save "demo.msh" // msh是gmsh默认的网格格式,当然它还支持很多其他的格式,修改对应后缀名即可。 Save “demo.vtk” // 上文提到的,可以切换几何内核。 SetFactory("OpenCASCADE"); // 在OpenCASCADE内核中,构建几何体更为方便,可以直接构建一个长方形,无需从点、边、开始。 Rectangle(2) = {.2, 0, 0, .1, .3}; 总结本文简要介绍了Gmsh的第二种使用方式,即通过geo脚本构建几何体,并完成网格划分,网格文件保存的工作。更多Gmsh geo脚本相关的操作可以参考用户手册。下一篇文章将讲解Gmsh第三种使用方式,即将gmsh集成至其他软件中。 |
CopyRight 2018-2019 实验室设备网 版权所有 |