Skip to content
Draft. This manual is new and still being checked against the software as it is verified. Some pages will change. If something here does not match what you see, the software is right — tell us and we will fix the page.

Geometry

Setup tree: Geometry

  • Control: action (ToolButton2)
  • Control: action (ToolButton2)
  • Control: choice (ComboRow)
  • Default: m
  • Bound to: CaseState.geometryUnits
  • Options: m, mm, cm, in, ft

Source units of the imported file. Geometry is rescaled to metres on import, so bounds, areas and cell sizes are always SI.

  • Control: on/off (ToggleRow)
  • Default: true
  • Bound to: CaseState.geometryHealingEnabled

Passed to the geometry translator: sew faces, remove tiny edges and report diagnostics.

  • Control: value (ValueField)
  • Unit: m
  • Default: 1.0
  • Bound to: CaseState.airfoilChord
  • Value modes: none (plain entry)
  • Shown when: CaseState.geometryImportFamily === "airfoil"

The profile is normalised to unit chord on read, so this is the size it becomes whatever scaling the file used.

  • Control: value (ValueField)
  • Unit: m
  • Default: 0.2
  • Bound to: CaseState.airfoilSpan
  • Value modes: none (plain entry)
  • Shown when: CaseState.geometryImportFamily === "airfoil"

Extruded along z, centred on zero. A 2-D case wants this about one cell thick with empty front and back patches.

  • Control: value (ValueField)
  • Unit: deg
  • Default: 0.0
  • Bound to: CaseState.airfoilAngle
  • Value modes: none (plain entry)
  • Shown when: CaseState.geometryImportFamily === "airfoil"

Rotated about the quarter chord, which is where the pitching moment is conventionally taken.

  • Control: action (ToolButton2)
  • Shown when: CaseState.geometryImportFamily === "airfoil"
  • Enabled when: CaseState.geometrySource !== "" && !GeometryImportBackend.busy
  • Control: action (ToolButton2)
  • Shown when: CaseState.geometryUsesCadTranslator() && CaseState.geometryImportFamily !== "airfoil"
  • Enabled when: CaseState.geometrySource !== "" && !GeometryImportBackend.busy
  • Control: action (ToolButton2)
  • Shown when: GeometryImportBackend.busy
  • Control: action (ToolButton2)
  • Shown when: CaseState.geometryParts.count === 0
  • Enabled when: CaseState.geometryUsesMesh()
  • Control: action (ToolButton2)
  • Shown when: CaseState.geometryParts.count > 0
  • Control: choice (ComboRow)
  • Default: Surface
  • Bound to: CaseState.viewportMode
  • Options: Surface, Mesh, Wireframe, Points, Clip, Slice

The in-app guidance depends on the case:

  • CAD format recognised. Nothing is drawn until the translator has turned it into a surface - use Translate, above.
  • Mesh overlays the surface triangulation; wireframe and points switch the actual geometry topology. Fields of the solution are drawn from the post-processing pipeline, not from here.
  • Control: value (ValueField)
  • Unit: m
  • Default: 0
  • Bound to: CaseState.clipOffset
  • Writes: viewport/clipPlane/origin
  • Shown when: CaseState.viewportMode === "Clip" || CaseState.viewportMode === "Slice"
  • Control: value (ValueField)
  • Unit: m
  • Default: 0.08
  • Bound to: CaseState.sliceThickness
  • Writes: postProcess/cuttingPlane/thickness
  • Shown when: CaseState.viewportMode === "Slice"

repeated once for every entry in CaseState.geometryParts

  • Control: value (ValueField)
  • Value modes: none (plain entry)

… triangles, … m². This is the name OpenFOAM will call the patch, so it is what a boundary condition and a force control refer to.

  • Control: action (ToolButton2)

Read straight from the data behind the panel, not from a hand-written list.

From a fixed list in the application.

label
Format
Backend
Triangles
Visible tris
Bounds min
Bounds max
Size
Surface area
Frontal area
Watertight

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

Severity Message
warning The imported surface has open edges. It will still mesh, but the flow can leak inside the body through the holes, which usually shows up as a run that diverges rather than as a meshing failure. Cap the holes, or place the body on a ground plane if it was modelled to sit on one.

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