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.

Refinements

The Refinements panel open beside the setup tree, showing the Surface refinement, Snapping and Refinement regions sections.
Mesh > Refinements

Where it is

Setup tree: Mesh > Refinements

Controls

Surface refinement

Level min

  • Control: value (ValueField)
  • Default: 3
  • Bound to: CaseState.surfaceLevelMin
  • Writes: castellatedMeshControls/refinementSurfaces/body/level

Every cell touching the surface reaches this level.

Level max

  • Control: value (ValueField)
  • Default: 4
  • Bound to: CaseState.surfaceLevelMax

Reached where the surface curves more sharply than the feature angle.

Cells between

  • Control: value (ValueField)
  • Default: 3
  • Bound to: CaseState.nCellsBetweenLevels
  • Writes: castellatedMeshControls/nCellsBetweenLevels

Buffer cells between refinement levels. Higher is smoother and produces better quality, at more cells.

Feature angle

  • Control: value (ValueField)
  • Unit: °
  • Default: 30
  • Bound to: CaseState.resolveFeatureAngle
  • Writes: castellatedMeshControls/resolveFeatureAngle
  • Value modes: none (plain entry)

Which edges get chased down to the surface level. Lower it towards 20 for a body with shallow curvature that is being missed; raise it towards 60 when feature refinement is running the cell count away. The one member of this block that was not reachable.

Max cells

  • Control: value (ValueField)
  • Default: 2000000
  • Bound to: CaseState.maxGlobalCells
  • Writes: castellatedMeshControls/maxGlobalCells

Hard budget. Refinement stops when it is reached, so the mesh may not achieve the levels above.

Snapping

Snap iterations

  • Control: value (ValueField)
  • Default: 30
  • Bound to: CaseState.nSolveIter
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Snap relax passes

  • Control: value (ValueField)
  • Default: 5
  • Bound to: CaseState.nSnapRelaxIter
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Feature snap iterations

  • Control: value (ValueField)
  • Default: 10
  • Bound to: CaseState.nFeatureSnapIter
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Patch smoothing passes

  • Control: value (ValueField)
  • Default: 3
  • Bound to: CaseState.nSmoothPatch
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Snap tolerance

  • Control: value (ValueField)
  • Default: 2.0
  • Bound to: CaseState.snapTolerance
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Max cells per rank

  • Control: value (ValueField)
  • Default: 1000000
  • Bound to: CaseState.maxLocalCells
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Min cells to refine

  • Control: value (ValueField)
  • Default: 10
  • Bound to: CaseState.minRefinementCells
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Max load unbalance

  • Control: value (ValueField)
  • Default: 0.10
  • Bound to: CaseState.maxLoadUnbalance
  • Writes: snappyHexMeshDict/…
  • Value modes: none (plain entry)

Refinement regions

+ Add refinement region

  • Control: action (ToolButton2)

Conditional and repeated groups

Per item in CaseState.refinementRegions

repeated once for every entry in CaseState.refinementRegions

Shape

  • Control: choice (ComboRow)
  • Default: box
  • Options: box, sphere
  • Shown when: !regionCard.usesPrimitive

Mode

  • Control: choice (ComboRow)
  • Default: inside
  • Options: inside, outside, distance
  • Writes: refinementRegions/…/mode

Level

  • Control: value (ValueField)
  • Default: 2

Distance

  • Control: value (ValueField)
  • Unit: L
  • Default: 1.0
  • Shown when: regionCard.region.mode === "distance"

Placement

  • Control: choice (ComboRow)
  • Options: relative, absolute
  • Shown when: !regionCard.usesPrimitive

The in-app guidance depends on the case:

  • Metres in the case's axes.
  • Body lengths off the geometry box, so it follows the model.

Ahead

  • Control: value (ValueField)
  • Unit: L
  • Default: 1.0
  • Shown when: regionCard.regionShape === "box" && !regionCard.absolute

Wake

  • Control: value (ValueField)
  • Unit: L
  • Default: 2.0
  • Shown when: regionCard.regionShape === "box" && !regionCard.absolute

Sides

  • Control: value (ValueField)
  • Unit: L
  • Default: 1.0
  • Shown when: regionCard.regionShape === "box" && !regionCard.absolute

Above

  • Control: value (ValueField)
  • Unit: L
  • Default: 1.0
  • Shown when: regionCard.regionShape === "box" && !regionCard.absolute

Below

  • Control: value (ValueField)
  • Unit: L
  • Default: 1.0
  • Shown when: regionCard.regionShape === "box" && !regionCard.absolute

Problems reported against this step

The application reports no problems against this step.


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