Skip to content
SHD Sim
Menu
Documentation menu

Draft. This manual is new and still growing. If something here does not match what you see in the software, the software is right — tell us and we will fix the page.

Boundary layers

The Boundary layers panel open beside the setup tree, showing the Target, Stack, Coverage, Medial axis and Layer placement sections.
Mesh > Boundary layers

Where it is

Setup tree: Mesh > Boundary layers

Controls

Target

Target y+

  • Control: value (ValueField)
  • Default: 30
  • Bound to: CaseState.targetYPlus

The in-app guidance depends on the case:

  • This case is laminar, so there are no wall functions and y+ means nothing to the solver. It still sets the first layer thickness here - if you want layers at all, size them against the flow feature you are resolving instead.
  • Resolved wall treatment needs y+ ≈ 1.
  • Wall functions want y+ between 30 and 300.

Stack

Layers

  • Control: value (ValueField)
  • Default: 6
  • Bound to: CaseState.nLayers
  • Writes: addLayersControls/layers/nSurfaceLayers

Expansion

  • Control: value (ValueField)
  • Default: 1.2
  • Bound to: CaseState.expansionRatio
  • Writes: addLayersControls/expansionRatio

1.1 to 1.3. Higher stacks reach the surface cell faster but grow the aspect ratio.

Medial axis

Thickness / medial distance

  • Control: value (ValueField)
  • Default: 0.3
  • Bound to: CaseState.maxThicknessToMedialRatio
  • Writes: addLayersControls/…
  • Value modes: none (plain entry)
  • Shown when: CaseState.nLayers > 0

Min medial axis angle

  • Control: value (ValueField)
  • Default: 90
  • Bound to: CaseState.minMedialAxisAngle
  • Writes: addLayersControls/…
  • Value modes: none (plain entry)
  • Shown when: CaseState.nLayers > 0

Feature angle

  • Control: value (ValueField)
  • Default: 60
  • Bound to: CaseState.layerFeatureAngle
  • Writes: addLayersControls/…
  • Value modes: none (plain entry)
  • Shown when: CaseState.nLayers > 0

Layer iterations

  • Control: value (ValueField)
  • Default: 50
  • Bound to: CaseState.nLayerIter
  • Writes: addLayersControls/…
  • Value modes: none (plain entry)
  • Shown when: CaseState.nLayers > 0

Take the layers off

Label changes with the case; the source gives these forms: Take the layers off, Add layers and grow them more slowly.

  • Control: action (ToolButton2)
  • Shown when: CaseState.meshExists && CaseState.layerCoverage < 0.7

Layer placement

Min thickness factor

  • Control: value (ValueField)
  • Default: 0.25
  • Bound to: CaseState.minThicknessFactor
  • Value modes: none (plain entry)

Max face thickness ratio

  • Control: value (ValueField)
  • Default: 0.5
  • Bound to: CaseState.maxFaceThicknessRatio
  • Value modes: none (plain entry)

Grow layers

  • Control: value (ValueField)
  • Default: 0
  • Bound to: CaseState.nGrow
  • Value modes: none (plain entry)

Relax iterations

  • Control: value (ValueField)
  • Default: 5
  • Bound to: CaseState.nLayerRelaxIter
  • Value modes: none (plain entry)

Smooth surface normals

  • Control: value (ValueField)
  • Default: 1
  • Bound to: CaseState.nSmoothSurfaceNormals
  • Value modes: none (plain entry)

Smooth normals

  • Control: value (ValueField)
  • Default: 3
  • Bound to: CaseState.nSmoothNormals
  • Value modes: none (plain entry)

Smooth thickness

  • Control: value (ValueField)
  • Default: 10
  • Bound to: CaseState.nSmoothThickness
  • Value modes: none (plain entry)

Buffer cells

  • Control: value (ValueField)
  • Default: 0
  • Bound to: CaseState.nBufferCellsNoExtrude
  • Value modes: none (plain entry)

Meshing…

Label changes with the case; the source gives these forms: Meshing…, Generate mesh.

  • Control: action (ToolButton2)
  • Enabled when: CaseState.meshState !== "meshing"

Problems reported against this step

The application checks these before a run and reports them in the Problems tab against this step.

Severity Message
warn …% on patch 'body'. That is low enough that the stack is costing mesh quality rather than buying wall resolution - compare checkMesh with the …% on patch 'body' - below the 70% target.
warn Resolved wall treatment needs y+ of about 1; the target is ….
warn Resolved wall treatment needs the first cell at y+ of about 1, and nothing in this case sets that: with no boundary layers the first cell height is whatever the mesh gives, and target y+ does not describe it. Check the y+ result control after the run - too far out and this treatment is badly wrong, not slightly.
warn Wall functions want the first cell centre in the log region, about 30 < y+ < 300; the target is …. Consider the resolved treatment.

marks a value the application computes at run time, so the source carries no fixed text for it.