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

  1. 图形化界面使用;
  2. “.geo”语言方式;
  3. 通过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集成至其他软件中。

【网格生成】Gmsh快速入门教程 --2.“geo”脚本方式使用相关推荐

  1. python快速入门答案-总算懂得python脚本快速入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  2. python脚本教程-总算懂得python脚本快速入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  3. OUYA游戏开发快速入门教程

     OUYA游戏开发快速入门教程 试读地址:http://pan.baidu.com/s/1o63a3W2 本教程是国内唯一OUYA游戏开发教程.本教程基于Unity全面讲解OUYA游戏开发方式.内容包 ...

  4. BeagleBone Black快速入门教程

    BeagleBone Black快速入门教程 试读样张下载地址:http://pan.baidu.com/s/1bnjJEnP 本教程是国内唯一BeagleBone Black中文教程.本教程全面讲解 ...

  5. C#游戏开发快速入门教程Unity5.5教程

    C#游戏开发快速入门教程Unity5.5教程 试读文档下载地址:http://pan.baidu.com/s/1slwBHoD C#是微软发布的高级程序设计语言,这门语言和C语言一样,已经成为了大学计 ...

  6. python3入门-终于懂得python3快速入门教程

    跟Java语言一样,python语言也有类的概念,直接使用class关键字定义python类.在python类,定义类的方法.然后直接使用类的初始化调用自身,获取相应的属性.以下是小编为你整理的pyt ...

  7. MySQL 快速入门教程

    转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...

  8. solr6 java_Solr6 快速入门教程

    Solr6 快速入门教程 安装 环境要求 JDK1.8 下载Solr,本文试验时,使用的Solr6.6.0 开始安装 解压solr-6.6.0.zip cd solr-6.6.0\ 启动solr,ru ...

  9. python notebook软件_Jupyter notebook快速入门教程(推荐)

    本文主要介绍了Jupyter notebook快速入门教程,分享给大家,具体如下: 本篇将给大家介绍一款超级好用的工具:Jupyter notebook. 为什么要介绍这款工具呢? 如果你想使用Pyt ...

最新文章

  1. android splash白屏_使用react-native-splash-screen解决应用启动白屏问题
  2. D3DPOOL(资源池)
  3. 诗和远方:无题(五十)
  4. 计算机应用技术概括,计算机应用技术学科各学科方向简介
  5. Python技巧——list comprehension 与 functools.reduce
  6. phpstrom查看代码总行数_程序员实用工具,推荐一款代码统计神器GitStats
  7. flash builder 4.6 mac 版破解方法
  8. 施一公:如何做一名优秀的博士生
  9. HDU - 5510 Bazinga
  10. WebStorm 支持微信小程序的 rpx 单位
  11. day4 vue 学习笔记 组件 生命周期 数据共享 数组常用方法
  12. 【pytest】内置 fixtures 之 tmpdir:创建临时文件
  13. 郭炜实用Python程序设计慕课:chapter13面向对象程序设计
  14. “算丰AI视界”人工智能技术内容征集活动正式开启!
  15. 量子力学揭示时间为何向前
  16. 反编译华为U8825Dldquo;framework-res.apkrdquo;出现的错误提示(2)
  17. 音视频系列2:基本知识
  18. Linux下的时间详解【转】
  19. 创建便于git管理的思维导图 -- markdown结合百度脑图
  20. 微信公众平台 生成带参数的二维码

热门文章

  1. 电脑连接蓝牙音响之后只有最大音量和静音,解决办法
  2. 我的世界java版种子掠夺者,我的世界1.14新版村庄要塞种子 可以和掠夺者为伴 自带刷怪笼...
  3. ksrot php_JS实现PHP ksort方法
  4. 各大CMS采集资源站网址
  5. 服务器角色怎么修改密码,公主连接b服怎么改密码
  6. 《绝代双骄》读后感??
  7. Windows 10设置指纹(Windows Hello)弹窗闪退修复
  8. 一款好用的 gif 录制工具 gifcam 绿色免安装 免费
  9. 实战:k8s之拓扑分布约束-2022.2.19
  10. php文件在线编码转换,php汉字转码 GBK到Big5编码转换