【网格生成】Gmsh快速入门教程 --2.“geo”脚本方式使用
上一篇文章讲解了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集成至其他软件中。
【网格生成】Gmsh快速入门教程 --2.“geo”脚本方式使用相关推荐
- python快速入门答案-总算懂得python脚本快速入门教程
PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...
- python脚本教程-总算懂得python脚本快速入门教程
PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...
- OUYA游戏开发快速入门教程
OUYA游戏开发快速入门教程 试读地址:http://pan.baidu.com/s/1o63a3W2 本教程是国内唯一OUYA游戏开发教程.本教程基于Unity全面讲解OUYA游戏开发方式.内容包 ...
- BeagleBone Black快速入门教程
BeagleBone Black快速入门教程 试读样张下载地址:http://pan.baidu.com/s/1bnjJEnP 本教程是国内唯一BeagleBone Black中文教程.本教程全面讲解 ...
- C#游戏开发快速入门教程Unity5.5教程
C#游戏开发快速入门教程Unity5.5教程 试读文档下载地址:http://pan.baidu.com/s/1slwBHoD C#是微软发布的高级程序设计语言,这门语言和C语言一样,已经成为了大学计 ...
- python3入门-终于懂得python3快速入门教程
跟Java语言一样,python语言也有类的概念,直接使用class关键字定义python类.在python类,定义类的方法.然后直接使用类的初始化调用自身,获取相应的属性.以下是小编为你整理的pyt ...
- MySQL 快速入门教程
转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...
- solr6 java_Solr6 快速入门教程
Solr6 快速入门教程 安装 环境要求 JDK1.8 下载Solr,本文试验时,使用的Solr6.6.0 开始安装 解压solr-6.6.0.zip cd solr-6.6.0\ 启动solr,ru ...
- python notebook软件_Jupyter notebook快速入门教程(推荐)
本文主要介绍了Jupyter notebook快速入门教程,分享给大家,具体如下: 本篇将给大家介绍一款超级好用的工具:Jupyter notebook. 为什么要介绍这款工具呢? 如果你想使用Pyt ...
最新文章
- android splash白屏_使用react-native-splash-screen解决应用启动白屏问题
- D3DPOOL(资源池)
- 诗和远方:无题(五十)
- 计算机应用技术概括,计算机应用技术学科各学科方向简介
- Python技巧——list comprehension 与 functools.reduce
- phpstrom查看代码总行数_程序员实用工具,推荐一款代码统计神器GitStats
- flash builder 4.6 mac 版破解方法
- 施一公:如何做一名优秀的博士生
- HDU - 5510 Bazinga
- WebStorm 支持微信小程序的 rpx 单位
- day4 vue 学习笔记 组件 生命周期 数据共享 数组常用方法
- 【pytest】内置 fixtures 之 tmpdir:创建临时文件
- 郭炜实用Python程序设计慕课:chapter13面向对象程序设计
- “算丰AI视界”人工智能技术内容征集活动正式开启!
- 量子力学揭示时间为何向前
- 反编译华为U8825Dldquo;framework-res.apkrdquo;出现的错误提示(2)
- 音视频系列2:基本知识
- Linux下的时间详解【转】
- 创建便于git管理的思维导图 -- markdown结合百度脑图
- 微信公众平台 生成带参数的二维码
热门文章
- 电脑连接蓝牙音响之后只有最大音量和静音,解决办法
- 我的世界java版种子掠夺者,我的世界1.14新版村庄要塞种子 可以和掠夺者为伴 自带刷怪笼...
- ksrot php_JS实现PHP ksort方法
- 各大CMS采集资源站网址
- 服务器角色怎么修改密码,公主连接b服怎么改密码
- 《绝代双骄》读后感??
- Windows 10设置指纹(Windows Hello)弹窗闪退修复
- 一款好用的 gif 录制工具 gifcam 绿色免安装 免费
- 实战:k8s之拓扑分布约束-2022.2.19
- php文件在线编码转换,php汉字转码 GBK到Big5编码转换