有限元剖网格之Gmsh安装与使用入门
有限元法(FEM,Finite Element Method)是一种求解偏微分方程问题的数值方法。随着电子计算机的发展,有限元方法迅速发展成一种现代计算方法,在固体力学、流体力学、热传导、电磁学、声学、生物力学等方面有着广泛的应用。今天就先介绍有限元方法之前处理,利用Gmsh剖网格。
Gmsh介绍
Gmsh是一个自动的三维有限元网格生成带有内置在CAD和后期处理器。当然其也可以生成一维和二维的有限元网格。
Gmsh安装
1. Gmsh图形界面安装
可以去官网下载安装包Gmsh官网

可以在Download处
Download Gmsh for Windows 64-bit, Windows 32-bit, Linux 64-bit, Linux
32-bit or MacOS
点击自己电脑对应的系统下载,安装成功后会在电脑上有如下图所示的软件:

打开后去用其打开下载的"*.geo"(在Download处点击 Download the source code里面可以找到)文件,之后在Gmsh软件界面内点击点击Mesh下的2D,可以得到如下图的网格

注:Gmsh软件上方的菜单栏亦有将网格数据导出的功能,可以导出多种标准格式。
2. Gmsh从源码安装
在官网的Download处点击下载
Download the source code
注:此处链接失效的话可以去前面提到的官网对应位置下载。
解压后有"README.txt"文件里面介绍了如何安装,以下为详细步骤:
- 从Terminal进入到如下图所示目录:

- 输入命令:mkdir build
- cd build
- cmake -DENABLE_BUILD_DYNAMIC=1 …
- make
- make install
注: 其中第5步时间可能稍长,耐心等待就行。
利用C++语言调用Gmsh的API接口剖网格
可在源码的同级目录下建立demo文件夹,里面放自己学习的代码。将如下代码拷贝到"demo.cpp"文件中
#include <iostream>
#include <gmsh.h>
#include <vector>
#include <fstream>
#include <iomanip>
using namespace std;
void writeNodes(vector<double>& nodes, string s)
{
string filename = s + ".txt";
ofstream outfileb(filename.c_str(), ios::out);
for(int i = 0; i < nodes.size(); i++)
{
outfileb<<(nodes[i])<<endl;
}
outfileb.close();
}
void writeElements(vector<std::vector<std::size_t> >& elements, string s)
{
string filename = s + ".txt";
ofstream outfileb(filename.c_str(), ios::out);
for(int i = 0; i < elements[1].size(); i++)
{
outfileb<<

本文详细介绍Gmsh软件的安装与使用,包括图形界面安装、源码安装及C++调用API接口进行网格生成。Gmsh是一款强大的有限元网格生成工具,适用于一维、二维和三维网格创建。
最低0.47元/天 解锁文章
2010





