Hex smoothing¶
nekmeshpy.hexmesh.smoother moves the vertices of a hex mesh, never its connectivity, under the same
constraints, Laplace smoothing and shape optimizer as the quad smoother
(user guide). The pages call the stages directly; in practice the same stages run
as reviewed rounds of a SmoothSession (propose, then accept or undo).
Warning
Experimental. The hex smoother is native (pure NumPy), moves vertices only (on a curved mesh the curved nodes follow), and has been tested on small meshes (a few hundred hexes). MFEM’s TMOP, an optional stage, smooths a curved mesh as curved (MFEM smoother).
Each page below is one small example that shows one behaviour. Every page has a 3-D viewer: the input and each result as variants, a translucent boundary shell and cross-sections coloured by each hex’s worst-corner scaled Jacobian.
page |
shows |
|---|---|
Laplace, the optimizer and the suggested schedule on one perturbed input, boundary frozen |
|
|
|
a free curved wall: |
|
a designed thin layer, unprotected and kept with |
|
inverted hexes repaired by the optimizer’s |
Every number on these pages is computed by the example script named on the page and written into the page by
python docs/_ext/gen_smoother_hex_assets.py; none is typed. The same
thin layer under MFEM’s TMOP has a page of its own: Demo: a thin designed layer, and a curved bent pipe:
Demo: a bent pipe at order 3.