I simulate free moving elastic particle(s) in fluid with arbitrary Lagrangian-Eulerian (ALE) in 3D, where a 2nd order mesh is used. The mesh deforms in every step to fit the shape of paritcles, as stated Moving submesh diverges from its designated trajectory in a two-phase problem. When the particle moves close to surface, the mesh should be locally refined by generating a new mesh or simply remesh, and then variables defined on the old mesh are interpolated onto the new local refined mesh.
I am wondering how can I do remeshing for a 2nd order 3D mesh with local refinement? I can track the movement of particle’s boundary points from its initial status. However, the difficulty is in remeshing with local refinement, as the computation of surface curvature is not trivial. That means I cannot use functionalities such as dolfinx.mesh.refine
, where to refine mesh by adding middle points on the surface edges.
So far, my need can be reduced to one step: how to get more points in remeshing, and in the meantime to maintain the correct surface curvature. I did some search and find it could be cooperated with 3rd party library CGAL: CGAL 6.0.1 - Tetrahedral Remeshing: User Manual. Before dive into this, I seek for advices and experience from community, many thanks.