18  Domains and boundary conditions

Domains, boundary conditions, MRF, and mesh motion

18.1 What this setting is

A domain is a computational region that assigns physical meaning and material properties, such as fluid or solid, to a mesh zone. Boundary conditions define how flow enters or leaves at a domain’s outer faces (markers), meets a wall, or satisfies symmetry and farfield conditions. As in CFX, think of creating a region first and then attaching conditions to its boundaries; this safely connects mesh names to the analysis model.

18.2 Configure in the GUI

Wake CFD Desktop Domain dialog showing a fluid domain connected to Air, mesh Zone_0, and stationary motion
Figure 18.1: The Domain dialog connects a named physical domain to a material and to one or more imported mesh zones. The figure shows it before any zone is selected; use Select… to pick them.

Create the domain first, select its material and mesh zones, and then add boundary objects beneath it. The boundary editor changes its fields according to the selected boundary type. The resulting names are used by domains[].mesh_zones and domains[].boundaries[].mesh_markers in JSONC.

18.3 Configure in JSONC

{
  "domains": [
    {
      "name": "fluid",
      "type": "fluid",
      "material": "Air",
      "mesh_zones": ["fluid_zone"],
      "boundaries": [
        {
          "name": "airfoil", "type": "wall", "mesh_markers": ["AIRFOIL"],
          "momentum": "free_slip", "heat": "adiabatic"
        },
        {
          "name": "farfield", "type": "farfield", "mesh_markers": ["FARFIELD"],
          "mach": 0.8, "pressure": 101325.0, "temperature": 273.15,
          "flow_direction": [1.0, 0.0, 0.0]
        }
      ]
    }
  ]
}
Key Meaning
type fluid or solid (CHT) — see domain.type below
material References a materials[].name
mesh_zones Required array of mesh-zone names — see mesh_zones below
boundaries Array of tagged-union boundary conditions — see Boundary conditions below
Important

v0.4.0 breaking changes

  • locations → mesh_zones (domain) / mesh_markers (boundary, interface)
  • mesh_zones and mesh_markers are always string arrays (for example, ["Zone1"])

18.4 domain.type

Value Status
fluid production
solid CHT (d0107)

18.5 mesh_zones

Accepts a zone name, scoped name (scope/zone), or volume-region name. It is required with MRF as well, for grid_velocity assignment.

{ "mesh_zones": ["Zone1"] }
{ "mesh_zones": ["ROTOR_ZONE", "ROTOR_TIP"] }

A single zone, or several for a domain spanning multiple mesh regions.

18.6 motion (MRF, Multiple Reference Frame)

Assign a rotating coordinate frame to the entire domain:

{
  "domains": [
    {
      "name": "rotor", "type": "fluid", "material": "Air",
      "mesh_zones": ["ROTOR_ZONE"],
      "motion": {
        "type": "rotating",
        "omega": -1340.5,
        "axis": [0, 0, 1],
        "center": [0.0, 0.0, 0.0],
        "mesh_motion": false
      }
    }
  ]
}
Key Unit Meaning
type — stationary (default) or rotating
omega rad/s Signed rotation rate (rpm × 2π/60)
axis — Rotation axis (unit vector, auto-normalized)
center m Rotation center
mesh_motion — false (default) = MRF frozen rotor — grid stays fixed, only the reference-frame transform is applied (steady, pairs with interfaces[].type: "frozen_rotor" or ggi). true = sliding mesh — the grid is actually rotated each step (unsteady dual-time only, pairs with interfaces[].type: "sliding").

18.7 Boundary conditions (nine-type tagged union)

Category type Meaning
topology wall Wall surface
topology farfield Farfield boundary (characteristic-based)
topology symmetry Symmetry plane
topology internal Internal interface face (no BC treatment)
inlet pressure_inlet Total-pressure inlet (P0, T0, flow_direction)
inlet velocity_inlet Velocity-component inlet
inlet mass_flow_inlet Mass-flow inlet
outlet pressure_outlet Back-pressure outlet
outlet mass_flow_outlet Mass-flow outlet
Note

Interface boundaries are separate

Define periodic, stage, frozen_rotor, sliding, and cht in the interfaces: section.

18.7.1 Wall

Wake CFD Desktop Boundary dialog for a no-slip adiabatic wall on the WING mesh marker
Figure 18.2: A viscous wall boundary connected to the WING mesh marker, with no-slip momentum, adiabatic heat transfer, resolved wall treatment, and stationary wall motion.
{
  "name": "airfoil", "type": "wall", "mesh_markers": ["AIRFOIL"],
  "momentum": "free_slip",
  "heat": "adiabatic",
  "wall_treatment": "resolved",
  "motion": { "type": "stationary" }
}
Key Meaning
momentum free_slip (Euler) or no_slip (NS/RANS)
heat adiabatic, isothermal (add temperature [K]), or heat_flux (add heat_flux [W/m²])
wall_treatment resolved or automatic. DBNS RANS no-slip walls default to automatic except axisymmetric cases; other routes default to resolved.
motion Tagged union, NS no-slip only — see Wall motion below
Note

Wall function (per-marker)

Setting wall_treatment: "automatic" enables the model-specific wall law on that marker. Configure shared constants in models.wall_treatment. The old wall_function key and y_plus_min threshold were removed. Resolved treatment requires a mesh that resolves the viscous sublayer.

18.7.1.1 Wall motion (NS no-slip only, tagged union)

"motion": { "type": "stationary" }
"motion": { "type": "translating", "velocity": [10.0, 0.0, 0.0] }
"motion": { "type": "rotating", "omega": 157.08, "axis": [0, 0, 1], "center": [0, 0, 0] }
type Fields Unit
stationary (default) — —
translating velocity — [x, y, z] vector m/s
rotating omega (signed), axis (unit vector), center rad/s, —, m

Wall velocity components are absolute-frame values. Omitting motion on the no-slip wall of a rotating domain means the wall turns with the domain; give stationary for a fixed casing.

18.7.2 Farfield

Wake CFD Desktop Boundary dialog for a Mach 0.8 farfield with pressure, temperature, angle direction, and turbulence inflow
Figure 18.3: A farfield boundary connected to the FARFIELD mesh marker. The dialog writes freestream Mach, pressure, temperature, direction, and turbulence-inflow values.
Important

farfield is for remote boundaries only.

Use farfield only on faces where a uniform freestream assumption is valid. Using it on a face crossed by a boundary layer or shear flow, such as a wind-tunnel outlet, creates a spurious pressure gradient. In one flat-plate validation, near-wall dP/dx reached −73 Pa/m and downstream Cf was six percentage points too high.

For wind-tunnel-style cases, use pressure_inlet (total conditions) with pressure_outlet (static pressure).

{
  "name": "farfield", "type": "farfield", "mesh_markers": ["FARFIELD"],
  "mach": 0.8,
  "pressure": 101325.0,
  "temperature": 273.15,
  "aoa": 1.25,
  "aos": 0.0,
  "turbulence": {
    "nu_factor": 3.0,
    "intensity": 0.05,
    "eddy_viscosity_ratio": 10.0,
    "intermittency": 1.0
  }
}
Key Unit Meaning
mach — Freestream Mach number
pressure, temperature Pa, K Static reference state (density is derived through the EOS)
aoa ° Angle of attack, −180 to 180: 2D rotates in x–y, 3D in x–z
aos ° Sideslip angle, −90 to 90; omit or set to 0 in 2D
flow_direction — [x, y, z] unit vector, normalized on read; the alternative to aoa/aos
turbulence.nu_factor — SA only: ν̃_inf = nu_factor · ν_lam
turbulence.intensity — SST/k-ω only: freestream turbulence intensity (0.05 = 5%)
turbulence.eddy_viscosity_ratio — Freestream turbulent/laminar viscosity ratio μ_t/μ; length_scale [m] and hydraulic_diameter [m] are alternatives, and only one may be given
turbulence.intermittency — Transition intermittency γ (LM transition model)

Flow direction: Give aoa (with aos in 3D) when you have angles, or flow_direction when you already have the vector. One of the two is required in the Mach form — a far field without either is rejected. A non-zero aoa/aos overrides flow_direction, so supply one form, not both. Both are plain numbers here; expressions apply to the state values, not to the direction.

Note

FR-only fields

Two further fields apply only under analysis.solver=fr: characteristic (compressible path — true switches this farfield to a low-reflection characteristic Riemann invariant BC instead of a fixed freestream ghost state; default false), and, only under models.regime=incompressible (the AC track), velocity (|V|, consumed by the AC characteristic BC), ac_zeta, and ac_niters (AC Newton-iteration count for the characteristic solve; default 4).

18.7.2.1 Direct primitive-variable input

When rho, u, v, w, and p are provided, these values are used instead of deriving the state from (Mach, P, T); supplying both forms on one boundary is rejected. Each value may be a constant or an expression in x, y, z, and t. If any value is an expression, the boundary condition becomes space- and time-dependent and is reevaluated at every stage.

{
  "name": "inflow", "type": "farfield", "mesh_markers": ["INLET"],
  "rho": 1.0,
  "u":   { "type": "expression", "expr": "1.0 + 0.1*sin(2*pi*t)" },
  "v":   0.0,
  "w":   0.0,
  "p":   1.0
}
Warning

With this form, the farfield is excluded from nondimensional reference-state extraction. The reference block or another farfield must define the reference.

18.7.3 Symmetry

{ "name": "sym", "type": "symmetry", "mesh_markers": ["SYM"] }

18.7.4 Internal

{ "name": "rs_interface", "type": "internal", "mesh_markers": ["INTERFACE"] }

Internal mesh interface face: no BC treatment and no vertex_normal calculation.

18.7.5 pressure_inlet: total-pressure inlet

{
  "name": "inlet", "type": "pressure_inlet", "mesh_markers": ["INLET"],
  "formulation": "dirichlet",
  "total_pressure": 120000.0,
  "total_temperature": 300.0,
  "direction_type": "cartesian",
  "flow_direction": [1.0, 0.0, 0.0],
  "turbulence": { "intensity": 0.03, "eddy_viscosity_ratio": 10.0 }
}
Key Unit Meaning
formulation — dirichlet (default, algebraic), riemann (characteristic), or giles (1D NRBC)
total_pressure, total_temperature Pa, K Total (stagnation) conditions P0, T0
direction_type — cartesian (default, reads flow_direction), normal (inward face normal), or cylindrical (reads the cyl_* keys, see below). aoa/aos are rejected on an inlet
flow_direction — [x, y, z] unit vector; needed when direction_type is cartesian
relaxation — Giles NRBC relaxation factor, only used with formulation: "giles"

18.7.5.1 Cylindrical inlet (turbomachinery)

{
  "name": "inlet", "type": "pressure_inlet", "mesh_markers": ["INLET"],
  "total_pressure": 120000.0,
  "total_temperature": 300.0,
  "direction_type": "cylindrical",
  "cyl_axis": [0, 0, 1],
  "cyl_center": [0, 0, 0],
  "cyl_axial": 1.0,
  "cyl_tangential": 0.5,
  "cyl_radial": 0.0
}

direction_type is cartesian (reads flow_direction), normal (face-normal), or cylindrical. The cylindrical form takes cyl_axis through cyl_center plus the cyl_axial/cyl_tangential/cyl_radial component ratios — not m/s, as the magnitude comes from the inlet’s own total conditions. Positive cyl_tangential is right-handed about cyl_axis.

18.7.6 velocity_inlet: velocity-magnitude inlet

{
  "name": "inlet", "type": "velocity_inlet", "mesh_markers": ["VEL_INLET"],
  "velocity": 50.0,
  "flow_direction": [1.0, 0.0, 0.0],
  "pressure": 101325.0,
  "temperature": 300.0
}
Key Unit Meaning
velocity m/s Inflow speed, 0 or greater. Required
flow_direction — [x, y, z] unit vector. Required
pressure, temperature Pa, K Optional static reference

Under DBNS velocity and temperature also accept expressions, in x, y, z for a per-vertex profile. PBNS takes numbers only.

18.7.7 mass_flow_inlet: mass-flow inlet

{
  "name": "inlet", "type": "mass_flow_inlet", "mesh_markers": ["MF_INLET"],
  "mass_flow": 2.5,
  "total_temperature": 300.0,
  "direction_type": "cartesian",
  "flow_direction": [1.0, 0.0, 0.0]
}

mass_flow [kg/s] and total_temperature [K] are both required; the direction uses the same direction_type and flow_direction / cyl_* keys as pressure_inlet. Total pressure is an outcome here, so the case still has a solution when the downstream chokes. DBNS, ideal_gas, and formulation: "dirichlet" only.

18.7.8 pressure_outlet: back-pressure outlet

{
  "name": "outlet", "type": "pressure_outlet", "mesh_markers": ["OUTLET"],
  "formulation": "dirichlet",
  "back_pressure": 101325.0,
  "supersonic": false
}
Key Unit Meaning
formulation — dirichlet (default), riemann, or giles — same meaning as pressure_inlet above
back_pressure Pa Static back pressure
supersonic — Supersonic-outlet treatment (extrapolate everything, ignore back_pressure)
relaxation — Giles NRBC relaxation factor, only used with formulation: "giles"

18.7.8.1 Outlet averaging (CFX-style)

{
  "name": "outlet", "type": "pressure_outlet", "mesh_markers": ["OUTLET"],
  "back_pressure": 101325.0,
  "averaging": {
    "type": "circumferential",
    "blend": 0.0,
    "n_span": 32,
    "axis": [0, 0, 1],
    "center": [0, 0, 0]
  }
}
Key Meaning
type average or circumferential
blend β ∈ [0,1]: 0 = uniform, 1 = CFX-style
n_span Number of circumferential bins (circumferential only)
axis, center Rotation axis and center for the circumferential average

18.7.9 mass_flow_outlet: mass-flow outlet

{
  "name": "outlet", "type": "mass_flow_outlet", "mesh_markers": ["MF_OUTLET"],
  "mass_flow": 2.5
}

mass_flow [kg/s] is the target rate.