Closed jove1 closed 3 months ago
I will make an attempt to do something about this in #1117.
I have added another approach in #1117 which is used if ignore_orientation=True
is set. I did not have time to test it yet using a large mesh.
Now I was able to test it. Tetrahedral mesh with 100 000 vertices and 500 000 elements. Has a surface with roughly 6000 facets. It used 0.5 gigabytes of memory and it took around 5 seconds to load with Mesh.load(..., ignore_orientation=True)
. Without the flag it kept running and running..
I have now extended this to oriented boundaries, ignore_orientation=True
will still shave off half a second in my test case.
Function
from_meshio
uses M*N memory when matching facets from cell_set to facets of a mesh. This leads to out-of-memory error on my real world mesh (148494 facets, 16316 on boundary, 10694 in one of the boundary regions). Problem is alleviated by using ignore_interior_facets=True, (I have enough memory for (16316, 10694, 3) but not for (148494, 10694, 3)), but it is still slow and I think it is better to use a hash map (dict):