SpectraSim Documentation
Parameter · 08 Mesh

Feature angle

mesh.feature_angle Unit: ° Step 08 · Mesh

Which edges of the triangulated surface are kept as sharp features. An edge is a feature when the angle between its two faces is less than this value: 60° keeps only edges where the surface folds by more than 120°, 150° also keeps ordinary 90° corners.

Last updated

Theory

Before meshing, surfaceFeatureExtract scans the combined surface (every patch together, so the seams between patches count) and writes the feature edges to an .eMesh file. Its setting includedAngle is this value: an edge is marked when the included angle between its two faces is smaller than it, equation (1). OpenFOAM's annotated dictionary gives the end points: 0° selects no edges, 180° selects every edge.

The feature edges are used in two places:

  • Refinement. Cells that the edges cross are refined one level beyond the surfaces during castellation (level FF in uniform sizing, the finest wall level in curvature sizing).
  • Snapping. With explicit edge snapping (see Edge snapping) the mesh points are also pulled onto these edges. With implicit snapping (the default) the mesher finds the edges from the surface itself, and the file is used for the refinement only.

This setting is neither the mesher's resolveFeatureAngle (the curvature threshold, set from Cells across a pipe diameter or 30°) nor the layer stage's featureAngle (fixed at 60°, beyond which layers stop at a convex edge). The three angles have different meanings and are set separately.

Equations

edge is a feature  ⟺  α<θinc,α=180∘−arccos⁡ ⁣(n1⋅n2)\text{edge is a feature} \iff \alpha < \theta_{inc}, \qquad \alpha = 180^\circ - \arccos\!\left(\mathbf{n}_1\cdot\mathbf{n}_2\right)
(1)
wheremeaningunit
α\alphaIncluded angle between the two faces at the edge (180° = flat)°
θinc\theta_{inc}Feature angle (includedAngle)°
n1,n2\mathbf{n}_1, \mathbf{n}_2Unit normals of the two faces-

Default and rule

Default
60°Measured
Rule

60°: only edges sharper than 120° of fold are features.

Source

Validation on case V2 (a two-inlet single-chamber muffler with internal inlet and outlet tubes), all other settings equal:

  • 60°: maximum skewness 4.69, layer coverage 99.2 %, 210k cells;
  • 150°: maximum skewness 9.83, layer coverage 97.7 %, 255k cells (+22 %).

150° extracts more edges, and hence more cells, but on a real multi-body model each extra edge is another snapping constraint, and the mesh quality degrades. An earlier, separate comparison showed the same trend. The included-angle reading of includedAngle, equation (1), is the program's interpretation; it is consistent with the end points 0° and 180° given in OpenFOAM's annotated surfaceFeatureExtractDict. The surface feature tools are part of the mesher's workflow (OpenFOAM user guide, 2026).

Valid range 0° (no edges) to 180° (every edge)

Values

0° to 180°. The feature edges are extracted again with this value every time a mesh is built.

High values

Above 90° every right-angled port rim, pipe end and baffle joint becomes a feature: more cells and, on V2, a worse mesh.

One model

The comparison of 60° and 150° was made on one muffler.

References 1

  1. OpenCFD Ltd. (2026). OpenFOAM user guide. openfoam.com. Web page