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, | private | :: | bc_id | Boundary ID |
|||
character(len=LabelLen), | private | :: | BC_kind | kind of this boundary |
|||
character(len=LabelLen), | private | :: | label | name of this boundary |
|||
integer, | private | :: | nNeighs | = | 0 | number of neighbors fluid element needed for extrapolation to get data at boundary element |
|
logical, | private | :: | curved | = | .false. | Curved boundaries are treated with qValues and extrapolation of nonEq from 2nd neighbor |
|
type(bc_neigh_type), | private, | 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), | private, | 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), | private, | pointer | :: | fnct | => | null() | function pointer to boundary routine to call |
procedure(mus_proc_calcBndForce), | private, | pointer | :: | calcBndForce | => | null() | function pointer to compute bndForce on wall |
type(bc_states_type), | private | :: | BC_states | musubi bc state variables |
|||
type(grw_stringkeyvaluepairarray_type), | private | :: | 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, | private | :: | order | order of boundary which determines number of neighbor need for this boundary |
|||
real(kind=rk), | private | :: | qVal | standard q-value for higher order boundaries without any definition in seeder |
|||
type(bc_nrbc_type), | private | :: | nrbc | Non-reflective boundary type |
|||
real(kind=rk), | private | :: | slip_fac | slip wall factor |
|||
type(bc_blackbox_membrane_type), | private | :: | blackbox_mem | black box membrane boundary |
|||
logical, | private | :: | useComputeNeigh | = | .false. | whether this boundary needs neighbors on compute stencil |
|
logical, | private | :: | 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, | private | :: | requireNeighBufPre_nNext | = | .false. | Is true only if boundary requires neighbuf Pre-collision values from next time step |
|
logical, | private | :: | requireNeighBufPre | = | .false. | Is true only if boundary requires neighbuf Pre-collision values from current time step |
|
logical, | private | :: | requireNeighBufPost | = | .false. | Is true only if boundary requires neighbuf Post-collision values |
|
logical, | private | :: | treat_corner | = | .false. | Collect corner BC i.e elements which are interesected by multiple boundaries only for moments based BC |
|
type(array_type), | private, | allocatable | :: | links(:) | Level-wise links that are to be updated size: minLevel:maxLevel allocated in mus_alloc_fieldBC |
||
type(bc_wall_bouzidi_type), | private, | allocatable | :: | bouzidi(:) | Level wise wall bouzidi data size: minLevel:maxLevel |
||
type(bc_inlet_bouzidi_type), | private, | allocatable | :: | inletUbbQVal(:) | Level wise inletUbbQVal data size: minLevel:maxLevel |
||
type(bc_inlet_bouzidi_type), | private, | allocatable | :: | inletBFL(:) | Level wise inletBfl data size: minLevel:maxLevel |
||
type(bc_nonEqExpol_type), | private, | allocatable | :: | nonEqExpol(:) | Level wise nonEquilibrium extrapolation data for link-wise implementation size: minLevel:maxLevel |
||
type(bc_outlet_type), | private, | allocatable | :: | outletExpol(:) | Level wise outletExpol data size: minLevel:maxLevel |
||
type(mus_turb_wallFunc_type), | private | :: | 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 |