boundary_type Derived Type

type, public :: boundary_type

Boundary treatment data type. It include boundary treatment for only ONE field. For the same boundary elements, each field may have a different treatment. It includes function pointers and neighbor elements required by this boundary treatment


Inherits

type~~boundary_type~~InheritsGraph type~boundary_type boundary_type grw_stringkeyvaluepairarray_type grw_stringkeyvaluepairarray_type type~boundary_type->grw_stringkeyvaluepairarray_type varDict type~array_type array_type type~boundary_type->type~array_type links type~bc_blackbox_membrane_type bc_blackbox_membrane_type type~boundary_type->type~bc_blackbox_membrane_type blackbox_mem type~bc_field_elems_type bc_field_elems_type type~boundary_type->type~bc_field_elems_type elemLvl type~bc_inlet_bouzidi_type bc_inlet_bouzidi_type type~boundary_type->type~bc_inlet_bouzidi_type inletUbbQVal, inletBFL type~bc_neigh_type bc_neigh_type type~boundary_type->type~bc_neigh_type neigh type~bc_noneqexpol_type bc_nonEqExpol_type type~boundary_type->type~bc_noneqexpol_type nonEqExpol type~bc_nrbc_type bc_nrbc_type type~boundary_type->type~bc_nrbc_type nrbc type~bc_outlet_type bc_outlet_type type~boundary_type->type~bc_outlet_type outletExpol type~bc_states_type bc_states_type type~boundary_type->type~bc_states_type BC_states type~bc_wall_bouzidi_type bc_wall_bouzidi_type type~boundary_type->type~bc_wall_bouzidi_type bouzidi type~mus_turb_wallfunc_type mus_turb_wallFunc_type type~boundary_type->type~mus_turb_wallfunc_type turbwallFunc type~bc_moments_type bc_moments_type type~bc_field_elems_type->type~bc_moments_type moments tem_bc_state_type tem_bc_state_type type~bc_states_type->tem_bc_state_type velocity, massFlowRate, pressure, moleFrac, moleFlux, moleDens, moleDiff_flux, pdf, potential, surChargeDens type~mus_turb_wallfunc_data_type mus_turb_wallFunc_data_type type~mus_turb_wallfunc_type->type~mus_turb_wallfunc_data_type dataOnLvl type~mus_wall_function_type mus_wall_function_type type~mus_turb_wallfunc_type->type~mus_wall_function_type wall_function

Inherited by

type~~boundary_type~~InheritedByGraph type~boundary_type boundary_type type~mus_field_type mus_field_type type~mus_field_type->type~boundary_type bc type~mus_scheme_type mus_scheme_type type~mus_scheme_type->type~mus_field_type field type~mus_varsys_solverdata_type mus_varSys_solverData_type type~mus_varsys_solverdata_type->type~mus_scheme_type scheme type~mus_varsys_data_type mus_varSys_data_type type~mus_varsys_data_type->type~mus_varsys_solverdata_type solverData

Components

Type Visibility Attributes Name Initial
integer, public :: bc_id

Boundary ID

character(len=LabelLen), public :: BC_kind

kind of this boundary

character(len=LabelLen), public :: label

name of this boundary

integer, public :: nNeighs = 0

number of neighbors fluid element needed for extrapolation to get data at boundary element

logical, public :: curved = .false.

Curved boundaries are treated with qValues and extrapolation of nonEq from 2nd neighbor

real(kind=rk), public :: bndMomRefPnt(3)

reference point for boundary moment calculation

type(bc_neigh_type), public, allocatable :: neigh(:)

Level wise neighbor information of boundary elements Each field may have a different handlement on the same boundary Thus requires a different neighborhood allocated in mus_alloc_fieldBC

type(bc_field_elems_type), public, allocatable :: elemLvl(:)

Level wise element information of boundary elements like stencil position in array of stencils, moments type for momentBC and LODI array for NRBC allocated in mus_alloc_fieldBC

procedure(boundaryRoutine), public, pointer :: fnct => null()

function pointer to boundary routine to call

procedure(mus_proc_calcBndForce), public, pointer :: calcBndForce => null()

function pointer to compute bndForce on wall

type(bc_states_type), public :: BC_states

musubi bc state variables

type(grw_stringkeyvaluepairarray_type), public :: varDict

Dictionary of boundary variables with varDict%val()%key is the name of boundary variable and varDict%val()%value is the name of spacetime function variable

integer, public :: order

order of boundary which determines number of neighbor need for this boundary

real(kind=rk), public :: qVal

standard q-value for higher order boundaries without any definition in seeder

type(bc_nrbc_type), public :: nrbc

Non-reflective boundary type

real(kind=rk), public :: slip_fac

slip wall factor

type(bc_blackbox_membrane_type), public :: blackbox_mem

black box membrane boundary

logical, public :: useComputeNeigh = .false.

whether this boundary needs neighbors on compute stencil

logical, public :: evalBcVar_link = .false.

Is true if this boundary requires boundary variables on boundary surface linkwise. Required to compute real coordinates points on boundary surface

logical, public :: requireNeighBufPre_nNext = .false.

Is true only if boundary requires neighbuf Pre-collision values from next time step

logical, public :: requireNeighBufPre = .false.

Is true only if boundary requires neighbuf Pre-collision values from current time step

logical, public :: requireNeighBufPost = .false.

Is true only if boundary requires neighbuf Post-collision values

logical, public :: treat_corner = .false.

Collect corner BC i.e elements which are interesected by multiple boundaries only for moments based BC

type(array_type), public, allocatable :: links(:)

Level-wise links that are to be updated size is minLevel:maxLevel allocated in mus_alloc_fieldBC

type(bc_wall_bouzidi_type), public, allocatable :: bouzidi(:)

Level wise wall bouzidi data size is minLevel:maxLevel

type(bc_inlet_bouzidi_type), public, allocatable :: inletUbbQVal(:)

Level wise inletUbbQVal data size is minLevel:maxLevel

type(bc_inlet_bouzidi_type), public, allocatable :: inletBFL(:)

Level wise inletBfl data size is minLevel:maxLevel

type(bc_nonEqExpol_type), public, allocatable :: nonEqExpol(:)

Level wise nonEquilibrium extrapolation data for link-wise implementation size is minLevel:maxLevel

type(bc_outlet_type), public, allocatable :: outletExpol(:)

Level wise outletExpol data size is minLevel:maxLevel

type(mus_turb_wallFunc_type), public :: turbwallFunc

Turbulent wall model type contains function pointers to compute friction and stream-wise velocity. Also stores friction velocity and turbulent viscosity on boundary elements