Skip to content

Commit 179373d

Browse files
author
uzerbianati
committed
Removed JIT (I've not seen significant improvement in performance).
This also fixes a big bubu that was in the non JITed kernel Signed-off-by: uzerbianati <zerbinati@maths.ox.ac.uk>
1 parent 220c556 commit 179373d

1 file changed

Lines changed: 43 additions & 100 deletions

File tree

ngsPETSc/plex.py

Lines changed: 43 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -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

2620
FACE_SETS_LABEL = "Face Sets"
2721
CELL_SETS_LABEL = "Cell Sets"
2822
EDGE_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

12871
def create2DNetgenMesh(ngMesh, coordinates, plex, geoInfo):
12972
"""

0 commit comments

Comments
 (0)