@@ -23,26 +23,26 @@ def extract_faces(cell: meshio.CellBlock):
2323 pass
2424 elif cell .type == "tetra" :
2525 data = cell .data .astype (np .uint64 )
26- faces = data [:, : 3 ]
27- faces = np .append (faces , data [:, [0 , 2 , 3 ]], axis = 0 )
26+ faces = data [:, [ 0 , 2 , 1 ] ]
27+ faces = np .append (faces , data [:, [0 , 3 , 2 ]], axis = 0 )
2828 faces = np .append (faces , data [:, [0 , 1 , 3 ]], axis = 0 )
2929 faces = np .append (faces , data [:, [1 , 2 , 3 ]], axis = 0 )
30- faces .sort (axis = 1 )
31- _ , indxs , count = np .unique (faces , axis = 0 , return_index = True , return_counts = True )
30+ faces_copy = np .copy (faces )
31+ faces_copy .sort (axis = 1 )
32+ _ , indxs , count = np .unique (faces_copy , axis = 0 , return_index = True , return_counts = True )
3233 faces = faces [indxs [count == 1 ]]
3334 return faces
3435 elif cell .type == "hexahedron" :
3536 data = cell .data .astype (np .uint64 )
36- faces = data [:, :4 ]
37- faces = np .append (faces , data [:, [0 , 1 , 5 , 4 ]], axis = 0 )
37+ faces = data [:, [0 , 3 , 2 , 1 ]]
38+ faces = np .append (faces , data [:, [1 , 5 , 4 , 0 ]], axis = 0 )
39+ faces = np .append (faces , data [:, [4 , 5 , 6 , 7 ]], axis = 0 )
40+ faces = np .append (faces , data [:, [3 , 7 , 6 , 2 ]], axis = 0 )
3841 faces = np .append (faces , data [:, [1 , 2 , 6 , 5 ]], axis = 0 )
39- faces = np .append (faces , data [:, [2 , 3 , 7 , 6 ]], axis = 0 )
40- faces = np .append (faces , data [:, [5 , 6 , 7 , 4 ]], axis = 0 )
41- faces = np .append (faces , data [:, [0 , 3 , 7 , 4 ]], axis = 0 )
42- # to sort or not to sort?
43- # Or convert it to triangles?
44- # faces.sort(axis=1)
45- _ , indxs , count = np .unique (faces , axis = 0 , return_index = True , return_counts = True )
42+ faces = np .append (faces , data [:, [0 , 4 , 7 , 3 ]], axis = 0 )
43+ faces_copy = np .copy (faces )
44+ faces_copy .sort (axis = 1 )
45+ _ , indxs , count = np .unique (faces_copy , axis = 0 , return_index = True , return_counts = True )
4646 faces = faces [indxs [count == 1 ]]
4747 return faces
4848 elif cell .type == "vertex" :
0 commit comments