# tem_BC_prop_type Derived Type

## Components

TypeVisibility AttributesNameInitial

Pointer to treelmesh_type%global%property

integer, public :: nSides

Number of sides in the elements, each side might be assigned a boundary condition ID The first 6 are dedicated to "direct" neighbors, and shall always be present. The next 12 are dedicated to neighbors where two of the indices in the 3 dimensional address have to be changed (neighbors at the edges of the cube) After these 18 entries, additional 8 entries might be used for neighbors at the corners.

By default we should store all 26 neighbors, to provide an as complete neighborhood as possible to arbitrary solvers.

integer, public :: nBCtypes

Number of different Boundary conditions used in the complete domain e.g. wall, inflow, outflow

character(len=LabelLen), public, allocatable:: BC_label(:)

Array of labels identifying each of the boundary conditions. This array has a length of nBCtypes

logical, public, allocatable:: hasQVal(:)

Logical array indicating whether each boundary is high order wall This array has a length of nBCtypes

real(kind=rk), public, allocatable:: qVal(:,:)

Actual q-value array for high order wall boundary conditions JQ: The fist dimension has a length of nSides The second dimension has a length of the number of elements with the boundary condition property. tem_property_type%nElems

integer(kind=long_k), public, allocatable:: boundary_ID(:,:)

Actual boundary condition identification for all sides of elements with this property. The first dimension has a length of nSides The second dimension has a length of the number of elements with the boundary condition property. tem_property_type%nElems An ID of 0 for a side indicates, that there is no boundary in that direction. A negative ID indicates a periodic boundary and that the given absolute of the given value is to be taken as neighboring ID in that direction.

type(tem_property_type), public, pointer:: property=> null()

Pointer to treelmesh_type%property

### Source Code

  type tem_BC_prop_type
!> Pointer to treelmesh_type%global%property

!> Number of sides in the elements, each side might be assigned a
!! boundary condition ID
!! The first 6 are dedicated to "direct" neighbors, and shall always be
!! present.
!! The next 12 are dedicated to neighbors where two of the indices in the
!! 3 dimensional address have to be changed (neighbors at the edges of
!! the cube)
!! After these 18 entries, additional 8 entries might be used for neighbors
!! at the corners.
!!
!! By default we should store all 26 neighbors, to provide an as complete
!! neighborhood as possible to arbitrary solvers.
integer :: nSides

!> Number of different Boundary conditions used in the complete domain
!! e.g. wall, inflow, outflow
integer :: nBCtypes

!> Array of labels identifying each of the boundary conditions.
!! This array has a length of nBCtypes
character(len=LabelLen), allocatable :: BC_label(:)

!> Logical array indicating whether each boundary is high order wall
!! This array has a length of nBCtypes
logical, allocatable :: hasQVal(:)

!> Actual q-value array for high order wall boundary conditions
!! JQ: The fist dimension has a length of nSides
!! The second dimension has a length of the number of elements with the
!! boundary condition property. tem_property_type%nElems
real(kind=rk), allocatable :: qVal(:,:)

!> Actual boundary condition identification for all sides of elements with
!! this property.
!! The first dimension has a length of nSides
!! The second dimension has a length of the number of elements with the
!! boundary condition property. tem_property_type%nElems
!! An ID of 0 for a side indicates, that there is no boundary in that
!! direction.
!! A negative ID indicates a periodic boundary and that the given absolute
!! of the given value is to be taken as neighboring ID in that direction.
integer(kind=long_k), allocatable :: boundary_ID(:,:)

!> Pointer to treelmesh_type%property
type(tem_property_type),  pointer :: property => null()

end type tem_BC_prop_type