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
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 |