Wall#

class Wall[source]#

Bases: BoundaryBase

Wall class defines the wall boundary condition based on the inputs.

Example

  • Wall with default wall function (BoundaryLayer) and prescribed velocity:

    >>> fl.Wall(
    ...     entities=geometry["wall_function"],
    ...     velocity = ["min(0.2, 0.2 + 0.2*y/0.5)", "0", "0.1*y/0.5"],
    ...     use_wall_function=fl.WallFunction(),
    ... )
    
  • Wall with inner-layer wall function:

    >>> fl.Wall(
    ...     entities=volume_mesh["8"],
    ...     use_wall_function=fl.WallFunction(wall_function_type="InnerLayer"),
    ... )
    
  • Wall with wall function and wall rotation:

    >>> fl.Wall(
    ...     entities=volume_mesh["8"],
    ...     velocity=WallRotation(
    ...       axis=(0, 0, 1),
    ...       center=(1, 2, 3) * u.m,
    ...       angular_velocity=100 * u.rpm
    ...     ),
    ...     use_wall_function=fl.WallFunction(),
    ... )
    
  • Define isothermal wall boundary condition on entities with the naming pattern "fluid/isothermal-*":

    >>> fl.Wall(
    ...     entities=volume_mesh["fluid/isothermal-*"],
    ...     heat_spec=fl.Temperature(350 * fl.u.K),
    ... )
    
  • Define isoflux wall boundary condition on entities with the naming pattern "solid/isoflux-*":

    >>> fl.Wall(
    ...     entities=volume_mesh["solid/isoflux-*"],
    ...     heat_spec=fl.HeatFlux(1.0 * fl.u.W/fl.u.m**2),
    ... )
    
  • Define Slater no-slip bleed model on entities with the naming pattern "fluid/SlaterBoundary-*":

    >>> fl.Wall(
    ...     entities=volume_mesh["fluid/SlaterBoundary-*"],
    ...     velocity=fl.SlaterPorousBleed(
    ...         static_pressure=1.01e6 * fl.u.Pa, porosity=0.4, activation_step=200
    ...     ),
    ... )
    
  • Define roughness height on entities with the naming pattern "fluid/Roughness-*":

    >>> fl.Wall(
    ...     entities=volume_mesh["fluid/Roughness-*"],
    ...     roughness_height=0.1 * fl.u.mm,
    ... )
    

Attributes

entities: EntityList[Surface, MirroredSurface, WindTunnelGhostSurface]#

List of boundaries with the Wall boundary condition imposed.

name: str, optional#

Name of the Wall boundary condition.

Default:

'Wall'

use_wall_function: WallFunction, optional#

Wall function configuration. Set to WallFunction to enable wall functions. The default wall function type is 'BoundaryLayer'. Set to None to disable wall functions (no-slip wall).

Default:

None

velocity: Union[typing.Annotated[flow360_schema.models.simulation.models.surface_models.SlaterPorousBleed | flow360_schema.models.simulation.models.surface_models.WallRotation, FieldInfo(annotation=NoneType, required=True, discriminator='type_name')], tuple[typing.Annotated[str, AfterValidator(func=<function process_expressions at 0x7a109691ef80>)], typing.Annotated[str, AfterValidator(func=<function process_expressions at 0x7a109691ef80>)], typing.Annotated[str, AfterValidator(func=<function process_expressions at 0x7a109691ef80>)]], typing.Annotated[typing.Any, BeforeValidator(func=<function _create_validator.<locals>.validate at 0x7a109638b1c0>, json_schema_input_type=PydanticUndefined), PlainSerializer(func=<function _create_serializer.<locals>.serialize at 0x7a109638b490>, return_type=PydanticUndefined, when_used='always'), WithJsonSchema(json_schema={'type': 'object', 'properties': {'value': {'$ref': 'https://flexcompute.com/schemas/1.0.0/Vector3Json.json'}, 'units': {'type': 'string'}}, 'required': ['value', 'units'], 'additionalProperties': False}, mode=None)], NoneType]#

Prescribe a velocity or the velocity model on the wall.

Default:

None

heat_spec: HeatFlux | Temperature#

Specify the heat flux or temperature at the Wall boundary.

Default:

HeatFlux()

roughness_height: Any#

Equivalent sand grain roughness height. Available only to Fluid zone boundaries.

Default:

0 * fl.u.m

Methods

check_wall_function_conflict()[source]#

Check no setting is conflicting with the usage of wall function

classmethod remap_symmetric_to_user_name(value)#

Remap ‘symmetric’ ghost entity to user’s symmetry surface name for UDF backward compat.

classmethod ensure_surface_existence(value)#

Ensure all boundaries will be present after mesher