atl_boundary_type Derived Type

type, public :: atl_boundary_type

This type describes a single boundary condition, which is described in the configuration files and attached to elements in the mesh file.


Inherits

type~~atl_boundary_type~~InheritsGraph type~atl_boundary_type atl_boundary_type grw_stringkeyvaluepairarray_type grw_stringkeyvaluepairarray_type type~atl_boundary_type->grw_stringkeyvaluepairarray_type varDict, varDict_gradient tem_bc_state_type tem_bc_state_type type~atl_boundary_type->tem_bc_state_type state, state_gradient type~atl_eqn_var_trafo_type atl_eqn_var_trafo_type type~atl_boundary_type->type~atl_eqn_var_trafo_type bc_trafo, bc_trafo_gradient

Inherited by

type~~atl_boundary_type~~InheritedByGraph type~atl_boundary_type atl_boundary_type type~atl_cube_container_type atl_cube_container_type type~atl_cube_container_type->type~atl_boundary_type bc type~atl_element_container_type atl_element_container_type type~atl_element_container_type->type~atl_cube_container_type cubes

Components

Type Visibility Attributes Name Initial
character(len=LabelLen), public :: label

A label identifying this boundary condition

character(len=LabelLen), public :: BC_kind

The kind of this boundary condition, mainly used to describe predefined boundary conditions with some default settings for some of the variables.

logical, public :: enforce_zero_grad

Method to use for the extrapolation of Neumann boundaries.

Enforce_zero_grad indicates, that the value to set for the extrapolated value of Neumann boundary conditions will be obtained by correcting the polynomial in face normal direction to have a zero gradient at the face. Otherwise the value at the face of the unmodified polynomial will be used. If this is true, the Neumann_mode_fraction will indicate how many modes to use for the extrapolation.

real(kind=rk), public :: neumann_mode_fraction

Fraction of modes to use for the extrapolation to obtain Neumann BCs.

Has to be a value between 0 and 1, where 0 means, just the integral mean (first mode) will be used for the extrapolation, and 1 means all modes except the last one are used. The last mode will be computed such, that the gradient at the boundary is null. Then the resulting value on the face is used as extrapolated value.

logical, public :: bc_normal_vec

A flag to indicate if vectorial quantities are defined in the boundary normal system.

type(tem_bc_state_type), public, allocatable :: state(:)

Boundary condition description for each of the state variables. The size of this array depends on the equation system and covers all required variables. The variables are expected to occur in the same order as in the equation system. Furthermore, in case of face normal boundary conditions, we assume that the variable normal to the face is occurring first in this array.

type(grw_stringkeyvaluepairarray_type), public :: varDict

Dictionary of boundary state variable with varDict%val()%key is the name of boundary variable and varDict%val()%value is the name of spacetime function variable

type(atl_eqn_var_trafo_type), public :: bc_trafo

Pointer to function for the necessary state variable transformation.

logical, public :: bc_normal_vec_gradient

A flag to indicate if derivatives of vectorial quantities are defined in the boundary normal system.

type(atl_eqn_var_trafo_type), public :: bc_trafo_gradient

Pointer to function for the necessary state gradient variable transformation.

Undefined if equations does not involve higher order derivatives

type(tem_bc_state_type), public, allocatable :: state_gradient(:)

Boundary condition description for each of higher order terms of the equations.

The size of this array depends on the equation system and covers all required variables and its derivatives. The variables are expected to occur in the same order as in the equation system. Furthermore, in case of face normal boundary conditions, we assume that the variable normal to the face is occurring first in this array.

type(grw_stringkeyvaluepairarray_type), public :: varDict_gradient

Dictionary of boundary state gradient variable with varDict%val()%key is the name of boundary variable and varDict%val()%value is the name of spacetime function variable.

Odd count refer to state_gradient(:,1) and Even count refer to state_gradient(:,2)