Level wise boundary elements information
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 |