# 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?
Best,
Umberto

Hi Umberto,

there is

``````Mesh.OptimizeMesh2d`
``````

and

``````Mesh.OptimizeVolumeMesh
``````

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.

Joachim

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