想象一个简单的有限元方法中的三角形基础网格,具有未知数量的元素(因用户而异)。如何将连接矩阵编码为自动生成?
三角形单元中有限元法中的连通性矩阵
计算科学
有限元
计算几何
网格生成
2021-12-06 16:17:36
1个回答
一个适当生成的有限元网格既包括网格顶点,也包括由这些顶点组成的元素——因此,一个连通矩阵。
例如,请参阅基本GMSH为中心的 2D 1 平方米。
Square.geo:
cl = 0.5;
Point(1) = {0.5,0.5,0.,cl};
Point(2) = {-0.5,0.5,0.,cl};
Point(3) = {-0.5,-0.5,0.,cl};
Point(4) = {0.5,-0.5,0.,cl};
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,1};
Line Loop(1) = {1,2,3,4};
Surface(1) = {1};
Physical Surface(1) = {1};
此几何描述导致以下网格(此示例中的网格密度由特征长度控制cl)。请注意,网格文件具有以下部分:
- 头
$MeshFormat文件(网格文件版本和其他辅助信息) $Nodes(id, , , )中的网格元素顶点$Elements(id, 4 个对本次讨论意义不大的数字,vert1, vert2, vert3) 中的三角形。这几乎就是您正在寻找的连接矩阵。
广场.msh:
$MeshFormat
2.2 0 8
$EndMeshFormat
$Nodes
13
1 0.5 0.5 0
2 -0.5 0.5 0
3 -0.5 -0.5 0
4 0.5 -0.5 0
5 1.376398994779038e-12 0.5 0
6 -0.5 1.376398994779038e-12 0
7 -1.376398994779038e-12 -0.5 0
8 0.5 -1.376398994779038e-12 0
9 0 0 0
10 -0.2499999999996558 0.2500000000003442 0
11 0.2500000000003441 0.2499999999996558 0
12 -0.2500000000003442 -0.2499999999996558 0
13 0.2499999999996559 -0.2500000000003442 0
$EndNodes
$Elements
16
1 2 2 1 1 10 5 2
2 2 2 1 1 10 6 9
3 2 2 1 1 6 10 2
4 2 2 1 1 5 10 9
5 2 2 1 1 5 11 1
6 2 2 1 1 8 11 9
7 2 2 1 1 11 8 1
8 2 2 1 1 11 5 9
9 2 2 1 1 12 6 3
10 2 2 1 1 12 7 9
11 2 2 1 1 7 12 3
12 2 2 1 1 6 12 9
13 2 2 1 1 13 7 4
14 2 2 1 1 13 8 9
15 2 2 1 1 8 13 4
16 2 2 1 1 7 13 9
$EndElements
因此,适当的有限元生成实用程序(此处的 GMSH 只是一个示例,还有许多其他非常好的替代方案)为您提供连接矩阵;否则,您的网格无论如何都没有正确定义。
现在,如何自己编写网格生成软件的过程(你不应该这样做,除非你有非常非常好的理由)不在本次讨论的主题范围内。
