Forum Message

 

 

We have moved the forum to https://forum.ngsolve.org . This is an archived version of the topics until 05/05/23. All the topics were moved to the new forum and conversations can be continued there. This forum is just kept as legacy to not invalidate old links. If you want to continue a conversation just look for the topic in the new forum.

Notice

The forum is in read only mode.

Question on remeshing (OptimizeMesh2d)

More
4 years 3 months ago #2273 by Guosheng Fu
Hello,

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 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.

Thanks in advance! Best,
Guosheng
More
4 years 3 months ago #2274 by Guosheng Fu
Opps.... The code and the mesh.
More
4 years 3 months ago #2275 by Guosheng Fu
The code.........

File Attachment:

File Name: optimize_m...-08-2.py
File Size:2 KB
More
4 years 3 months ago #2280 by joachim
Hi Guosheng,

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.

Joachim
More
4 years 3 months ago #2283 by Guosheng Fu
Hi Joachim,

Thanks for the quick fix.
Now I get a seg. fault when I want to optimize a second order mesh:
Code:
tmpngmesh.SecondOrder() ... tmpngmesh.OptimizeMesh2d()

So, what is the underlining algorithm for OptimizeMesh2d? Can you give me a quick explanation or a reference to look into?

Best,
Guosheng
More
4 years 3 months ago #2287 by matthiash
Hi Guosheng,

There was a bug in 2d mesh optimization, which was only triggered on second-order curved meshes. It's fixed on the master branch since commit
github.com/NGSolve/netgen/commit/e26f0f3...8ec884618dba175ab953

Best,
Matthias
Time to create page: 0.110 seconds