Post-processing Meshes

From HOPR
Jump to: navigation, search


Once a mesh is built there are several options to apply post-process meshes.


Mesh uncurving

As high-order numerical methods require a high-order representation of the boundary several methods have been developed to provide that accuracy. For some curving techniques, as for agglomerated meshes, not only the boundary is curved but the whole volume mesh consists of curved cells. However it is for numerical reasons advantageous to use linear cells, if the cell is not adjacent to curved boundaries. HOPR thus provides a feature to uncurve curved meshes in a distance from the boundary. The parameter nCurvedBoundaryLayers specifies the number of cells from a curved boundary (i.e. boundaries with curveIndex>0) stay curved, for the rest of the mesh a (tri-)linear mapping using only the corner nodes is applied.

  • For nCurvedBoundaryLayers=-1 the whole mesh stays curved (default)
  • For nCurvedBoundaryLayers=0 in the first cell only the boundary itself remains curved, all other faces and cells in the mesh will be linear
  • For nCurvedBoundaryLayers=1-n the first n cells away from the boundary remain curved.

These choices are depicted in the pictures bellow, the table lists the scaled Jacobian ranges for the elements. The mesh becomes significantly less distorted if only the first cell is curved Note that it is often required to curve more than the first cell, especially for fine curved boundary layer meshes.

Picture 1: NACA-profile with all elements curved
Picture 2: NACA-profile with only the profile boundary curved
Picture 3: NACA-profile with the first cell curved
Picture 4: NACA-profile with the first three cells curved
Distribution of the smallest scaled Jacobians per element
Number of elements with
scaled Jacobians ranging between:
< 0.0 < 0.1 < 0.2 < 0.3 < 0.4 < 0.5 < 0.6 < 0.7 < 0.8 < 0.9 < 1.0
Only boundary is curved: 0 0 0 0 8 4 8 208 100 276 1124
First element is curved: 0 0 0 0 8 4 16 208 100 288 1104
First 3 elements are curved: 0 0 0 0 16 12 32 224 92 284 1068
All elements are curved: 0 0 0 0 136 596 748 200 12 36 0

Parameter File

To test this feature, add nCurvedBoundaryLayers=n to the parameter file, which is also found in

tutorials/3-01-agglomeration_NACA/parameter.ini

Mesh Refinement

It is often desirable to refine existing meshes, by subdividing the elements into smaller elements. As HOPR implements this feature for Hexahedra only, it is controlled by the flag nFineHexa=x, where x specifies the number of subdivision of each element. For meshes containing other element types than hexahedra, this option is not applicable. Up to now, the refinement only works for hexa with linear edges.

Picture 1: Standard mesh
Picture 2: All elements refined by a factor of 2

Parameter File

To test this feature add nFineHexa=2 to the parameter file, which is also found in

tutorials/2-01-external_meshes_sphere/parameter.ini

Generation of Hexahedral Meshes

As many solvers require purely hexahedral meshes, HOPR implements a subdivision strategy to split meshes consisting of tetrahedra, prisms and hexahedra into purely hexahedral meshes. This feature is activated using the parameter splitToHex=T. Note, that pyramids cannot be decomposed to hexahedra in a straightforward way, thus this feature cannot be applied to meshes containing pyramids. Note also that this option is up to now restricted to linear meshes.

Picture 1: Mesh consisting of 6 tetrahedra
Picture 2: Each tetrahedron subdivided into 4 hexahedra

Parameter File

To test this feature, set elemtype to either 104 or 106 and add splitToHex=T to the parameter file, which is found in

tutorials/1-01-cartbox/parameter.ini

Back to Home