Mesh
Where it is
Section titled “Where it is”Setup tree: Mesh
Controls
Section titled “Controls”Algorithm
Section titled “Algorithm”Mesher
Section titled “Mesher”- Control: choice (
ComboRow) - Default:
snappyHexMesh (hex-dominant) - Bound to:
CaseState.mesher - Options:
snappyHexMesh (hex-dominant),blockMesh only (no body),Import an existing mesh(fromCaseState.mesherOptions)
The in-app guidance depends on the case:
- The background block is the whole domain. Right for internal flow - a duct, a room, a manifold - where there is no body to wrap a mesh around.
- Convert a mesh from another tool instead of generating one. Set the file under Geometry.
- Wraps a hex-dominant mesh onto the imported body, with refinement regions and boundary layers.
Dimensionality
Section titled “Dimensionality”Two-dimensional
Section titled “Two-dimensional”- Control: on/off (
ToggleRow) - Default:
false - Bound to:
CaseState.twoDimensional
OpenFOAM has no 2D solver. A 2D case is a mesh one cell thick with the two side faces declared empty, and the solver then drops that direction entirely. Roughly a hundred times cheaper than the 3D equivalent, which is why so much everyday CFD is 2D.
Thin direction
Section titled “Thin direction”- Control: choice (
ComboRow) - Default:
z - Bound to:
CaseState.twoDAxis - Options:
x,y,z - Shown when:
CaseState.twoDimensional
The direction removed from the model. It cannot be the flow direction, which is the one the answer is in.
Mesh file
Section titled “Mesh file”Choose mesh
Section titled “Choose mesh”- Control: action (
ToolButton2)
Source format
Section titled “Source format”- Control: choice (
ComboRow) - Default: empty
- Bound to:
CaseState.importedMeshConverter
Detection is right nearly always. Set it by hand for .msh, which Fluent, Gmsh and others all use for different formats.
Mesh units
Section titled “Mesh units”- Control: choice (
ComboRow) - Bound to:
CaseState.meshImportScales - Options:
metres,millimetres,centimetres,inches,feet(fromCaseState.meshImportScales)
What the numbers in the file are in. Everything downstream works in metres, so a mesh exported in millimetres and left as one solves a model a thousand times too big.
Stop meshing
Section titled “Stop meshing”- Control: action (
ToolButton2) - Shown when:
JobExecutor.busy && CaseState.meshState === "meshing"
Domain
Section titled “Domain”Flow direction
Section titled “Flow direction”- Control: choice (
ComboRow) - Default:
-Z - Bound to:
CaseState.flowAxis - Options:
+X,-X,+Y,-Y,+Z,-Z(fromCaseState.flowAxisOptions) - Writes:
forceCoeffs/dragDir
Sets the reference length and frontal area, the wind-tunnel pads, the inlet and outlet patches, and the drag direction.
Incidence α
Section titled “Incidence α”- Control: value (
ValueField) - Unit: deg
- Default:
0 - Bound to:
CaseState.incidenceAlpha - Writes:
0/U inlet, forceCoeffs/liftDir and dragDir - Value modes: none (plain entry)
Nose-up positive. Applied to the oncoming flow rather than to the body, so a sweep reuses one mesh: run the same case at a few angles and the force coefficients become curves, which is what says whether the vehicle is stable rather than just how much it drags. Lift and drag are resolved along the tilted stream, not the tunnel axis.
Sideslip β
Section titled “Sideslip β”- Control: value (
ValueField) - Unit: deg
- Default:
0 - Bound to:
CaseState.incidenceBeta - Writes:
0/U inlet - Value modes: none (plain entry)
Nose-to-starboard positive. For a towed body this is the yaw the tow point imposes in a turn.
Auto wind tunnel
Section titled “Auto wind tunnel”- Control: on/off (
ToggleRow) - Default:
true - Bound to:
CaseState.domainAuto
Sizes the background block from the geometry bounding box, in multiples of body length. Turn off to enter the box explicitly.
Base mesh
Section titled “Base mesh”Base cell size
Section titled “Base cell size”- Control: value (
ValueField) - Unit: m
- Default:
0.08 - Bound to:
CaseState.baseCellSize - Writes:
blockMeshDict/blocks
Suggest from domain
Section titled “Suggest from domain”- Control: action (
ToolButton2)
Generate
Section titled “Generate”Meshing…
Section titled “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
Section titled “Problems reported against this step”The application checks these before a run and reports them in the Problems tab against this step.
| Severity | Message |
|---|---|
| error | No mesh has been generated. |
| error | The thin direction of a 2D case cannot be the flow direction - that is the direction the answer is in. Choose a different axis. |
| error | The mesher is set to import a mesh, but no mesh file has been chosen. |
| error | No converter in this build reads …. Choose the source format explicitly. |
| error | This mesh is about … cells and the … tier is limited to …. Coarsen the mesh, or upgrade to remove the limit. |
… marks a value the application computes at run time, so the source carries no fixed text for it.