tem_BC_prop_type Derived Type

type, public :: tem_BC_prop_type


Inherits

type~~tem_bc_prop_type~~InheritsGraph type~tem_bc_prop_type tem_BC_prop_type type~tem_property_type tem_property_type type~tem_bc_prop_type->type~tem_property_type property type~tem_prophead_type tem_prophead_type type~tem_bc_prop_type->type~tem_prophead_type header

Components

Type Visibility Attributes Name Initial
type(tem_prophead_type), public, pointer :: header => null()

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

logical, public, allocatable :: hasNormal(:)

Logical array indicating whether each boundary provides normal wall information.

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

Actual q-value array for high order wall boundary conditions 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), public, allocatable :: normal(:,:)

Actual normals array for boundary conditions providing the wall normals The fist dimension has length 3 The second dimension has a length of the number of elements with the hasNormal 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
    type(tem_prophead_type),  pointer :: header => null()

    !> 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(:)

    !> Logical array indicating whether each boundary provides normal wall
    !! information.
    logical, allocatable :: hasNormal(:)

    !> Actual q-value array for high order wall boundary conditions
    !! 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 normals array for boundary conditions providing the wall normals
    !! The fist dimension has length 3
    !! The second dimension has a length of the number of elements with the
    !! hasNormal property. tem_property_type%nElems
    real(kind=rk), allocatable :: normal(:,:)

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