1. Mesh uncurving

As high order numerical methods require a high order representation of the boundary, a number of methods have been developed to provide this level of accuracy. In some curving techniques, such as agglomerated meshes, it is not just the boundary that is curved, but the entire volume of the mesh is made up of curved cells. However, if the cell is not adjacent to curved boundaries, it is numerically preferable to use linear cells. Thus, HOPR provides a function for uncurving curved meshes, optionally at a given distance to the boundary. The parameter nCurvedBoundaryLayers specifies the number of cells from a curved boundary (i.e. boundaries with curveIndex>0) that stay curved. For the remaining 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 figures bellow, and 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.

../All_curved.png

Fig. 1.1 NACA-profile with all elements curved

../0_curved.png

Fig. 1.2 NACA-profile with only the profile boundary curved

../1_curved.png

Fig. 1.3 NACA-profile with the first cell curved

../3_curved.png

Fig. 1.4 NACA-profile with the first three cells curved

Table 1.10 Distribution of the smallest scaled Jacobians per element.

Number of elements with scaled Jacobians ranging between:

<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