Supported Domain Boundary Conditions
The DomainBC block assigns domain-level (outer-box) boundary conditions on each Cartesian face:
Xmin,XmaxYmin,YmaxZmin,Zmax
Each face defines a single specifier and, depending on that specifier, a small set of parameters. All inputs are in the solver’s global unit system and can reference values from the Dictionary using the same syntax as elsewhere (e.g., Qinf::pinf, Qinf::uinf).
Expressions that require primitive variables (e.g., P, U, V, W, T) use the primitive set of the selected physics model. For ideal_gas this is P, U, V, W, T; see Physics Models for other models.
Subdomains: For subdomains of the primary domain, boundary conditions are inferred from the parent domain and cannot be set explicitly.
Structure
DomainBC
{
Xmin
{
specifier = "<type>"
... parameters ...
}
Xmax
{
specifier = "<type>"
... parameters ...
}
Ymin { ... }
Ymax { ... }
Zmin { ... }
Zmax { ... }
}
- You may assign one boundary condition per face.
- Vector quantities and directions are interpreted in the global frame.
- Some specifiers require a full set of primitives (one expression per primitive variable).
- For subsonic outlet/inlet conditions, formulas blend interior and target states using Riemann-invariant logic (as in the code).
Supported specifiers and parameters
All dictionary references use the standard syntax (e.g.,
Qinf::pinf) and can be numeric expressions.
Inflow / Outflow
-
supersonic_inflow
Provide all primitives (one expression per primitive variable). This sets the full freestream state at the boundary.- Required:
P,T,U,V,W.
- Required:
-
subsonic_inflow
Provide all primitives. The boundary state is adjusted using interior information (Blazek-style).- Required:
P,T,U,V,W.
- Required:
-
stagnation_subsonic_inflow
Specify total (stagnation) conditions; tangential velocities are driven to zero; normal velocity derived.- Required:
total_pressuretotal_temperature- (Multispecies): mass fractions per species (as supported by the model).
- Required:
-
supersonic_outflow
No parameters. First-order extrapolation of the interior state to the boundary. -
pressure_outlet
Set static back pressure for subsonic outflow; supersonic behaves like extrapolation.- Required:
P.
- Required:
-
velocity_outflow
Prescribe normal velocity at the boundary, with pressure/temperature recovered via Riemann invariants (subsonic).- Required:
normal_velocity(scalar).
- Required:
-
mach_outlet
Target a boundary Mach number for subsonic outflow; supersonic uses total-pressure continuation.- Required:
mach_number.
- Required:
-
farfield
Riemann-invariant farfield that blends interior and freestream depending on local Mach and flow direction.
Provide all primitives to define the farfield state:- Required:
P,T,U,V,W.
- Required:
Walls / Symmetry / Periodicity / Misc
-
slipwall
Tangential velocity is extrapolated; wall-normal velocity is cancelled (inviscid slip).- Parameters: none.
-
noslipwall
No-slip condition with optional fixed wall temperature or radiative treatment.- Optional:
wall_temperature(number ⇒ isothermal; omitted/negative ⇒ adiabatic)radiative(bool),emissivity(number),reference_temperature(number)wall_dir(int, 0/1/2) andxyz(number) — optional logic for starting a no-slip segment along a coordinate direction (as in code).
- Notes: Radiative variant is not fully supported yet (experimental).
- Optional:
-
symmetry
Zero normal velocity and zero normal gradients on other quantities.- Parameters: none.
-
periodic
Periodic boundary (face pairs).- Parameters: none. (Configured by pairing faces in the overall setup.)
-
frozen
Leaves the ghost state unchanged (useful for certain experiments).- Parameters: none.
Tips and guidance
- For external aerodynamics in a sufficiently large box, prefer:
- Upstream:
farfieldorsubsonic_inflow/stagnation_subsonic_inflow(jets). - Downstream:
farfieldorpressure_outletfor wakes. - Lateral/upper faces:
farfieldorsymmetrywhen justified by problem symmetry.
- Upstream:
- Supersonic conditions: use
supersonic_inflowfor inlets;supersonic_outflowfor exits. - Rough rule:
pressure_outlet/mach_outletonly “take control” in subsonic outflow; otherwise extrapolation dominates. - All expressions/values are in the global frame and global units.
Example
DomainBC
{
Xmin
{
specifier = "supersonic_inflow"
P = "Qinf::pinf"
T = "Qinf::Tinf"
U = "Qinf::uinf"
V = "Qinf::vinf"
W = "Qinf::winf"
}
Xmax
{
specifier = "supersonic_outflow"
}
Ymin
{
specifier = "supersonic_outflow"
}
Ymax
{
specifier = "supersonic_outflow"
}
Zmin
{
specifier = "symmetry"
}
Zmax
{
specifier = "supersonic_outflow"
}
}