Skip to content

Commit

Permalink
Merge pull request #477 from EOMYS-Public/ImportMeshUnv
Browse files Browse the repository at this point in the history
Import unv mesh
  • Loading branch information
BonneelP authored Jan 25, 2022
2 parents 8267445 + 125878a commit a8e134d
Show file tree
Hide file tree
Showing 3 changed files with 240 additions and 1 deletion.
212 changes: 212 additions & 0 deletions Tests/Data/Mesh/mesh_test_quad_set82.unv
Original file line number Diff line number Diff line change
@@ -0,0 +1,212 @@
-1
15
7 1 0 1 -5.16190E+01 5.16190E+01 5.00000E+01
6 1 0 1 -3.65000E+01 6.32200E+01 5.00000E+01
5 1 0 1 -1.88940E+01 7.05130E+01 5.00000E+01
4 1 0 1 5.09760E-15 8.32500E+01 5.00000E+01
3 1 0 1 1.88940E+01 7.05130E+01 5.00000E+01
2 1 0 1 3.65000E+01 6.32200E+01 5.00000E+01
1 1 0 1 5.16190E+01 5.16190E+01 5.00000E+01
24 1 0 1 6.32200E+01 3.65000E+01 5.00000E+01
23 1 0 1 7.05130E+01 1.88940E+01 5.00000E+01
22 1 0 1 8.32500E+01 0.00000E+00 5.00000E+01
21 1 0 1 7.05130E+01 -1.88940E+01 5.00000E+01
20 1 0 1 6.32200E+01 -3.65000E+01 5.00000E+01
19 1 0 1 5.16190E+01 -5.16190E+01 5.00000E+01
18 1 0 1 3.65000E+01 -6.32200E+01 5.00000E+01
17 1 0 1 1.88940E+01 -7.05130E+01 5.00000E+01
16 1 0 1 5.09760E-15 -8.32500E+01 5.00000E+01
15 1 0 1 -1.88940E+01 -7.05130E+01 5.00000E+01
14 1 0 1 -3.65000E+01 -6.32200E+01 5.00000E+01
13 1 0 1 -5.16190E+01 -5.16190E+01 5.00000E+01
12 1 0 1 -6.32200E+01 -3.65000E+01 5.00000E+01
11 1 0 1 -7.05130E+01 -1.88940E+01 5.00000E+01
10 1 0 1 -8.32500E+01 -1.01950E-14 5.00000E+01
9 1 0 1 -7.05130E+01 1.88940E+01 5.00000E+01
8 1 0 1 -6.32200E+01 3.65000E+01 5.00000E+01
31 1 0 1 -5.16190E+01 5.16190E+01 1.70000E+01
30 1 0 1 -3.65000E+01 6.32200E+01 1.70000E+01
29 1 0 1 -1.88940E+01 7.05130E+01 1.70000E+01
28 1 0 1 5.09760E-15 8.32500E+01 1.70000E+01
27 1 0 1 1.88940E+01 7.05130E+01 1.70000E+01
26 1 0 1 3.65000E+01 6.32200E+01 1.70000E+01
25 1 0 1 5.16190E+01 5.16190E+01 1.70000E+01
48 1 0 1 6.32200E+01 3.65000E+01 1.70000E+01
47 1 0 1 7.05130E+01 1.88940E+01 1.70000E+01
46 1 0 1 8.32500E+01 0.00000E+00 1.70000E+01
45 1 0 1 7.05130E+01 -1.88940E+01 1.70000E+01
44 1 0 1 6.32200E+01 -3.65000E+01 1.70000E+01
43 1 0 1 5.16190E+01 -5.16190E+01 1.70000E+01
42 1 0 1 3.65000E+01 -6.32200E+01 1.70000E+01
41 1 0 1 1.88940E+01 -7.05130E+01 1.70000E+01
40 1 0 1 5.09760E-15 -8.32500E+01 1.70000E+01
39 1 0 1 -1.88940E+01 -7.05130E+01 1.70000E+01
38 1 0 1 -3.65000E+01 -6.32200E+01 1.70000E+01
37 1 0 1 -5.16190E+01 -5.16190E+01 1.70000E+01
36 1 0 1 -6.32200E+01 -3.65000E+01 1.70000E+01
35 1 0 1 -7.05130E+01 -1.88940E+01 1.70000E+01
34 1 0 1 -8.32500E+01 -1.01950E-14 1.70000E+01
33 1 0 1 -7.05130E+01 1.88940E+01 1.70000E+01
32 1 0 1 -6.32200E+01 3.65000E+01 1.70000E+01
55 1 0 1 -5.16190E+01 5.16190E+01 -1.70000E+01
54 1 0 1 -3.65000E+01 6.32200E+01 -1.70000E+01
53 1 0 1 -1.88940E+01 7.05130E+01 -1.70000E+01
52 1 0 1 5.09760E-15 8.32500E+01 -1.70000E+01
51 1 0 1 1.88940E+01 7.05130E+01 -1.70000E+01
50 1 0 1 3.65000E+01 6.32200E+01 -1.70000E+01
49 1 0 1 5.16190E+01 5.16190E+01 -1.70000E+01
72 1 0 1 6.32200E+01 3.65000E+01 -1.70000E+01
71 1 0 1 7.05130E+01 1.88940E+01 -1.70000E+01
70 1 0 1 8.32500E+01 0.00000E+00 -1.70000E+01
69 1 0 1 7.05130E+01 -1.88940E+01 -1.70000E+01
68 1 0 1 6.32200E+01 -3.65000E+01 -1.70000E+01
67 1 0 1 5.16190E+01 -5.16190E+01 -1.70000E+01
66 1 0 1 3.65000E+01 -6.32200E+01 -1.70000E+01
65 1 0 1 1.88940E+01 -7.05130E+01 -1.70000E+01
64 1 0 1 5.09760E-15 -8.32500E+01 -1.70000E+01
63 1 0 1 -1.88940E+01 -7.05130E+01 -1.70000E+01
62 1 0 1 -3.65000E+01 -6.32200E+01 -1.70000E+01
61 1 0 1 -5.16190E+01 -5.16190E+01 -1.70000E+01
60 1 0 1 -6.32200E+01 -3.65000E+01 -1.70000E+01
59 1 0 1 -7.05130E+01 -1.88940E+01 -1.70000E+01
58 1 0 1 -8.32500E+01 -1.01950E-14 -1.70000E+01
57 1 0 1 -7.05130E+01 1.88940E+01 -1.70000E+01
56 1 0 1 -6.32200E+01 3.65000E+01 -1.70000E+01
79 1 0 1 -5.16190E+01 5.16190E+01 -5.00000E+01
78 1 0 1 -3.65000E+01 6.32200E+01 -5.00000E+01
77 1 0 1 -1.88940E+01 7.05130E+01 -5.00000E+01
76 1 0 1 5.09760E-15 8.32500E+01 -5.00000E+01
75 1 0 1 1.88940E+01 7.05130E+01 -5.00000E+01
74 1 0 1 3.65000E+01 6.32200E+01 -5.00000E+01
73 1 0 1 5.16190E+01 5.16190E+01 -5.00000E+01
96 1 0 1 6.32200E+01 3.65000E+01 -5.00000E+01
95 1 0 1 7.05130E+01 1.88940E+01 -5.00000E+01
94 1 0 1 8.32500E+01 0.00000E+00 -5.00000E+01
93 1 0 1 7.05130E+01 -1.88940E+01 -5.00000E+01
92 1 0 1 6.32200E+01 -3.65000E+01 -5.00000E+01
91 1 0 1 5.16190E+01 -5.16190E+01 -5.00000E+01
90 1 0 1 3.65000E+01 -6.32200E+01 -5.00000E+01
89 1 0 1 1.88940E+01 -7.05130E+01 -5.00000E+01
88 1 0 1 5.09760E-15 -8.32500E+01 -5.00000E+01
87 1 0 1 -1.88940E+01 -7.05130E+01 -5.00000E+01
86 1 0 1 -3.65000E+01 -6.32200E+01 -5.00000E+01
85 1 0 1 -5.16190E+01 -5.16190E+01 -5.00000E+01
84 1 0 1 -6.32200E+01 -3.65000E+01 -5.00000E+01
83 1 0 1 -7.05130E+01 -1.88940E+01 -5.00000E+01
82 1 0 1 -8.32500E+01 -1.01950E-14 -5.00000E+01
81 1 0 1 -7.05130E+01 1.88940E+01 -5.00000E+01
80 1 0 1 -6.32200E+01 3.65000E+01 -5.00000E+01
-1
-1
82
2 864 0
Stator
1 25 0 25 48 0 48 24
0 24 1 0 25 49 0 49
72 0 72 48 0 48 25 0
49 73 0 73 96 0 96 72
0 72 49 0 24 48 0 48
47 0 47 23 0 23 24 0
48 72 0 72 71 0 71 47
0 47 48 0 72 96 0 96
95 0 95 71 0 71 72 0
23 47 0 47 46 0 46 22
0 22 23 0 47 71 0 71
70 0 70 46 0 46 47 0
71 95 0 95 94 0 94 70
0 70 71 0 22 46 0 46
45 0 45 21 0 21 22 0
46 70 0 70 69 0 69 45
0 45 46 0 70 94 0 94
93 0 93 69 0 69 70 0
21 45 0 45 44 0 44 20
0 20 21 0 45 69 0 69
68 0 68 44 0 44 45 0
69 93 0 93 92 0 92 68
0 68 69 0 20 44 0 44
43 0 43 19 0 19 20 0
44 68 0 68 67 0 67 43
0 43 44 0 68 92 0 92
91 0 91 67 0 67 68 0
19 43 0 43 42 0 42 18
0 18 19 0 43 67 0 67
66 0 66 42 0 42 43 0
67 91 0 91 90 0 90 66
0 66 67 0 18 42 0 42
41 0 41 17 0 17 18 0
42 66 0 66 65 0 65 41
0 41 42 0 66 90 0 90
89 0 89 65 0 65 66 0
17 41 0 41 40 0 40 16
0 16 17 0 41 65 0 65
64 0 64 40 0 40 41 0
65 89 0 89 88 0 88 64
0 64 65 0 16 40 0 40
39 0 39 15 0 15 16 0
40 64 0 64 63 0 63 39
0 39 40 0 64 88 0 88
87 0 87 63 0 63 64 0
15 39 0 39 38 0 38 14
0 14 15 0 39 63 0 63
62 0 62 38 0 38 39 0
63 87 0 87 86 0 86 62
0 62 63 0 14 38 0 38
37 0 37 13 0 13 14 0
38 62 0 62 61 0 61 37
0 37 38 0 62 86 0 86
85 0 85 61 0 61 62 0
13 37 0 37 36 0 36 12
0 12 13 0 37 61 0 61
60 0 60 36 0 36 37 0
61 85 0 85 84 0 84 60
0 60 61 0 12 36 0 36
35 0 35 11 0 11 12 0
36 60 0 60 59 0 59 35
0 35 36 0 60 84 0 84
83 0 83 59 0 59 60 0
11 35 0 35 34 0 34 10
0 10 11 0 35 59 0 59
58 0 58 34 0 34 35 0
59 83 0 83 82 0 82 58
0 58 59 0 10 34 0 34
33 0 33 9 0 9 10 0
34 58 0 58 57 0 57 33
0 33 34 0 58 82 0 82
81 0 81 57 0 57 58 0
9 33 0 33 32 0 32 8
0 8 9 0 33 57 0 57
56 0 56 32 0 32 33 0
57 81 0 81 80 0 80 56
0 56 57 0 8 32 0 32
31 0 31 7 0 7 8 0
32 56 0 56 55 0 55 31
0 31 32 0 56 80 0 80
79 0 79 55 0 55 56 0
7 31 0 31 30 0 30 6
0 6 7 0 31 55 0 55
54 0 54 30 0 30 31 0
55 79 0 79 78 0 78 54
0 54 55 0 6 30 0 30
29 0 29 5 0 5 6 0
30 54 0 54 53 0 53 29
0 29 30 0 54 78 0 78
77 0 77 53 0 53 54 0
5 29 0 29 28 0 28 4
0 4 5 0 29 53 0 53
52 0 52 28 0 28 29 0
53 77 0 77 76 0 76 52
0 52 53 0 4 28 0 28
27 0 27 3 0 3 4 0
28 52 0 52 51 0 51 27
0 27 28 0 52 76 0 76
75 0 75 51 0 51 52 0
3 27 0 27 26 0 26 2
0 2 3 0 27 51 0 51
50 0 50 26 0 26 27 0
51 75 0 75 74 0 74 50
0 50 51 0 2 26 0 26
25 0 25 1 0 1 2 0
26 50 0 50 49 0 49 25
0 25 26 0 50 74 0 74
73 0 73 49 0 49 50 0
-1
3 changes: 3 additions & 0 deletions Tests/Methods/Import/test_import_mesh_unv.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@
"element_types": ["triangle", "quad"],
"n_elements": [3, 1],
},
{
"path": "Data\Mesh\mesh_test_quad_set82.unv",
},
]


Expand Down
26 changes: 25 additions & 1 deletion pyleecan/Methods/Import/ImportMeshUnv/get_data.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-

from numpy import array as np_array, where, vstack, hstack

import numpy as np
import pyuff


Expand Down Expand Up @@ -49,4 +49,28 @@ def get_data(self):
(elt_dict["element_nums"], np_array(elt_dict["nodes_nums"]).T)
).T

elif dataset["type"] == 82:
# Store connectivities
elements = dict()
nodes_nums = dataset["nodes"]
ind = np.where(nodes_nums == 0.0) ##identify zeros
nodes_nums = np.delete(nodes_nums, ind) # delete zeros
indices = list() ##indices of duplicated node numbers
for i in range(1, len(nodes_nums)):
if nodes_nums[i] == nodes_nums[i - 1]:
indices.append(i)
nodes_nums = np.delete(nodes_nums, indices)

indices_node1 = np.arange(
4, len(nodes_nums), 5
) ##indices of first node of previous element

nodes_nums = np.delete(nodes_nums, indices_node1)

##assuming quad elements 4 nodes per element
n = int(len(nodes_nums) / 4)
nodes_nums = np.reshape(nodes_nums, (n, 4))
element_nums = np.arange(len(nodes_nums))
elements["quad"] = vstack((element_nums, nodes_nums.T)).T

return nodes, elements

0 comments on commit a8e134d

Please sign in to comment.