Skip to main content

IBL

The Integral Boundary-Layer IBL block (contained wihtin the WallModel block) controls setting up of the IBL during the current run. The solver uses a patch-based specification of the boundary conditions (BCs), which allows the user to use different BCs on different parts of the geometry. An example with two different isothermal boundary conditions ("body" + "base"), a radiative equilibrium boundary condition ("nose") and an adiabatic boundary condition (zero heat flux, rest of the vehcile) is provided below. Note that Twall would typically be defined in the dictionary.

WallModel
{
variant = "none"
...

IBL
{
Freestream
{
P = "Qinf::pinf"
U = "Qinf::uinf"
V = "Qinf::vinf"
W = "Qinf::winf"
T = "Qinf::Tinf"
}

method = "zoby"
viscous_method = "laminar"

BoundaryConditions
{
isobc
{
component = "body"
wall_temperature = Twall
}
radbc
{
component = "nose"
radiative = true
emissivity = 0.85
reference_temperature = "Qinf::Tinf"
}
isobc2
{
component = "base"
wall_temperature = Twall+100.0
}
adiabc
{
component = "any"
}
}
wake_patch = ["1","14"]
}

Keys

Freestream

Provides the reference conditions for the IBL run and for the radiative equilibrium model.


method

Selects which method will be used to run the IBL. Accepted values:

  • "flatplate" — uses a flat-plate skin-friction and heat-flux model.
  • "zoby" — uses a skin-friction and heat-flux model as developed by Zoby et al. (Approximate Convective-Heating Equations for Hypersonic Flows).

The preferred method is currently zoby, which includes streamline curvature and pressure gradient effects and should give better results for axisymmetric or quasi-axisymmetric geometries. For complex geometries (non-axisymmetric), the metric term can become problematic and in that case, it is recommended to revert to the flatplate method.


viscous_method

Selects which viscous method will be used to run the IBL. Accepted values:

  • "laminar" — uses a laminar skin-friction and heat-flux model.
  • "transitional" — uses a laminar skin-friction and heat-flux model until the transition criterion is met, followed by a hard switch to the turbulent skin-friction and heat-flux model.
  • "turbulent" — uses a turbulent skin-friction and heat-flux model.

BoundaryConditions

Selects the wall boundary condition to be used for a specific patch. The current method is patch-based and allows to specify various boundary conditions on different parts of the vehicle. The following boundary conditions are currently supported:

  • "isothermal" — uses a constant wall temperature on the specified patches
  • "radiative equilibrium" — uses a radiative equilibrium model in which the wall temperature is not specified but solved for such that an equilibrium exists between convective and radiative heating.
  • "adiabatic" — uses an adiabatic wall boundary condition and in this case the wall heat-flux is zero.

For the radiative equilibrium boundary condition, the user must also provide the emissivity and the reference temperature.


wake_patch

In some cases it can be useful to exclude the base pacthes (also called wake patches) from the geometry to be solved by the IBL. This is because in the base region of the geometry, the flow can be detached and fully unsteady leading to unreliable IBL solutions.

Examples

The example below is for a laminar IBL solution in which the whole body is considered to be at a specified temperature (isothermal wall boundary condition)

WallModel
{
variant = "none"
...

IBL
{
method = "flatplate"
viscous_method = "laminar"

BoundaryConditions
{
isobc
{
component = "any"
wall_temperature = Twall
}
}
}
}

The following example uses a radiative equilibrium boundary condition on the nose, and constant wall temperature on the rest of the body. It also uses a wake patch to exclude patches "1" and "14" from the IBL solution.

WallModel
{
variant = "none"
...

IBL
{
Freestream
{
P = "Qinf::pinf"
U = "Qinf::uinf"
V = "Qinf::vinf"
W = "Qinf::winf"
T = "Qinf::Tinf"
}

method = "zoby"
viscous_method = "laminar"

BoundaryConditions
{
radbc
{
component = "nose"
radiative = true
emissivity = 0.85
reference_temperature = "Qinf::Tinf"
}
isobc
{
component = "any"
wall_temperature = Twall
}
}
wake_patch = ["1","14"]
}