bc_elems_type Derived Type

type, private :: bc_elems_type

Level wise boundary elements information


type~~bc_elems_type~~InheritsGraph type~bc_elems_type bc_elems_type type~grw_intarray_type grw_intarray_type type~bc_elems_type->type~grw_intarray_type posInBcElemBuf, normalInd type~grw_logical2darray_type grw_logical2darray_type type~bc_elems_type->type~grw_logical2darray_type bitmask type~dyn_intarray_type dyn_intarray_type type~bc_elems_type->type~dyn_intarray_type elem type~grw_real2darray_type grw_real2darray_type type~bc_elems_type->type~grw_real2darray_type qVal type~grw_int2darray_type grw_int2darray_type type~bc_elems_type->type~grw_int2darray_type normal

Inherited by

type~~bc_elems_type~~InheritedByGraph type~bc_elems_type bc_elems_type type~mus_bc_corner_type mus_bc_corner_type type~mus_bc_corner_type->type~bc_elems_type elemLvl type~glob_boundary_type glob_boundary_type type~glob_boundary_type->type~bc_elems_type elemLvl type~glob_boundary_type->type~mus_bc_corner_type cornerBC type~mus_scheme_type mus_scheme_type type~mus_scheme_type->type~glob_boundary_type globBC 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



type(dyn_intarray_type), private :: elem

Positions in levelDesc total list Its purpose is to get the treeID of BC elements size: globBC%nElems to use: levelDesc(iLevel)%total( globBC%elemLvl(iLevel)%elem%val(iElem) )

type(grw_intarray_type), private :: posInBcElemBuf

Position of this boundary in the bc_elemBuffer bc_elemBuffer is growing array initial size: globBC%nElems It is initiated in mus_init_bc_elems of mus_bc_header_module Only non-wall BC needs elemBuffer

type(grw_int2darray_type), private :: normal

Normal vector for each boundary element pointing into the domain. normal is a growing array with size: normal%val(3, nElems)

type(grw_intarray_type), private :: normalInd

which is the index in the stencil corresponding to the normal vector?

type(grw_logical2darray_type), private :: bitmask

bit mask for each node holding directions which have to be updated. The bitmask points into the incoming direction into the flow domain, which actually we want to update * For PUSH, we write to the incoming position, as the kernel reads it from there without propagation. * For PULL, we need to write to the inverse direction, as the kernel performs a bounce back before reading it. However, this bounced back direction actually comes from the non-existent boundary element and would point into the incoming direction, so the value has to be treated and set as if it points really into the incoming direction. bitmask is a growing array, the values are in bitmask%val(:,:) 1st index size is QQN since center is not treated for bcElems

type(grw_real2darray_type), private :: qVal

The q-Values for the exact wall positions Its size: QQN, nElemsBC It is allocated in routine: allocateBCList assigned in routine: assignBCList