使用gmsh和给定的.geo文件生成和读取mesh文件
fc-oogmsh的Python项目详细描述
fc_oogmshpython包使从 .geo使用gmsh文件,必须安装该文件。也有可能 使用ooGmsh2或ooGmsh4类读取mesh文件并以更友好的形式存储其包含内容。 这个包必须被视为gmsh文件和python之间非常简单的接口。 所以您可以自由地从ooGmsh2或ooGmsh4对象创建任何想要的对象。 ooGmsh2用于读取以格式版本“2.2”存储的msh文件,ooGmsh4类用于格式版本“4.0”和“4.1”
System | Python | gmsh |
---|---|---|
CentOS 7.6 | 2,7.16, 3.5.7, 3.6.8, 3.7.3 (python) | 4.3.0, 4.2.3, 4.1.5, 4.0.7, 3.0.6 |
Debian 9.9 | 2,7.16, 3.5.7, 3.6.8, 3.7.3 (python) | 4.3.0, 4.2.3, 4.1.5, 4.0.7, 3.0.6 |
Fedora 29 | 2,7.16, 3.5.7, 3.6.8, 3.7.3 (python) | 4.3.0, 4.2.3, 4.1.5, 4.0.7, 3.0.6 |
OpenSuse 15.0 | 3.5.7, 3.6.8, 3.7.3 (python) | 4.3.0, 4.2.3, 4.1.5, 4.0.7, 3.0.6 |
Ubuntu 18.04 | 2,7.16, 3.5.7, 3.6.8, 3.7.3 (python) | 4.3.0, 4.2.3, 4.1.5, 4.0.7, 3.0.6 |
Windows 10 (1809) | 3.6.8, 3.7.3 (python) | 4.3.0, 4.2.3, 4.1.5, 4.0.7, 3.0.6 |
MacOS Mojave (10.14.4) | 3.5.4, 3.6.8, 3.7.3 (python) | 4.3.0, 4.2.3, 4.1.5, 4.0.7, 3.0.6 |
文档可在fc-oogmsh专用网页上找到。
安装:
python包索引中提供了fc_oogmshpython包,因此要安装/升级,只需键入
pip install fc_oogmsh -U
配置:
必须将包配置为与gmsh一起使用。 对于默认配置,我们在python下运行:
importfc_oogmshfc_oogmsh.configure()
函数fc_oogmsh.configure()试图猜测gmsh二进制文件在哪里。 如果这个命令失败,或者我们想指定gmsh二进制位置,可以使用 gmsh选项指定具有完整路径的gmsh二进制文件。
例如,在Linux下:
importfc_oogmshfc_oogmsh.configure(gmsh='/usr/local/GMSH/gmsh-4.2.0-Linux/bin/gmsh')
例如,在Windows下:
importfc_oogmshfc_oogmsh.configure(gmsh=r'C:\Users\toto\GMSH\gmsh-4.2.0-Windows\gmsh.exe')
例如,在macos下:
importfc_oogmshfc_oogmsh.configure(gmsh='/Users/toto/GMSH/4.2.0/Gmsh.app/Contents/MacOS/gmsh')
现在,可以运行其中一个演示功能
importfc_oogmshfc_oogmsh.demo02()
linux下demo02()函数的输出是:
*********************** Running demo02 function *********************** *** Build mesh file [fc_oogmsh] Using input file: /home/cuvelier/Travail/Recherch/python/fc-oogmsh/src/fc_oogmsh/geodir/2d/condenser11.geo [fc_oogmsh] Overwritting mesh file /home/cuvelier/.local/share/fc_oogmsh/meshes/condenser11-25.msh [fc_oogmsh] Use option verbose=3 to see gmsh output *** Read mesh file *** Print oGh -> ooGmsh4 object dim : 2 d : 2 types : [1 2] nq : 3483 q : ndarray object[float64], size (2, 3483) toGlobal: ndarray object[int32], size (3483,) Entities:<class 'fc_oogmsh.msh.Entities'> Nodes :<class 'fc_oogmsh.msh.Nodes'> Elements:<class 'fc_oogmsh.msh.Elements'>
示例用法:
我们使用包中给定的几何文件condenser11.geo生成二维网格文件
meshfile=fc_oogmsh.buildmesh2d('condenser11',25,force=True)
此命令的输出为:
fc_oogmsh] Using input file: /home/cuvelier/Travail/Recherch/python/fc-oogmsh/src/fc_oogmsh/geodir/2d/condenser11.geo [fc_oogmsh] Overwritting mesh file /home/cuvelier/.local/share/fc_oogmsh/meshes/condenser11-25.msh [fc_oogmsh] Use option verbose=3 to see gmsh output
此后,可以使用ooGmsh4对象构造函数读取mesh文件并打印一些 信息
oGh=fc_oogmsh.ooGmsh4(meshfile)print('*** Print oGh ->')print(oGh)
这些命令的输出为:
*** Print oGh -> ooGmsh4 object dim : 2 d : 2 types : [1 2] nq : 3483 q : ndarray object[float64], size (2, 3483) toGlobal: ndarray object[int32], size (3483,) Entities:<class 'fc_oogmsh.msh.Entities'> Nodes :<class 'fc_oogmsh.msh.Nodes'> Elements:<class 'fc_oogmsh.msh.Elements'>