MFEM库中NURBS网格文件格式记录

前言,这里有关于有限元开源软件包的介绍。我最近打算学习使用 MFEM 中提供的 IGA 做一些工作,官方文档关于 NURBS 网格文件的介绍不是特别细致,我在这里做一些理解补充

9-30 打开 MOOSE 官网一看,居然也支持 IGA 了!

Straight meshes

MFEM mesh v1.0 

# Space dimension: 2 or 3
dimension 
<dimension> 

# Mesh elements, e.g. tetrahedrons (4)
elements 
<number of elements> 
<element attribute> <geometry type> <vertex index 1> ... <vertex index m> ... 

# Mesh faces/edges on the boundary, e.g. triangles (2)
boundary 
<number of boundary elements> 
<boundary element attribute> <geometry type> <vertex index 1> ... <vertex index m> ... 

# Vertex coordinates
vertices 
<number of vertices> 
<vdim> 
<coordinate 1> ... <coordinate <vdim>> ...

General MFEM Mesh Format

NURBS mesh,带孔方板

示意图:

现在根据模型解析出 网格文件 的格式,注释用 # 标识

MFEM NURBS mesh v1.0

#
# MFEM Geometry Types (see mesh/geom.hpp):
#
# SEGMENT     = 1
# SQUARE      = 3
# CUBE        = 5
#

# Types of domains for integration rules and reference finite elements:
#    Geometry::POINT    - a point
#    Geometry::SEGMENT  - the interval [0,1]
#    Geometry::TRIANGLE - triangle with vertices (0,0), (1,0), (0,1)
#    Geometry::SQUARE   - the unit square (0,1)x(0,1)
#    Geometry::TETRAHEDRON - w/ vert. (0,0,0),(1,0,0),(0,1,0),(0,0,1)
#    Geometry::CUBE - the unit cube
#    Geometry::PRISM - w/ vert. (0,0,0),(1,0,0),(0,1,0),(0,0,1),(1,0,1),(0,1,1)
#    Geometry::PYRAMID - w/ vert. (0,0,0),(1,0,0),(1,1,0),(0,1,0),(0,0,1)

dimension
2

elements  # 对应 NURBS patch
4
1 3 0 1 5 4  # 1-element attribute 3-geometry type {0 1 5 4}-vertex number
1 3 1 2 6 5  # 1-element attribute 3-square        {1 2 6 5}-vertex number
1 3 2 3 7 6
1 3 3 0 4 7

boundary # NURBS 边界
8
1 1 0 1  # 1-boundary element attribute 1-geometry type {0 1}-vertex number
1 1 1 2  # 1-boundary element attribute 1-segment       {1 2}-vertex number
1 1 2 3
1 1 3 0
1 1 5 4
1 1 6 5
1 1 7 6
1 1 4 7

edges
12
0 0 1  # 0-knotvector id {0 1}-vertex number
0 4 5
1 1 2
1 5 6
2 2 3
2 6 7
3 3 0
3 7 4
4 0 4  # 4-knotvector id {0 4}-vertex number
4 1 5
4 2 6
4 3 7

vertices
8

knotvectors
5
2  3 0 0 0 1 1 1  # 2-degree 3-control point number {0 0 0 1 1 1}-knot vector
2  3 0 0 0 1 1 1
2  3 0 0 0 1 1 1
2  3 0 0 0 1 1 1
2  3 0 0 0 1 1 1

weights
1
1
1
1
1
1
1
1
1
0.707106781
1
0.707106781
1
0.707106781
1
0.707106781
1
1
1
1
0.853553391
0.853553391
0.853553391
0.853553391

FiniteElementSpace
FiniteElementCollection: NURBS2
VDim: 2
Ordering: 1

0 0
1 0
1 1
0 1
0.358578644 0.358578644
0.641421356 0.358578644
0.641421356 0.641421356
0.358578644 0.641421356
0.5 0
0.5 0.217157288
1 0.5
0.782842712 0.5
0.5 1
0.5 0.782842712
0 0.5
0.217157288 0.5
0.15 0.15
0.85 0.15
0.85 0.85
0.15 0.85
0.5  0.108578644
0.891421356 0.5
0.5 0.891421356
0.108578644 0.5

我的其他相关博文

  1. Bilinear Form and Integrators



最后更新于 2022年4月21日 --- 最初发表于 2022年4月21日
原创作者:LitBro
关于作者:知识付费,shit!
本文链接: [https://www.cnblogs.com/LitBro/p/16171722.html]
版权声明:本文采用 BY-NC-SA协议,转载或引用请注明出处!
关于后续:碍于学业不精,如有描述不当,还请见谅并非常感谢指出

posted @ 2022-04-20 20:58  LitBro  阅读(418)  评论(1编辑  收藏  举报