Gmsh笔记

有限元网格生成器,地址: http://gmsh.info

四个模块:几何,网格,求解器,后处理

API没有文档,要自己看demo


> gmsh a.geo

点击保存,存.msh格式,可以在文件菜单中导出其他格式

非交互模式:eg. 仅网格化

> gmsh a.geo -2

-1 -2 -3 执行1D 2D 3D网格生成,然后退出

-o file 指定输出文件名

-format string 选择输出格式:msh unv stl mesh bdf等等

-refine 执行统一的网格细化,然后退出

-clmin float 最小网格元素大小

-clmax float 最大网格元素大小

-clcurv 从曲率自动计算元素大小

脚本支持C/C++风格的注释


For i In {1:3}
x~{i} = i; 
EndFor

等价于

x_1 = 1;
x_2 = 2;
x_3 = 3;

有Cos Exp Log等内置函数, 可以定义简单的宏

If (balabala)

ElseIf (balabala)

Else

EndIf

其它:

Pi, Menory, Exit, Printf


几何模块:提供简单CAD引擎

每个元素要有唯一的编号

Point ( 1 ) = { x, y, z <, expression > }; 可选设置此处网格大小

Point ( 2 ) = {x2,y2,z2};

Line (3) = {1,2};

Circle(4) = {};

创建一个圆弧。右边三个表达式定义弧的起点,中心和终点。使用内置的几何内核,弧应该严格小于Pi。通过OpenCASCADE内核,可以提供附加表达式 s来定义一个完整的圆(第四个表达式是半径)或两个角度之间的圆弧(接下来的两个表达式)。

Rectangle(5) = {};

创建一个矩形。3个第一个表达式定义了左下角; 接下来的两个定义宽度和高度。如果提供了第6个表达式,它将定义一个半径以围绕矩形拐角。Rectangle仅在OpenCASCADE内核中可用。

Sphere(6) = {};

创建一个由其中心和半径的3个坐标定义的球体。附加表达式定义3个角度限制。Sphere仅在OpenCASCADE内核中可用。

Box(7) = {};

创建一个框,由一个点的3个坐标和3个范围定义。Box仅在OpenCASCADE内核中可用。

其他的格式在gui里面导出看一下

也可以通过拉伸点线面等操作来构建线面体

布尔运算:

BooleanIntersection {list} {list}; 交集

BooleanUnion {} {};

BooleanDifference {} {};

BooleanFragments {} {};

”物理“是为了分组


Mesh 2 划分2D网格

Point | Line {} In Surface {}; 嵌入点线使符合

Coherence Mesh; 删除重复顶点


Mesh ASCII 文件格式

$MeshFormat

version-number file-type data-size

$EndMeshFormat

$PhysicalNames

number-of-namesphysical-dimension physical-number "physical-name"

$EndPhysicalNames

$Nodes

number-of-nodesnode-number x-coord y-coord z-coord

$EndNodes

$Elements

number-of-elementselm-number elm-type number-of-tags < tag > … node-number-list

$EndElements

$Periodic

number-of-periodic-entitiesdimension slave-entity-tag master-entity-tagnumber-of-nodesslave-node-number master-node-number

$EndPeriodic

$NodeData

number-of-string-tags

< "string-tag" >

number-of-real-tags

< real-tag >

number-of-integer-tags

< integer-tag >

node-number value …

$EndNodeData

$ElementData

number-of-string-tags

< "string-tag" >

number-of-real-tags

< real-tag >

number-of-integer-tags

< integer-tag >

elm-number value …

$EndElementData

$ElementNodeData

number-of-string-tags

< "string-tag" >

number-of-real-tags

< real-tag >

number-of-integer-tags

< integer-tag >

elm-number number-of-nodes-per-element value …

$EndElementNodeData

$InterpolationScheme

"name"

number-of-element-topologieselm-topologynumber-of-interpolation-matricesnum-rows num-columns value …

$EndInterpolationScheme

你可能感兴趣的:(Gmsh笔记)