【网格生成】Gmsh快速入门教程 您所在的位置:网站首页 c语言的变量必须先定义后使用吗 【网格生成】Gmsh快速入门教程

【网格生成】Gmsh快速入门教程

2023-12-10 00:56| 来源: 网络整理| 查看: 265

上一篇文章讲解了Gmsh的图形化方式入门使用。根据Gmsh官方的描述,Gmsh使用可以分为三个层次:

图形化界面使用;“.geo”语言方式;通过Gmsh API方式,将gmsh集成至其他软件。

在这里插入图片描述 那么今天就来介绍Gmsh的第二种使用方式,通过“geo”脚本调用Gmsh。geo是Gmsh定义的一种内置脚本格式,使用ASSIC编码,可以被Gmsh解析器解析。几乎所有在图形化界面能完成的任务都可以在geo脚本中实现。

下面具体介绍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 实验室设备网 版权所有