Skip to content

Commit 6e26900

Browse files
committed
Implement MshConnectivity for Hex8 and Hex27 and add tests
1 parent d62e21e commit 6e26900

File tree

6 files changed

+1506
-4
lines changed

6 files changed

+1506
-4
lines changed

assets/meshes/cube_hex27_8.msh

Lines changed: 273 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,273 @@
1+
$MeshFormat
2+
4.1 0 8
3+
$EndMeshFormat
4+
$Entities
5+
0 0 0 1
6+
0 0 0 0 1 1 1 0 0
7+
$EndEntities
8+
$Nodes
9+
1 125 1 125
10+
3 0 0 125
11+
1
12+
2
13+
3
14+
4
15+
5
16+
6
17+
7
18+
8
19+
9
20+
10
21+
11
22+
12
23+
13
24+
14
25+
15
26+
16
27+
17
28+
18
29+
19
30+
20
31+
21
32+
22
33+
23
34+
24
35+
25
36+
26
37+
27
38+
28
39+
29
40+
30
41+
31
42+
32
43+
33
44+
34
45+
35
46+
36
47+
37
48+
38
49+
39
50+
40
51+
41
52+
42
53+
43
54+
44
55+
45
56+
46
57+
47
58+
48
59+
49
60+
50
61+
51
62+
52
63+
53
64+
54
65+
55
66+
56
67+
57
68+
58
69+
59
70+
60
71+
61
72+
62
73+
63
74+
64
75+
65
76+
66
77+
67
78+
68
79+
69
80+
70
81+
71
82+
72
83+
73
84+
74
85+
75
86+
76
87+
77
88+
78
89+
79
90+
80
91+
81
92+
82
93+
83
94+
84
95+
85
96+
86
97+
87
98+
88
99+
89
100+
90
101+
91
102+
92
103+
93
104+
94
105+
95
106+
96
107+
97
108+
98
109+
99
110+
100
111+
101
112+
102
113+
103
114+
104
115+
105
116+
106
117+
107
118+
108
119+
109
120+
110
121+
111
122+
112
123+
113
124+
114
125+
115
126+
116
127+
117
128+
118
129+
119
130+
120
131+
121
132+
122
133+
123
134+
124
135+
125
136+
0 0 0
137+
0.5 0 0
138+
1 0 0
139+
0 0.5 0
140+
0.5 0.5 0
141+
1 0.5 0
142+
0 1 0
143+
0.5 1 0
144+
1 1 0
145+
0 0 0.5
146+
0.5 0 0.5
147+
1 0 0.5
148+
0 0.5 0.5
149+
0.5 0.5 0.5
150+
1 0.5 0.5
151+
0 1 0.5
152+
0.5 1 0.5
153+
1 1 0.5
154+
0 0 1
155+
0.5 0 1
156+
1 0 1
157+
0 0.5 1
158+
0.5 0.5 1
159+
1 0.5 1
160+
0 1 1
161+
0.5 1 1
162+
1 1 1
163+
0.25 0 0
164+
0 0.25 0
165+
0 0 0.25
166+
0.5 0.25 0
167+
0.5 0 0.25
168+
0.25 0.5 0
169+
0.5 0.5 0.25
170+
0 0.5 0.25
171+
0.25 0 0.5
172+
0 0.25 0.5
173+
0.5 0.25 0.5
174+
0.25 0.5 0.5
175+
0.25 0.25 0
176+
0.25 0 0.25
177+
0 0.25 0.25
178+
0.5 0.25 0.25
179+
0.25 0.5 0.25
180+
0.25 0.25 0.5
181+
0.25 0.25 0.25
182+
0.75 0 0
183+
1 0.25 0
184+
1 0 0.25
185+
0.75 0.5 0
186+
1 0.5 0.25
187+
0.75 0 0.5
188+
1 0.25 0.5
189+
0.75 0.5 0.5
190+
0.75 0.25 0
191+
0.75 0 0.25
192+
1 0.25 0.25
193+
0.75 0.5 0.25
194+
0.75 0.25 0.5
195+
0.75 0.25 0.25
196+
0 0.75 0
197+
0.5 0.75 0
198+
0.25 1 0
199+
0.5 1 0.25
200+
0 1 0.25
201+
0 0.75 0.5
202+
0.5 0.75 0.5
203+
0.25 1 0.5
204+
0.25 0.75 0
205+
0 0.75 0.25
206+
0.5 0.75 0.25
207+
0.25 1 0.25
208+
0.25 0.75 0.5
209+
0.25 0.75 0.25
210+
1 0.75 0
211+
0.75 1 0
212+
1 1 0.25
213+
1 0.75 0.5
214+
0.75 1 0.5
215+
0.75 0.75 0
216+
1 0.75 0.25
217+
0.75 1 0.25
218+
0.75 0.75 0.5
219+
0.75 0.75 0.25
220+
0 0 0.75
221+
0.5 0 0.75
222+
0.5 0.5 0.75
223+
0 0.5 0.75
224+
0.25 0 1
225+
0 0.25 1
226+
0.5 0.25 1
227+
0.25 0.5 1
228+
0.25 0 0.75
229+
0 0.25 0.75
230+
0.5 0.25 0.75
231+
0.25 0.5 0.75
232+
0.25 0.25 1
233+
0.25 0.25 0.75
234+
1 0 0.75
235+
1 0.5 0.75
236+
0.75 0 1
237+
1 0.25 1
238+
0.75 0.5 1
239+
0.75 0 0.75
240+
1 0.25 0.75
241+
0.75 0.5 0.75
242+
0.75 0.25 1
243+
0.75 0.25 0.75
244+
0.5 1 0.75
245+
0 1 0.75
246+
0 0.75 1
247+
0.5 0.75 1
248+
0.25 1 1
249+
0 0.75 0.75
250+
0.5 0.75 0.75
251+
0.25 1 0.75
252+
0.25 0.75 1
253+
0.25 0.75 0.75
254+
1 1 0.75
255+
1 0.75 1
256+
0.75 1 1
257+
1 0.75 0.75
258+
0.75 1 0.75
259+
0.75 0.75 1
260+
0.75 0.75 0.75
261+
$EndNodes
262+
$Elements
263+
1 8 1 8
264+
3 0 12 8
265+
1 1 2 5 4 10 11 14 13 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
266+
2 2 3 6 5 11 12 15 14 47 31 32 48 49 50 51 34 52 38 53 54 55 56 43 57 58 59 60
267+
3 4 5 8 7 13 14 17 16 33 61 35 62 34 63 64 65 39 66 67 68 69 44 70 71 72 73 74
268+
4 5 6 9 8 14 15 18 17 50 62 34 75 51 76 77 64 54 67 78 79 80 58 71 81 82 83 84
269+
5 10 11 14 13 19 20 23 22 36 37 85 38 86 39 87 88 89 90 91 92 45 93 94 95 96 97 98
270+
6 11 12 15 14 20 21 24 23 52 38 86 53 99 54 100 87 101 91 102 103 59 104 95 105 106 107 108
271+
7 13 14 17 16 22 23 26 25 39 66 88 67 87 68 109 110 92 111 112 113 73 96 114 115 116 117 118
272+
8 14 15 18 17 23 24 27 26 54 67 87 78 100 79 119 109 103 112 120 121 83 106 115 122 123 124 125
273+
$EndElements

assets/meshes/cube_hex8_8.msh

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
$MeshFormat
2+
4.1 0 8
3+
$EndMeshFormat
4+
$Entities
5+
0 0 0 1
6+
0 0 0 0 1 1 1 0 0
7+
$EndEntities
8+
$Nodes
9+
1 27 1 27
10+
3 0 0 27
11+
1
12+
2
13+
3
14+
4
15+
5
16+
6
17+
7
18+
8
19+
9
20+
10
21+
11
22+
12
23+
13
24+
14
25+
15
26+
16
27+
17
28+
18
29+
19
30+
20
31+
21
32+
22
33+
23
34+
24
35+
25
36+
26
37+
27
38+
0 0 0
39+
0.5 0 0
40+
1 0 0
41+
0 0.5 0
42+
0.5 0.5 0
43+
1 0.5 0
44+
0 1 0
45+
0.5 1 0
46+
1 1 0
47+
0 0 0.5
48+
0.5 0 0.5
49+
1 0 0.5
50+
0 0.5 0.5
51+
0.5 0.5 0.5
52+
1 0.5 0.5
53+
0 1 0.5
54+
0.5 1 0.5
55+
1 1 0.5
56+
0 0 1
57+
0.5 0 1
58+
1 0 1
59+
0 0.5 1
60+
0.5 0.5 1
61+
1 0.5 1
62+
0 1 1
63+
0.5 1 1
64+
1 1 1
65+
$EndNodes
66+
$Elements
67+
1 8 1 8
68+
3 0 5 8
69+
1 1 2 5 4 10 11 14 13
70+
2 2 3 6 5 11 12 15 14
71+
3 4 5 8 7 13 14 17 16
72+
4 5 6 9 8 14 15 18 17
73+
5 10 11 14 13 19 20 23 22
74+
6 11 12 15 14 20 21 24 23
75+
7 13 14 17 16 22 23 26 25
76+
8 14 15 18 17 23 24 27 26
77+
$EndElements

src/io/msh.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
//! ```
1919
2020
use crate::connectivity::{
21-
Quad4d2Connectivity, Quad9d2Connectivity, Tet10Connectivity, Tet4Connectivity, Tri3d2Connectivity,
22-
Tri3d3Connectivity, Tri6d2Connectivity,
21+
Hex27Connectivity, Hex8Connectivity, Quad4d2Connectivity, Quad9d2Connectivity, Tet10Connectivity, Tet4Connectivity,
22+
Tri3d2Connectivity, Tri3d3Connectivity, Tri6d2Connectivity,
2323
};
2424
use crate::mesh::Mesh;
2525
use eyre::{eyre, Context};
@@ -276,6 +276,8 @@ impl_msh_connectivity!(Quad4d2Connectivity, Qua4, num_nodes = 4);
276276
impl_msh_connectivity!(Quad9d2Connectivity, Qua9, num_nodes = 9);
277277
impl_msh_connectivity!(Tet4Connectivity, Tet4, num_nodes = 4);
278278
impl_msh_connectivity!(Tet10Connectivity, Tet10, num_nodes = 10);
279+
impl_msh_connectivity!(Hex8Connectivity, Hex8, num_nodes = 8);
280+
impl_msh_connectivity!(Hex27Connectivity, Hex27, num_nodes = 27);
279281

280282
// The following connectivities do not implement ElementConnectivity yet
281283
//impl_msh_connectivity!(Tri6d3Connectivity, Tri6, num_nodes = 6);

0 commit comments

Comments
 (0)