Gmsh的api学习

1 概述

gmsh的几何模型可以自底向上定义(点-线-面-体),也可以用构造实体方法(体通过布尔运算)定义。可以通过内建几何引擎构建,也可以通过openCascade构建(可能是软件开发过程中,更改了技术路线?)。但是网格只能是按照点-线-面-体的顺序来画网格。
model实体包括点、线、面和体。model实体可以是cad实体(通过geo内核或openCascade occ内核)创建,或者是离散实体(mesh)。
model–
|
----geometry
|
--------entity: point(dim = 0, tag:正整数), line(dim=1), surface(dim=2), volume
|
----mesh
|
--------element: ???

对于cad几何数据,其中组成单元称为实体(entity),它可以是点线面体,每个实体包含dimension和tag属性。
对于网格数据,其组成单元为单元/元素(element),它可以是点线三角形四边形四面体六面体锥形等。每个元素包含nodes和tag属性,而每个node也有tag。tag是全局唯一的。
每个几何entity包含网格的element。比如,0维的几何点包含一个元素点,同时包含一个网格的node。1维的几何线包含元素线和网格点。2维几何面包含网格三角形或四边形等,还包含网格点等等。
// A model entity of dimension 0 (a geometrical point) will contain a mesh
// element of type point, as well as a mesh node. A model curve will contain
// line elements as well as its interior nodes, while its boundary nodes
// will be stored in the bounding model points. A model surface will contain
// triangular and/or quadrangular elements and all the nodes not classified
// on its boundary or on its embedded entities. A model volume will contain
// tetrahedra, hexahedra, etc. and all the nodes not classified on its
// boundary or on its embedded entities.
msh格式说明

2 api

操作几何模型和网格数据的函数在model命名空间,操作后处理数据的函数在view命名空间。
其他的命名空间还有:
option:各种选项
plugin:插件
graphics:绘图
fltk:gui
onelab:仿真
logger:日志

3生成网格的程序

// -----------------------------------------------------------------------------
//
//  Gmsh C++ tutorial 1
//
//  Geometry basics, elementary entities, physical groups
//
// -----------------------------------------------------------------------------

// The Gmsh C++ API is entirely defined in the `gmsh.h' header (which contains
// the full documentation of all the functions in the API):
#include <gmsh.h>

int main(int argc, char **argv)
{
  // Before using any functions in the C++ API, Gmsh must be initialized:
  //首先进行初始化
  gmsh::initialize();

  // By default Gmsh will not print out any messages: in order to output
  // messages on the terminal, just set the "General.Terminal" option to 1:
  //如果需要输出中间过程信息,使用下面这个语句
  //gmsh::option::setNumber("General.Terminal", 1);

  // We now add a new model, named "t1". If gmsh::model::add() is not called, a
  // new default (unnamed) model will be created on the fly, if necessary.
  //新增模型,名为t1
  gmsh::model::add("t1");

  // The C++ API provides direct access to each supported geometry kernel. The
  // built-in kernel is used in this first tutorial: the corresponding API
  // functions live in the "gmsh::model::geo" namespace.

  // The first type of `elementary entity' in Gmsh is a `Point'. To create a
  // point with the built-in geometry kernel, the C++ API function is
  // gmsh::model::geo::addPoint():
  // - the first 3 arguments are the point coordinates (x, y, z)
  // - the next (optional) argument is the target mesh size (the "characteristic
  //   length") close to the point
  // - the last (optional) argument is the point tag (a stricly positive integer
  //   that uniquely identifies the point)
  // 新增点
  double lc = 1e-2;
  gmsh::model::geo::addPoint(0, 0, 0, lc, 1);

  // The distribution of the mesh element sizes will be obtained by
  // interpolation of these characteristic lengths throughout the
  // geometry. Another method to specify characteristic lengths is to use
  // general mesh size Fields (see `t10.cpp'). A particular case is the use of a
  // background mesh (see `t7.cpp').
  //
  // If no target mesh size of provided, a default uniform coarse size will be
  // used for the model, based on the overall model size.
  //
  // We can then define some additional points. All points should have different
  // tags:
  gmsh::model::geo::addPoint(.1, 0, 0, lc, 2);
  gmsh::model::geo::addPoint(.1, .3, 0, lc, 3);

  // If the tag is not provided explicitly, a new tag is automatically created,
  // and returned by the function:
  int p4 = gmsh::model::geo::addPoint(0, .3, 0, lc);

  // Curves are Gmsh's second type of elementery entities, and, amongst curves,
  // straight lines are the simplest. The API to create straight line segments
  // with the built-in kernel follows the same conventions: the first 2
  // arguments are point tags (the start and end points of the line), and the
  // last (optional one) is the line tag.
  //
  // In the commands below, for example, the line 1 starts at point 1 and ends
  // at point 2.
  //
  // Note that curve tags are separate from point tags - hence we can reuse tag
  // `1' for our first curve. And as a general rule, elementary entity tags in
  // Gmsh have to be unique per geometrical dimension.
  //新增线
  gmsh::model::geo::addLine(1, 2, 1);
  gmsh::model::geo::addLine(3, 2, 2);
  gmsh::model::geo::addLine(3, p4, 3);
  gmsh::model::geo::addLine(4, 1, p4);

  // The third elementary entity is the surface. In order to define a simple
  // rectangular surface from the four curves defined above, a curve loop has
  // first to be defined. A curve loop is defined by an ordered list of
  // connected curves, a sign being associated with each curve (depending on the
  // orientation of the curve to form a loop). The API function to create curve
  // loops takes a vector of integers as first argument, and the curve loop tag
  // (which must be unique amongst curve loops) as the second (optional)
  // argument:
  //增加封闭曲线
  gmsh::model::geo::addCurveLoop({4, 1, -2, 3}, 1);

  // We can then define the surface as a list of curve loops (only one here,
  // representing the external contour, since there are no holes--see `t4.cpp'
  // for an example of a surface with a hole):
  //增加表面
  gmsh::model::geo::addPlaneSurface({1}, 1);

  // At this level, Gmsh knows everything to display the rectangular surface 1
  // and to mesh it. An optional step is needed if we want to group elementary
  // geometrical entities into more meaningful groups, e.g. to define some
  // mathematical ("domain", "boundary"), functional ("left wing", "fuselage")
  // or material ("steel", "carbon") properties.
  //可以定义实体组,比如材料组,功能组等,这在gmsh中叫做物理组。
  //
  // Such groups are called "Physical Groups" in Gmsh. By default, if physical
  // groups are defined, Gmsh will export in output files only mesh elements
  // that belong to at least one physical group. (To force Gmsh to save all
  // elements, whether they belong to physical groups or not, set the
  // `Mesh.SaveAll' option to 1.) Physical groups are also identified by tags,
  // i.e. stricly positive integers, that should be unique per dimension (0D,
  // 1D, 2D or 3D). Physical groups can also be given names.
  //
  // Here we define a physical curve that groups the left, bottom and right
  // curves in a single group (with prescribed tag 5); and a physical surface
  // with name "My surface" (with an automatic tag) containing the geometrical
  // surface 1:
  gmsh::model::addPhysicalGroup(1, {1, 2, 4}, 5);
  int ps = gmsh::model::addPhysicalGroup(2, {1});
  gmsh::model::setPhysicalName(2, ps, "My surface");

  // Before it can be meshed, the internal geometrical representation must be
  // synchronized with the Gmsh model, which will create the relevant Gmsh data
  // structures. This is achieved by the gmsh::model::geo::synchronize() API
  // call for the built-in geometry kernel. Synchronizations can be called at
  // any time, but they involve a non trivial amount of processing; so while you
  // could synchronize the internal CAD data after every CAD command, it is
  // usually better to minimize the number of synchronization points.
  gmsh::model::geo::synchronize();

  // We can then generate a 2D mesh...
  gmsh::model::mesh::generate(2);

  // ... and save it to disk
  gmsh::write("t1.msh");

  // Remember that by default, if physical groups are defined, Gmsh will export
  // in the output mesh file only those elements that belong to at least one
  // physical group. To force Gmsh to save all elements, you can use
  //
  // gmsh::option::setNumber("Mesh.SaveAll", 1);

  // By default, Gmsh saves meshes in the latest version of the Gmsh mesh file
  // format (the `MSH' format). You can save meshes in other mesh formats by
  // specifying a filename with a different extension. For example
  //
  //   gmsh::write("t1.unv");
  //
  // will save the mesh in the UNV format. You can also save the mesh in older
  // versions of the MSH format: simply set
  //
  //   gmsh::option::setNumber("Mesh.MshFileVersion", x);
  //
  // for any version number `x'. As an alternative, you can also not specify
  // the format explicitly, and just choose a filename with the `.msh2' or
  // `.msh4' extension.
  //结果输出可以选择不同格式,如msh,unv等。

  // To visualize the model we could run the graphical user interface with:
  // 用gui界面可以使用如下语句
  // gmsh::fltk::run();

  // Note that starting with Gmsh 3.0, models can be built using other geometry
  // kernels than the default "built-in" kernel. To use the OpenCASCADE geometry
  // kernel instead of the built-in kernel, you should use the functions in the
  // "gmsh::model::occ" namespace.
  //
  // Different geometry kernels have different features. With OpenCASCADE,
  // instead of defining the surface by successively defining 4 points, 4 curves
  // and 1 curve loop, one can define the rectangular surface directly with
  //
  // gmsh::model::occ::addRectangle(.2, 0, 0, .1, .3);
  //
  // After synchronization with the Gmsh model with
  //
  // gmsh::model::occ::synchronize();
  //
  // the underlying curves and points could be accessed with
  // gmsh::model::getBoundary().
  //
  // See e.g `t16.cpp', `t18.cpp', `t19.cpp' or `t20.cpp' for complete examples
  // based on OpenCASCADE, and `demos/api' for more.
  //从3.0开始,可以使用openCascade内核进行几何模型定义。这种方法相比内建的内核定义方法更简单。

  // This should be called when you are done using the Gmsh C++ API:
  //退出时需要调用
  gmsh::finalize();

  return 0;
}

总的来说,程序结构如下:
gmsh::initialize();
gmsh::write(“t1.msh”);
gmsh::finalize();

4 读取网格的程序

#include <iostream>
#include <gmsh.h>

int main(int argc, char **argv)
{
  if(argc < 2) {
    std::cout << "Usage: " << argv[0] << " file.msh" << std::endl;
    return 0;
  }

  gmsh::initialize();
  gmsh::option::setNumber("General.Terminal", 1);
  gmsh::open(argv[1]);

  // get all elementary entities in the model
  //获取几何模型的entity, 包含<dim, tag>属性
  std::vector<std::pair<int, int> > entities;
  gmsh::model::getEntities(entities);

  for(unsigned int i = 0; i < entities.size(); i++) {
    // get the mesh nodes for each elementary entity
    std::vector<std::size_t> nodeTags;
    std::vector<double> nodeCoords, nodeParams;
    int dim = entities[i].first, tag = entities[i].second;
    //nodecoords为节点的xyz坐标,nodeparams为节点的参数坐标(u1,v1,u2,v2)
    gmsh::model::mesh::getNodes(nodeTags, nodeCoords, nodeParams, dim, tag);

    // get the mesh elements for each elementary entity
    std::vector<int> elemTypes;
    std::vector<std::vector<std::size_t> > elemTags, elemNodeTags;
    //比如dim=2, tag=13,这个表面有90个单元,那么elemTags[0]是90元素的向量,elemTags[0][0]为第一个三角面元的编号,而elemNodeTags[0][0]-[0][2]是第一个三角面元三顶点的编号。
    gmsh::model::mesh::getElements(elemTypes, elemTags, elemNodeTags, dim, tag);

    // report some statistics
    int numElem = 0;
    for(unsigned int j = 0; j < elemTags.size(); j++)
      numElem += elemTags[j].size();
    std::string type;
    gmsh::model::getType(dim, tag, type);
    std::cout << nodeTags.size() << " mesh nodes and " << numElem
              << " mesh elements on entity (" << dim << "," << tag
              << ") of type " << type << "\n";
    std::vector<int> partitions;
    gmsh::model::getPartitions(dim, tag, partitions);
    if(partitions.size()) {
      std::cout << " - Partition tag(s):";
      for(unsigned int j = 0; j < partitions.size(); j++)
        std::cout << " " << partitions[j];
      int parentDim, parentTag;
      gmsh::model::getParent(dim, tag, parentDim, parentTag);
      std::cout << " - parent entity (" << parentDim << "," << parentTag
                << ")\n";
    }
    for(unsigned int j = 0; j < elemTypes.size(); j++) {
      std::string name;
      int d, order, numv, numpv;
      std::vector<double> param;
      gmsh::model::mesh::getElementProperties(elemTypes[j], name, d, order,
                                              numv, param, numpv);
      std::cout << " - Element type: " << name << ", order " << order << "\n";
      std::cout << "   with " << numv << " nodes in param coord: (";
      for(unsigned int k = 0; k < param.size(); k++)
        std::cout << param[k] << " ";
      std::cout << ")\n";
    }
  }

  gmsh::finalize();
  return 0;
}

5 文件格式

文件由section(节/段)组成。第一个section必须是
$MeshFormat // same as MSH version 2
4.1 //网格文件版本号
0 //文件类型,0为文本格式,1为二进制格式
111111 //文件大小
$EndMeshFormat

$Entities //几何模型,可选
$EndEntities

$Nodes //网格节点

$EndNodes

$Elements
$EndElements

示例文件

$MeshFormat
4.1 0 8          MSH4.1, ASCII
$EndMeshFormat
$Nodes
1 6 1 6          1 entity bloc, 6 nodes total, min/max node tags: 1 and 6
2 1 0 6          2D entity (surface) 1, no parametric coordinates, 6 nodes
1                  node tag #1
2                  node tag #2
3                  etc.
4
5
6
0. 0. 0.           node #1 coordinates (0., 0., 0.)
1. 0. 0.           node #2 coordinates (1., 0., 0.)
1. 1. 0.           etc.
0. 1. 0.
2. 0. 0.
2. 1. 0.
$EndNodes
$Elements
1 2 1 2          1 entity bloc, 2 elements total, min/max element tags: 1 and 2
2 1 3 2          2D entity (surface) 1, element type 3 (4-node quad), 2 elements
1 1 2 3 4          quad tag #1, nodes 1 2 3 4
2 2 5 6 3          quad tag #2, nodes 2 5 6 3
$EndElements
$NodeData
1                1 string tag:
"A scalar view"    the name of the view ("A scalar view")
1                1 real tag:
0.0                the time value (0.0)
3                3 integer tags:
0                  the time step (0; time steps always start at 0)
1                  1-component (scalar) field
6                  6 associated nodal values
1 0.0            value associated with node #1 (0.0)
2 0.1            value associated with node #2 (0.1)
3 0.2            etc.
4 0.0
5 0.2
6 0.4
$EndNodeData

//示例文件2

$MeshFormat
4.1 0 8
$EndMeshFormat
$Entities //几何实体列表
8 12 6 1 //8个点,12条线,6个表面,1个体
17 0.5 0.2 1.8 0 //点tag,x-y-z坐标,物理tag
18 0.5 0.2 0.8 0 
19 0.5 1.2 1.8 0 
20 0.5 1.2 0.8 0 
21 1.5 0.2 1.8 0 
22 1.5 0.2 0.8 0 
23 1.5 1.2 1.8 0 
24 1.5 1.2 0.8 0 
25 0.4999999 0.1999999 0.7999999000000001 0.5000000999999999 0.2000001 1.8000001 0 2 18 -17 //线tag...
26 0.4999999 0.1999999 1.7999999 0.5000000999999999 1.2000001 1.8000001 0 2 17 -19 
27 0.4999999 1.1999999 0.7999999000000001 0.5000000999999999 1.2000001 1.8000001 0 2 20 -19 
28 0.4999999 0.1999999 0.7999999000000001 0.5000000999999999 1.2000001 0.8000001 0 2 18 -20 
29 1.4999999 0.1999999 0.7999999000000001 1.5000001 0.2000001 1.8000001 0 2 22 -21 
30 1.4999999 0.1999999 1.7999999 1.5000001 1.2000001 1.8000001 0 2 21 -23 
31 1.4999999 1.1999999 0.7999999000000001 1.5000001 1.2000001 1.8000001 0 2 24 -23 
32 1.4999999 0.1999999 0.7999999000000001 1.5000001 1.2000001 0.8000001 0 2 22 -24 
33 0.4999998999999999 0.1999999 0.7999999000000001 1.5000001 0.2000001 0.8000001 0 2 18 -22 
34 0.4999998999999999 0.1999999 1.7999999 1.5000001 0.2000001 1.8000001 0 2 17 -21 
35 0.4999998999999999 1.1999999 0.7999999000000001 1.5000001 1.2000001 0.8000001 0 2 20 -24 
36 0.4999998999999999 1.1999999 1.7999999 1.5000001 1.2000001 1.8000001 0 2 19 -23 
13 0.4999999 0.1999999 0.7999999000000001 0.5000000999999999 1.2000001 1.8000001 0 4 25 26 -27 -28 //面信息
14 1.4999999 0.1999999 0.7999999000000001 1.5000001 1.2000001 1.8000001 0 4 29 30 -31 -32 
15 0.4999998999999999 0.1999999 0.7999999000000001 1.5000001 0.2000001 1.8000001 0 4 33 29 -34 -25 
16 0.4999998999999999 1.1999999 0.7999999000000001 1.5000001 1.2000001 1.8000001 0 4 35 31 -36 -27 
17 0.4999998999999999 0.1999999 0.7999999000000001 1.5000001 1.2000001 0.8000001 0 4 28 35 -32 -33 
18 0.4999998999999999 0.1999999 1.7999999 1.5000001 1.2000001 1.8000001 0 4 26 36 -30 -34 
3 0.4999998999999999 0.1999999 0.7999999000000001 1.5000001 1.2000001 1.8000001 0 6 13 14 15 16 17 18 
$EndEntities
$Nodes //节点信息
27 272 1 272
0 17 0 1
1
0.5 0.2 1.8
0 18 0 1
2
0.5 0.2 0.8
0 19 0 1
3
0.5 1.2 1.8
0 20 0 1
4
0.5 1.2 0.8
0 21 0 1
5
1.5 0.2 1.8
0 22 0 1
6
1.5 0.2 0.8
0 23 0 1
7
1.5 1.2 1.8
0 24 0 1
8
1.5 1.2 0.8
1 25 0 5
9
10
11
12
13
0.5 0.2 0.9666666666666662
0.5 0.2 1.133333333333332
0.5 0.2 1.299999999999998
0.5 0.2 1.466666666666665
0.5 0.2 1.633333333333332
1 26 0 5
14
15
16
17
18
0.5 0.3666666666666663 1.8
0.5 0.5333333333333323 1.8
0.5 0.6999999999999986 1.8
0.5 0.8666666666666647 1.8
0.5 1.033333333333332 1.8
1 27 0 5
19
20
21
22
23
0.5 1.2 0.9666666666666662
0.5 1.2 1.133333333333332
0.5 1.2 1.299999999999998
0.5 1.2 1.466666666666665
0.5 1.2 1.633333333333332
1 28 0 5
24
25
26
27
28
0.5 0.3666666666666663 0.8
0.5 0.5333333333333323 0.8
0.5 0.6999999999999986 0.8
0.5 0.8666666666666647 0.8
0.5 1.033333333333332 0.8
1 29 0 5
29
30
31
32
33
1.5 0.2 0.9666666666666662
1.5 0.2 1.133333333333332
1.5 0.2 1.299999999999998
1.5 0.2 1.466666666666665
1.5 0.2 1.633333333333332
1 30 0 5
34
35
36
37
38
1.5 0.3666666666666663 1.8
1.5 0.5333333333333323 1.8
1.5 0.6999999999999986 1.8
1.5 0.8666666666666647 1.8
1.5 1.033333333333332 1.8
1 31 0 5
39
40
41
42
43
1.5 1.2 0.9666666666666662
1.5 1.2 1.133333333333332
1.5 1.2 1.299999999999998
1.5 1.2 1.466666666666665
1.5 1.2 1.633333333333332
1 32 0 5
44
45
46
47
48
1.5 0.3666666666666663 0.8
1.5 0.5333333333333323 0.8
1.5 0.6999999999999986 0.8
1.5 0.8666666666666647 0.8
1.5 1.033333333333332 0.8
1 33 0 5
49
50
51
52
53
0.6666666666666662 0.2 0.8
0.8333333333333324 0.2 0.8
0.9999999999999986 0.2 0.8
1.166666666666665 0.2 0.8
1.333333333333332 0.2 0.8
1 34 0 5
54
55
56
57
58
0.6666666666666662 0.2 1.8
0.8333333333333324 0.2 1.8
0.9999999999999986 0.2 1.8
1.166666666666665 0.2 1.8
1.333333333333332 0.2 1.8
1 35 0 5
59
60
61
62
63
0.6666666666666662 1.2 0.8
0.8333333333333324 1.2 0.8
0.9999999999999986 1.2 0.8
1.166666666666665 1.2 0.8
1.333333333333332 1.2 0.8
1 36 0 5
64
65
66
67
68
0.6666666666666662 1.2 1.8
0.8333333333333324 1.2 1.8
0.9999999999999986 1.2 1.8
1.166666666666665 1.2 1.8
1.333333333333332 1.2 1.8
//有删节
2 16 0 34
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
0.6508426476087525 1.2 1.381510956834052
1.097787609117762 1.2 0.9493826874925712
1.355662432702594 1.2 1.383333333333332
1.097787609117763 1.2 1.650617312507428
0.745879829473358 1.2 0.9356302602983095
0.7477062749977592 1.2 1.661162021202656
1.358871325824028 1.2 1.050706228213479
1.358871325824028 1.2 1.549293771786519
1.197528712446488 1.2 1.492564646662274
1.209025506578738 1.2 1.304316329999267
1.066987298107782 1.2 1.383333333333332
1.063812934215549 1.2 1.222220446824229
0.925063584221011 1.2 1.30092563002626
0.922649730810376 1.2 1.466666666666665
0.9213699392000604 1.2 1.140090540338241
0.7835712984850783 1.2 1.240465917555634
1.196746752058104 1.2 1.108845369074414
0.9203907139583827 1.2 0.9687852027634299
0.9209213154057616 1.2 1.631801208463608
1.353384336193911 1.2 1.213422432325637
1.251495706808269 1.2 1.661354996061843
0.6369493419813703 1.2 1.552883104482442
1.251402616285843 1.2 0.9388128629544283
0.6313072671406489 1.2 1.041807230776599
0.8153718094250966 1.2 1.382547596179446
0.6351634612227937 1.2 1.205995239691189
0.7833193598962169 1.2 1.083207576000983
0.7824068533715194 1.2 1.512761925638145
1.050240473580838 1.2 1.52099364905389
1.040021589709972 1.2 1.077864849298577
1.377991532071853 1.2 1.677991532071853
0.6220084679281456 1.2 1.677991532071854
1.377991532071854 1.2 0.9220084679281455
0.6211598774258424 1.2 0.9211598774258425
2 17 0 34
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
1.097787609117763 0.349382687492571 0.8
0.6508426476087527 0.7815109568340521 0.8
1.097787609117763 1.050617312507428 0.8
1.355662432702594 0.7833333333333314 0.8
0.7458798294733583 0.3356302602983093 0.8
1.358871325824028 0.4507062282134787 0.8
0.7477062749977592 1.061162021202656 0.8
1.358871325824028 0.9492937717865189 0.8
1.197528712446488 0.8925646466622739 0.8
1.209025506578738 0.7043163299992665 0.8
1.066987298107782 0.783333333333331 0.8
1.06381293421555 0.6222204468242278 0.8
0.9250635842210116 0.7009256300262581 0.8
0.922649730810376 0.8666666666666636 0.8
0.9213699392000615 0.5400905403382402 0.8
0.7835712984850792 0.6404659175556329 0.8
0.9209213154057614 1.031801208463607 0.8
1.355814021751758 0.6175037597021233 0.8
0.9203907139583835 0.3687852027634294 0.8
1.196768407636557 0.5089649537937651 0.8
1.251495706808269 1.061354996061843 0.8
0.6369493419813702 0.9528831044824415 0.8
1.251405194330897 0.3388270992305415 0.8
0.6313072671406494 0.4418072307765987 0.8
0.6351634612227943 0.6059952396911892 0.8
0.8153718094250968 0.7825475961794448 0.8
0.7833193598962184 0.4832075760009824 0.8
0.7824068533715194 0.9127619256381441 0.8
1.050240473580838 0.9209936490538888 0.8
1.040025920825663 0.4778887662424467 0.8
1.377991532071853 1.077991532071853 0.8
1.377991532071854 0.3220084679281456 0.8
0.6220084679281455 1.077991532071854 0.8
0.6211598774258424 0.3211598774258424 0.8
2 18 0 34
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
1.097787609117763 0.349382687492571 1.8
0.6508426476087527 0.7815109568340521 1.8
1.097787609117763 1.050617312507428 1.8
1.355662432702594 0.7833333333333314 1.8
0.6513080901435649 0.4623742252847557 1.8
1.358871325824028 0.4507062282134787 1.8
0.7477062749977592 1.061162021202656 1.8
1.358871325824028 0.9492937717865189 1.8
1.197528712446488 0.8925646466622739 1.8
1.209025506578738 0.7043163299992665 1.8
1.066987298107782 0.783333333333331 1.8
1.06381293421555 0.6222204468242278 1.8
0.9250635842210116 0.7009256300262581 1.8
0.9212660308626635 0.5399105658185368 1.8
0.922649730810376 0.8666666666666636 1.8
0.772222170949889 0.6199000080986981 1.8
0.9209213154057614 1.031801208463607 1.8
1.355814021751758 0.6175037597021233 1.8
0.922042975355188 0.3691750301123358 1.8
1.196768407636557 0.5089649537937651 1.8
1.251495706808269 1.061354996061843 1.8
0.6369493419813702 0.9528831044824415 1.8
1.251405194330897 0.3388270992305415 1.8
0.7555622040077321 0.3392783562418089 1.8
0.6148745817404413 0.6194237047101674 1.8
0.8131019839180587 0.7784344142880579 1.8
0.8044802942638075 0.466127637111227 1.8
0.7820285491203463 0.912076395322913 1.8
1.050240473580838 0.9209936490538888 1.8
1.040335591437544 0.4779307368082872 1.8
1.377991532071853 1.077991532071853 1.8
0.6220084679281458 0.3220084679281459 1.8
1.377991532071854 0.3220084679281456 1.8
0.6220084679281455 1.077991532071854 1.8
3 3 0 0
$EndNodes
//网格信息
//对应几何的点线面体,这里给出网格的点线面体的信息
//比如,几何的线包含多个网格节点,这种对应关系在这里描述
//网格的点线面体称为entity,单独设置tag
$Elements //网格信息
26 620 1 620 //26个entiti block,620个网格,网格编号从1到620
0 17 15 1 //entity dim(0),tag(17),type(15),本entity含有的单元数量(1)
1 1 
0 18 15 1
2 2 
0 19 15 1
3 3 
0 20 15 1
4 4 
0 21 15 1
5 5 
0 22 15 1
6 6 
0 23 15 1
7 7 
0 24 15 1
8 8 
1 25 1 6
9 2 9 
10 9 10 
11 10 11 
12 11 12 
13 12 13 
14 13 1 
1 26 1 6
15 1 14 
16 14 15 
17 15 16 
18 16 17 
19 17 18 
20 18 3 
1 27 1 6
21 4 19 
22 19 20 
23 20 21 
24 21 22 
25 22 23 
26 23 3 
1 28 1 6
27 2 24 
28 24 25 
29 25 26 
30 26 27 
31 27 28 
32 28 4 
1 29 1 6
33 6 29 
34 29 30 
35 30 31 
36 31 32 
37 32 33 
38 33 5 
1 30 1 6
39 5 34 
40 34 35 
41 35 36 
42 36 37 
43 37 38 
44 38 7 
1 31 1 6
45 8 39 
46 39 40 
47 40 41 
48 41 42 
49 42 43 
50 43 7 
1 32 1 6
51 6 44 
52 44 45 
53 45 46 
54 46 47 
55 47 48 
56 48 8 
1 33 1 6
57 2 49 
58 49 50 
59 50 51 
60 51 52 
61 52 53 
62 53 6 
1 34 1 6
63 1 54 
64 54 55 
65 55 56 
66 56 57 
67 57 58 
68 58 5 
1 35 1 6
69 4 59 
70 59 60 
71 60 61 
72 61 62 
73 62 63 
74 63 8 
1 36 1 6
75 3 64 
76 64 65 
77 65 66 
78 66 67 
79 67 68 
80 68 7 
2 13 2 90
81 70 77 89 
82 85 71 90 
83 77 70 97 
84 71 85 98 
85 73 84 94 
86 84 69 94 
87 69 84 93 
88 84 73 95 
89 91 69 96 
90 69 93 96 
91 77 76 89 
92 74 85 90 
93 88 83 97 
94 82 87 98 
95 87 82 95 
96 83 88 96 
97 70 88 97 
98 87 71 98 
99 16 72 86 
100 78 79 80 
101 72 78 86 
102 80 79 81 
103 17 18 76 
104 78 80 85 
105 78 85 86 
106 81 79 83 
107 15 16 86 
108 82 81 84 
109 20 75 88 
110 72 77 78 
111 85 74 86 
112 80 81 82 
113 10 11 87 
114 11 12 71 
115 11 71 87 
116 72 76 77 
117 14 15 74 
118 74 15 86 
119 16 17 72 
120 21 20 88 
121 22 21 70 
122 25 24 73 
123 27 26 69 
124 78 77 79 
125 20 19 75 
126 72 17 76 
127 70 21 88 
128 88 75 96 
129 12 13 90 
130 23 22 89 
131 28 27 91 
132 9 10 92 
133 92 87 95 
134 69 26 94 
135 84 81 93 
136 25 73 94 
137 22 70 89 
138 71 12 90 
139 27 69 91 
140 10 87 92 
141 79 77 97 
142 85 80 98 
143 18 3 99 
144 3 23 99 
145 24 2 101 
146 4 28 100 
147 13 1 102 
148 2 9 101 
149 19 4 100 
150 1 14 102 
151 26 25 94 
152 81 83 93 
153 75 91 96 
154 82 84 95 
155 73 92 95 
156 83 79 97 
157 80 82 98 
158 9 92 101 
159 28 91 100 
160 90 13 102 
161 23 89 99 
162 76 18 99 
163 75 19 100 
164 73 24 101 
165 14 74 102 
166 93 83 96 
167 91 75 100 
168 74 90 102 
169 89 76 99 
170 92 73 101 
2 14 2 90
171 103 123 111 
172 119 124 104 
173 111 131 103 
174 104 132 119 
175 107 128 118 
176 118 128 105 
177 105 127 118 
178 118 129 107 
179 125 130 105 
180 105 130 127 
181 111 123 110 
182 108 124 119 
183 122 131 117 
184 116 132 121 
185 121 129 116 
186 117 130 122 
187 103 131 122 
188 121 132 104 
189 36 120 106 
190 112 114 113 
191 106 120 112 
192 114 115 113 
193 37 110 38 
194 112 119 114 
195 112 120 119 
196 115 117 113 
197 35 120 36 
198 116 118 115 
199 40 122 109 
200 106 112 111 
201 119 120 108 
202 114 116 115 
203 30 121 31 
204 31 104 32 
205 31 121 104 
206 106 111 110 
207 34 108 35 
208 108 120 35 
209 36 106 37 
210 41 122 40 
211 42 103 41 
212 45 107 44 
213 47 105 46 
214 112 113 111 
215 40 109 39 
216 106 110 37 
217 103 122 41 
218 122 130 109 
219 32 124 33 
220 43 123 42 
221 48 125 47 
222 29 126 30 
223 126 129 121 
224 105 128 46 
225 118 127 115 
226 45 128 107 
227 42 123 103 
228 104 124 32 
229 47 125 105 
230 30 126 121 
231 113 131 111 
232 119 132 114 
233 38 133 7 
234 7 133 43 
235 44 135 6 
236 8 134 48 
237 33 136 5 
238 6 135 29 
239 39 134 8 
240 5 136 34 
241 46 128 45 
242 115 127 117 
243 109 130 125 
244 116 129 118 
245 107 129 126 
246 117 131 113 
247 114 132 116 
248 29 135 126 
249 48 134 125 
250 124 136 33 
251 43 133 123 
252 110 133 38 
253 107 135 44 
254 109 134 39 
255 34 136 108 
256 127 130 117 
257 125 134 109 
258 108 136 124 
259 123 133 110 
260 126 135 107 
2 15 2 90
261 140 145 157 
262 156 139 159 
263 145 140 165 
264 139 156 166 
265 161 160 163 
266 152 161 163 
267 152 138 161 
268 138 152 162 
269 158 138 164 
270 138 162 164 
271 145 144 157 
272 143 156 159 
273 154 150 165 
274 151 153 166 
275 153 151 163 
276 150 154 164 
277 140 154 165 
278 153 139 166 
279 143 30 155 
280 137 145 146 
281 148 147 149 
282 30 31 155 
283 29 30 143 
284 51 139 153 
285 32 33 144 
286 49 50 141 
287 51 52 139 
288 31 137 155 
289 141 50 153 
290 140 56 154 
291 151 149 152 
292 55 142 154 
293 155 146 156 
294 148 149 151 
295 146 148 156 
296 137 146 155 
297 12 11 138 
298 31 32 137 
299 50 51 153 
300 137 32 144 
301 137 144 145 
302 146 145 147 
303 149 147 150 
304 55 54 142 
305 56 55 154 
306 57 56 140 
307 143 155 156 
308 146 147 148 
309 141 153 163 
310 154 142 164 
311 58 57 157 
312 52 53 159 
313 13 12 158 
314 152 149 162 
315 138 11 161 
316 57 140 157 
317 139 52 159 
318 12 138 158 
319 10 9 160 
320 147 145 165 
321 156 148 166 
322 33 5 167 
323 5 58 167 
324 53 6 169 
325 1 13 168 
326 54 1 168 
327 6 29 169 
328 10 160 161 
329 9 2 170 
330 2 49 170 
331 11 10 161 
332 149 150 162 
333 160 141 163 
334 142 158 164 
335 151 152 163 
336 150 147 165 
337 148 151 166 
338 13 158 168 
339 159 53 169 
340 58 157 167 
341 49 141 170 
342 29 143 169 
343 142 54 168 
344 144 33 167 
345 162 150 164 
346 158 142 168 
347 143 159 169 
348 157 144 167 
349 141 160 170 
350 160 9 170 
2 16 2 90
351 174 191 179 
352 187 193 172 
353 179 199 174 
354 172 200 187 
355 196 197 194 
356 186 197 196 
357 171 195 186 
358 186 196 171 
359 192 198 171 
360 171 198 195 
361 179 191 178 
362 177 193 187 
363 189 199 184 
364 185 200 188 
365 188 197 185 
366 184 198 189 
367 174 199 189 
368 188 200 172 
369 173 180 179 
370 187 190 177 
371 180 190 187 
372 173 190 180 
373 39 177 40 
374 61 188 172 
375 42 178 43 
376 59 175 60 
377 177 190 40 
378 61 172 62 
379 182 183 181 
380 175 188 60 
381 180 181 179 
382 180 187 182 
383 182 185 183 
384 65 189 176 
385 174 189 66 
386 180 182 181 
387 22 171 21 
388 40 190 41 
389 41 173 42 
390 60 188 61 
391 173 178 42 
392 173 179 178 
393 65 176 64 
394 66 189 65 
395 67 174 66 
396 185 186 183 
397 41 190 173 
398 183 184 181 
399 175 197 188 
400 189 198 176 
401 68 191 67 
402 62 193 63 
403 23 192 22 
404 186 195 183 
405 171 196 21 
406 67 191 174 
407 172 193 62 
408 22 192 171 
409 20 194 19 
410 181 199 179 
411 187 200 182 
412 43 201 7 
413 7 201 68 
414 63 203 8 
415 3 202 23 
416 64 202 3 
417 8 203 39 
418 20 196 194 
419 19 204 4 
420 4 204 59 
421 183 195 184 
422 21 196 20 
423 194 197 175 
424 176 198 192 
425 185 197 186 
426 184 199 181 
427 182 200 185 
428 23 202 192 
429 193 203 63 
430 68 201 191 
431 59 204 175 
432 39 203 177 
433 176 202 64 
434 178 201 43 
435 195 198 184 
436 192 202 176 
437 177 203 193 
438 191 201 178 
439 175 204 194 
440 194 204 19 
2 17 2 90
441 213 207 225 
442 205 224 227 
443 207 213 233 
444 224 205 234 
445 228 229 231 
446 229 220 231 
447 206 220 229 
448 220 206 230 
449 206 226 232 
450 230 206 232 
451 212 213 225 
452 224 210 227 
453 218 221 233 
454 223 219 234 
455 219 223 231 
456 221 218 232 
457 221 207 233 
458 205 223 234 
459 214 208 222 
460 48 47 212 
461 213 208 214 
462 214 222 224 
463 46 45 222 
464 51 50 223 
465 212 208 213 
466 215 217 218 
467 61 62 207 
468 61 207 221 
469 205 51 223 
470 59 60 211 
471 217 216 219 
472 50 49 209 
473 215 214 216 
474 26 27 206 
475 45 44 210 
476 47 46 208 
477 50 209 223 
478 52 51 205 
479 222 210 224 
480 217 219 220 
481 208 46 222 
482 47 208 212 
483 213 214 215 
484 215 216 217 
485 211 60 221 
486 45 210 222 
487 216 214 224 
488 60 61 221 
489 223 209 231 
490 211 221 232 
491 27 28 226 
492 53 52 227 
493 62 63 225 
494 26 206 229 
495 217 220 230 
496 206 27 226 
497 52 205 227 
498 207 62 225 
499 24 25 228 
500 213 215 233 
501 216 224 234 
502 8 48 235 
503 63 8 235 
504 28 4 237 
505 6 53 236 
506 44 6 236 
507 4 59 237 
508 228 25 229 
509 2 24 238 
510 49 2 238 
511 25 26 229 
512 218 217 230 
513 209 228 231 
514 226 211 232 
515 220 219 231 
516 215 218 233 
517 219 216 234 
518 226 28 237 
519 53 227 236 
520 225 63 235 
521 209 49 238 
522 48 212 235 
523 59 211 237 
524 210 44 236 
525 218 230 232 
526 211 226 237 
527 227 210 236 
528 212 225 235 
529 228 209 238 
530 24 228 238 
2 18 2 90
531 247 259 241 
532 239 261 258 
533 241 267 247 
534 258 268 239 
535 240 263 254 
536 254 264 240 
537 254 263 243 
538 243 265 254 
539 240 266 260 
540 264 266 240 
541 246 259 247 
542 258 261 244 
543 253 267 255 
544 257 268 252 
545 252 265 257 
546 255 266 253 
547 255 267 241 
548 239 268 257 
549 248 256 242 
550 38 246 37 
551 247 248 242 
552 248 258 256 
553 36 256 35 
554 246 247 242 
555 56 257 55 
556 249 253 251 
557 66 241 67 
558 66 255 241 
559 64 245 65 
560 239 257 56 
561 249 250 248 
562 251 254 252 
563 14 243 15 
564 16 240 17 
565 35 244 34 
566 37 242 36 
567 57 239 56 
568 256 258 244 
569 242 256 36 
570 37 246 242 
571 247 249 248 
572 251 252 250 
573 249 251 250 
574 245 255 65 
575 35 256 244 
576 250 258 248 
577 65 255 66 
578 245 266 255 
579 17 260 18 
580 58 261 57 
581 67 259 68 
582 55 262 54 
583 257 265 262 
584 243 263 15 
585 16 263 240 
586 251 264 254 
587 240 260 17 
588 57 261 239 
589 241 259 67 
590 257 262 55 
591 247 267 249 
592 250 268 258 
593 7 269 38 
594 68 269 7 
595 54 270 1 
596 18 272 3 
597 5 271 58 
598 1 270 14 
599 34 271 5 
600 3 272 64 
601 15 263 16 
602 253 264 251 
603 260 266 245 
604 254 265 252 
605 262 265 243 
606 249 267 253 
607 252 268 250 
608 260 272 18 
609 58 271 261 
610 262 270 54 
611 259 269 68 
612 38 269 246 
613 64 272 245 
614 14 270 243 
615 244 271 34 
616 253 266 264 
617 245 272 260 
618 261 271 244 
619 246 269 259 
620 243 270 262 
$EndElements
  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值