Mesh Smoothing

Hi everyone,
I was wondering are there any mesh smoothing options in Netgen? If so, what do they do (Laplace smoothing ?)
Is there a way to access them via the Python interface?

Hi Umberto,

there is




for the netgen-Mesh. The argument MeshingParameters has strings optimize2d and optimze3d, which specify a sequence of optimization steps.

There is smoothing (which optimizes mesh quality), and topological optimization like swapping, point collapsing, or point insertion.

It is already explained in the original Netgen paper, I think.


1 Like

Thank you! Indeed I found this also described in the original netgen paper.
From the docs I see the options used are “cmdmustm” but I can’t find the meaning of “u” and “t”.

  |      optimize3d: str = "cmdmustm"
 |        3d optimization strategy:
 |          m .. move nodes
 |          M .. move nodes, cheap functional
 |          s .. swap faces
 |          c .. combine elements
 |          d .. divide elements
 |          p .. plot, no pause
 |          P .. plot, Pause
 |          h .. Histogramm, no pause
 |          H .. Histogramm, pause
 |      optsteps3d: int = 3
 |        Number of 3d optimization steps.
 |      optimize2d: str = "smcmSmcmSmcm"
 |        2d optimization strategy:
 |          s .. swap, opt 6 lines/node
 |          S .. swap, optimal elements
 |          m .. move nodes
 |          p .. plot, no pause
 |          P .. plot, pause
 |          c .. combine

t is now the same as capital D SplitImprove2: Split two opposite edges of very flat tet and let all 4 new segments have one common vertex

u doesn’t do anything right now (commented out) it was a step to swapimprove the surface in between. But already out before 2009 (since we don’t change the surface mesh in volume meshing any more)

1 Like