atl_boundary_module Module

Module to collect all informations about boundary conditions. author: Jens Zudrop

We virtually create a "boundary element" outside each boundary face. They get indices larger than nElems on the respective level. These are then used in the face descriptions to refer to the "outside" element (we put the "boundary element" index into the corresponding leftpos or rightpos of the face with a boundary side).


Uses

Used by

  • module~~atl_boundary_module~~UsedByGraph module~atl_boundary_module atl_boundary_module module~atl_compute_local_module atl_compute_local_module module~atl_compute_local_module->module~atl_boundary_module module~atl_covolume_boundary_module atl_covolume_boundary_module module~atl_covolume_boundary_module->module~atl_boundary_module module~atl_cube_container_module atl_cube_container_module module~atl_cube_container_module->module~atl_boundary_module module~atl_facedata_module atl_facedata_module module~atl_facedata_module->module~atl_boundary_module module~atl_imexrk_module atl_imexrk_module module~atl_imexrk_module->module~atl_boundary_module module~atl_initialize_module atl_initialize_module module~atl_initialize_module->module~atl_boundary_module module~atl_load_project_module atl_load_project_module module~atl_load_project_module->module~atl_boundary_module module~atl_materialini_module atl_materialIni_module module~atl_materialini_module->module~atl_boundary_module module~atl_materialprp_module atl_materialPrp_module module~atl_materialprp_module->module~atl_boundary_module module~atl_modg_1d_bnd_module atl_modg_1d_bnd_module module~atl_modg_1d_bnd_module->module~atl_boundary_module module~atl_modg_1d_kernel_module atl_modg_1d_kernel_module module~atl_modg_1d_kernel_module->module~atl_boundary_module module~atl_modg_2d_bnd_module atl_modg_2d_bnd_module module~atl_modg_2d_bnd_module->module~atl_boundary_module module~atl_modg_2d_kernel_module atl_modg_2d_kernel_module module~atl_modg_2d_kernel_module->module~atl_boundary_module module~atl_modg_bnd_module atl_modg_bnd_module module~atl_modg_bnd_module->module~atl_boundary_module module~atl_modg_kernel_module atl_modg_kernel_module module~atl_modg_kernel_module->module~atl_boundary_module module~atl_parallel_module atl_parallel_module module~atl_parallel_module->module~atl_boundary_module module~atl_predcor_cerk4_module atl_predcor_cerk4_module module~atl_predcor_cerk4_module->module~atl_boundary_module module~atl_rk4_module atl_rk4_module module~atl_rk4_module->module~atl_boundary_module module~atl_rktaylor_module atl_rktaylor_module module~atl_rktaylor_module->module~atl_boundary_module module~atl_ssprk2_module atl_ssprk2_module module~atl_ssprk2_module->module~atl_boundary_module module~atl_stabilize_module atl_stabilize_module module~atl_stabilize_module->module~atl_boundary_module proc~preprocess_rhs_cubes preprocess_rhs_cubes proc~preprocess_rhs_cubes->module~atl_boundary_module

Derived Types

type, public ::  atl_bndDesc_type

Description of a certain boundary condition.

Components

Type Visibility Attributes Name Initial
type(atl_faceBnd_type), public :: faces(3,2)

Facewise description of the boundaries. First dimension is 3 for the three spatial directions. Second dimension is 2 for left and right faces.

type, public ::  atl_level_boundary_type

type to represent the different boundary conditions on the same refinement level

Components

Type Visibility Attributes Name Initial
integer, public :: nBCs

The number of boundary conditions in this description.

type(atl_bndDesc_type), public, allocatable :: bnd(:)

The boundary description. One for each different kind of boundary. To access this array, use the boundary id as index.

integer, public :: poly_proj_pos

Postition of individual projection method in the projection list

type, private ::  atl_faceBnd_type

Facewise description of the boundaries.

Components

Type Visibility Attributes Name Initial
type(grw_intarray_type), public :: facePos

Position of the faces for which the boundary condition has to be applied.

type(grw_intarray_type), public :: neighPos

Position of the neighboring fluid element.


Functions

public function atl_get_numBndElems(minLevel, maxLevel, boundary_list) result(nBndElems)

Get the number of (virtual) boundary elements for each level and each direction.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel
type(atl_level_boundary_type), intent(in) :: boundary_list(minLevel:maxLevel)

Boundary description for all levels.

Return Value integer, (minLevel:maxLevel,1:3)

The number of (virtual) boundary elements for each level and each spatial direction


Subroutines

public subroutine atl_init_elem_bnd(minLevel, maxLevel, bc_header, face_list, boundary_list, scheme_list)

Creates boundary informations for the faces.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel
type(tem_bc_header_type), intent(in) :: bc_header

The boundary condition header data as given in the mesh.

type(tem_face_type), intent(inout) :: face_list(minLevel:maxLevel)

Description of the faces

type(atl_level_boundary_type), intent(inout) :: boundary_list(minLevel:maxLevel)

The created boundary information.

type(atl_scheme_type), intent(in) :: scheme_list(minLevel:maxLevel)

Scheme information

public subroutine atl_init_bndList(conf, tree, equation, bc_prop, face_list, boundary_list, bc, bc_header, scheme_list)

Subroutine to create the levelwise list of boundaries.

Arguments

Type IntentOptional Attributes Name
type(flu_State) :: conf

Lua script to obtain the configuration data from.

type(treelmesh_type), intent(in) :: tree

global treelm mesh info

type(atl_Equations_type), intent(inout) :: equation

The equation to initialize the boundary info for.

type(tem_BC_prop_type), intent(in) :: bc_prop

The boundary properties.

type(tem_face_type), intent(inout) :: face_list(tree%global%minLevel:tree%global%maxLevel)

The description of the faces as provided by the tem_face_module

type(atl_level_boundary_type), intent(inout) :: boundary_list(tree%global%minLevel:tree%global%maxLevel)

The created boundary type.

type(atl_boundary_type), intent(out), allocatable :: bc(:)

Global description of all boundaries

type(tem_bc_header_type), intent(out) :: bc_header

The boundary condition header data as given in the mesh.

type(atl_scheme_type), intent(in) :: scheme_list(tree%global%minLevel:tree%global%maxLevel)

The scheme you are using.

public subroutine atl_fill_BCIndex(tree, bc, boundary_list, nDim, varSys, poly_proj_list, mesh_list)

Arguments

Type IntentOptional Attributes Name
type(treelmesh_type), intent(in) :: tree

global treelm mesh info

type(atl_boundary_type), intent(inout) :: bc(:)

Global description of all boundaries

type(atl_level_boundary_type), intent(in) :: boundary_list(tree%global%minLevel:tree%global%maxLevel)

The created boundary information.

integer, intent(in) :: nDim
type(tem_varSys_type), intent(in) :: varSys

The variable system to obtain the variable from.

type(ply_poly_project_type), intent(inout), target :: poly_proj_list(:)

unique list for projection methods

type(atl_cube_elem_type), intent(in) :: mesh_list(tree%global%minLevel:tree%global%maxLevel)

The mesh you are using.

private subroutine atl_init_face_bnd(minLevel, maxLevel, bc_header, face_list, boundary_list, scheme_list)

Creates boundary informations for the faces.

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel
type(tem_bc_header_type), intent(in) :: bc_header

The boundary condition header data as given in the mesh.

type(tem_face_type), intent(inout) :: face_list(minLevel:maxLevel)

Description of the faces

type(atl_level_boundary_type), intent(inout) :: boundary_list(minLevel:maxLevel)

The created boundary information.

type(atl_scheme_type), intent(in) :: scheme_list(minLevel:maxLevel)

Scheme information

private subroutine atl_get_points_from_BC(bnd, points, offset_bit, poly_proj, mesh, nDim, nQuadPnts, nFaces)

Get all the surface points for a specific boundary.

Arguments

Type IntentOptional Attributes Name
type(atl_bndDesc_type), intent(in) :: bnd
real(kind=rk), intent(out), allocatable :: points(:,:)

array of points on the specific boundray

character(len=1), intent(out), allocatable :: offset_bit(:)

offset vector for all points on the boundary, requiered for coupling

type(ply_poly_project_type), intent(in) :: poly_proj

projection list

type(atl_cube_elem_type), intent(in) :: mesh

The mesh you are using.

integer, intent(in) :: nDim

Equation nDimensions

integer, intent(in) :: nQuadPnts

Number of quadrature points on faces

integer, intent(in) :: nFaces

Number if faces on this boundary