I am working on ALE solver for two-phase flow. So I need to remesh when the mesh quality became low.
I found in Michael’s particle_remesh.py file ( at https://ngsolve.org/user-meeting2019/) a procedure to remesh an affine mesh, which involves two steps:
(1) copy mesh and move points
(2) copy mesh and optimize it using OptimizeMesh2d
I have two questions regarding these steps:
(1) How to manually copy a higher order curved mesh with deformation to a high-order temporary mesh?
(2) What does OptimizeMesh2d do internally? Can it generate curved mesh? I also found it sometimes generates invalid mesh (with an extra node), see this one:
[attachment=undefined]mesh.png[/attachment]
Attached is the code that generate this invalid mesh.
the illegal meshes are fixed in the coming nightly, thanks for the report.
Arbitrary order curved meshes are treated differently than second-order curved meshes (obtained by mesh.SecondOrder), which use edge mid-points. For second-order your Python mesh manipulation could work.