@@ -16,114 +16,57 @@ class ngs:
1616 class comp :
1717 "dummy class"
1818 Mesh = type (None )
19- try :
20- from numba import jit
21- numba = True
22- except : # pylint: disable=bare-except
23- jit = None
24- numba = False
2519
2620FACE_SETS_LABEL = "Face Sets"
2721CELL_SETS_LABEL = "Cell Sets"
2822EDGE_SETS_LABEL = "Edge Sets"
2923
30- if numba :
31- @jit (nopython = True , cache = True )
32- def build2DCells (coordinates , sIndicies , cell_indicies , start_end ):
33- """
34- JIT Method used to construct 2D cells
35- """
36- cStart = start_end [0 ]
37- cEnd = start_end [1 ]
38- cells = np .zeros ((cell_indicies .shape [0 ], 3 ))
39- for i in range (cStart ,cEnd ):
40- sIndex = sIndicies [i ]
41- if len (sIndex )== 3 :
42- cell = list (set (cell_indicies [i ]))
43- A = np .zeros ((2 ,2 ))
44- A [0 ,0 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[0 ]
45- A [0 ,1 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[1 ]
46- A [1 ,0 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[0 ]
47- A [1 ,1 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[1 ]
48- if np .linalg .det (A ) > 0 :
49- cells [i ] = cell
50- else :
51- cells [i ] = np .array ([cell [0 ], cell [2 ], cell [1 ]])
52- else :
53- raise RuntimeError ("We only support triangles." )
54- return cells
55-
56- @jit (nopython = True , cache = True )
57- def build3DCells (coordinates , sIndicies , cell_indicies , start_end ):
58- """
59- JIT Method used to construct 3D cells
60- """
61- cStart = start_end [0 ]
62- cEnd = start_end [1 ]
63- cells = np .zeros ((cell_indicies .shape [0 ], 4 ))
64- for i in range (cStart ,cEnd ):
65- sIndex = sIndicies [i ]
66- if len (sIndex )== 4 :
67- cell = list (set (cell_indicies [i ]))
68- A = np .zeros ((3 ,3 ))
69- A [0 ,0 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[0 ]
70- A [0 ,1 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[1 ]
71- A [0 ,2 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[2 ]
72- A [1 ,0 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[0 ]
73- A [1 ,1 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[1 ]
74- A [1 ,2 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[2 ]
75- A [2 ,0 ] = (coordinates [cell [3 ]]- coordinates [cell [2 ]])[0 ]
76- A [2 ,1 ] = (coordinates [cell [3 ]]- coordinates [cell [2 ]])[1 ]
77- A [2 ,2 ] = (coordinates [cell [3 ]]- coordinates [cell [2 ]])[2 ]
78- if np .linalg .det (A ) > 0 :
79- cells [i ] = cell
80- else :
81- cells [i ] = np .array ([cell [0 ], cell [1 ], cell [2 ], cell [2 ]])
24+ def build2DCells (coordinates , sIndicies , cell_indicies , start_end ):
25+ cStart = start_end [0 ]
26+ cEnd = start_end [1 ]
27+ cells = np .zeros ((cell_indicies .shape [0 ], 3 ))
28+ for i in range (cStart ,cEnd ):
29+ sIndex = sIndicies [i ]
30+ if len (sIndex )== 3 :
31+ cell = list (set (cell_indicies [i ]))
32+ A = np .zeros ((2 ,2 ))
33+ A [0 ,0 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[0 ]
34+ A [0 ,1 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[1 ]
35+ A [1 ,0 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[0 ]
36+ A [1 ,1 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[1 ]
37+ if np .linalg .det (A ) > 0 :
38+ cells [i ] = cell
8239 else :
83- raise RuntimeError ("We only support tets." )
84- return cells
85- else :
86- def build2DCells (coordinates , sIndicies , cell_indicies , start_end ):
87- """
88- Method used to construct 2D cells
89- """
90- cStart , cEnd = start_end
91- cells = np .zeros ((cell_indicies .shape [0 ], 3 ))
92- for i in range (cStart ,cEnd ):
93- sIndex = sIndicies [i ]
94- if len (sIndex )== 3 :
95- cell = list (set (cell_indicies [i ]))
96- A = np .zeros ((2 ,2 ))
97- for i in range (2 ):
98- A [i , :] = coordinates [cell [i + 1 ]] - coordinates [cell [i ]]
99- if np .linalg .det (A ) > 0 :
100- cells [i ] = cell
101- else :
102- cells [i ] = np .array ([cell [0 ], cell [2 ], cell [1 ]])
103- else :
104- raise RuntimeError ("We only support triangles." )
105- return cells
40+ cells [i ] = np .array ([cell [0 ], cell [2 ], cell [1 ]])
41+ else :
42+ raise RuntimeError ("We only support triangles." )
43+ return cells
10644
107- def build3DCells (coordinates , sIndicies , cell_indicies , start_end ):
108- """
109- Method used to construct 3D cells
110- """
111- cStart , cEnd = start_end
112- cells = np .zeros ((cell_indicies .shape [0 ], 4 ))
113- for i in range (cStart ,cEnd ):
114- sIndex = sIndicies [i ]
115- if len (sIndex )== 4 :
116- cell = list (set (cell_indicies [i ]))
117- A = np .zeros ((3 ,3 ))
118- for i in range (3 ):
119- A [i , :] = coordinates [cell [i + 1 ]] - coordinates [cell [i ]]
120- if np .linalg .det (A ) > 0 :
121- cells [i ] = cell
122- else :
123- cells [i ] = np .array ([cell [0 ], cell [1 ], cell [3 ], cell [2 ]])
45+ def build3DCells (coordinates , sIndicies , cell_indicies , start_end ):
46+ cStart = start_end [0 ]
47+ cEnd = start_end [1 ]
48+ cells = np .zeros ((cell_indicies .shape [0 ], 4 ))
49+ for i in range (cStart ,cEnd ):
50+ sIndex = sIndicies [i ]
51+ if len (sIndex )== 4 :
52+ cell = list (set (cell_indicies [i ]))
53+ A = np .zeros ((3 ,3 ))
54+ A [0 ,0 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[0 ]
55+ A [0 ,1 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[1 ]
56+ A [0 ,2 ] = (coordinates [cell [1 ]]- coordinates [cell [0 ]])[2 ]
57+ A [1 ,0 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[0 ]
58+ A [1 ,1 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[1 ]
59+ A [1 ,2 ] = (coordinates [cell [2 ]]- coordinates [cell [1 ]])[2 ]
60+ A [2 ,0 ] = (coordinates [cell [3 ]]- coordinates [cell [2 ]])[0 ]
61+ A [2 ,1 ] = (coordinates [cell [3 ]]- coordinates [cell [2 ]])[1 ]
62+ A [2 ,2 ] = (coordinates [cell [3 ]]- coordinates [cell [2 ]])[2 ]
63+ if np .linalg .det (A ) > 0 :
64+ cells [i ] = cell
12465 else :
125- raise RuntimeError ("We only support tets." )
126- return cells
66+ cells [i ] = np .array ([cell [0 ], cell [1 ], cell [2 ], cell [2 ]])
67+ else :
68+ raise RuntimeError ("We only support tets." )
69+ return cells
12770
12871def create2DNetgenMesh (ngMesh , coordinates , plex , geoInfo ):
12972 """
0 commit comments