atl_cube_container_module Module

This module provides central Ateles data type, containing the various data of the simulation.

The idea is to support different element types in the mesh, and collect them in the container_module#element_container_type.


Uses

Used by

  • module~~atl_cube_container_module~~UsedByGraph module~atl_cube_container_module atl_cube_container_module module~atl_container_module atl_container_module module~atl_container_module->module~atl_cube_container_module module~atl_time_integration_module atl_time_integration_module module~atl_container_module->module~atl_time_integration_module module~atl_global_time_integration_module atl_global_time_integration_module module~atl_container_module->module~atl_global_time_integration_module module~atl_physcheck_module atl_physCheck_module module~atl_container_module->module~atl_physcheck_module module~atl_fwdeuler_module atl_fwdEuler_module module~atl_fwdeuler_module->module~atl_cube_container_module module~atl_fwdeuler_module->module~atl_time_integration_module module~atl_imexrk_module atl_imexrk_module module~atl_imexrk_module->module~atl_cube_container_module module~atl_imexrk_module->module~atl_time_integration_module module~atl_initial_condition_module atl_initial_condition_module module~atl_initial_condition_module->module~atl_cube_container_module module~atl_predcor_cerk4_module atl_predcor_cerk4_module module~atl_predcor_cerk4_module->module~atl_cube_container_module module~atl_predcor_cerk4_module->module~atl_time_integration_module module~atl_restart_module atl_restart_module module~atl_restart_module->module~atl_cube_container_module module~atl_rk4_module atl_rk4_module module~atl_rk4_module->module~atl_cube_container_module module~atl_rk4_module->module~atl_time_integration_module module~atl_rktaylor_module atl_rktaylor_module module~atl_rktaylor_module->module~atl_cube_container_module module~atl_rktaylor_module->module~atl_time_integration_module module~atl_ssprk2_module atl_ssprk2_module module~atl_ssprk2_module->module~atl_cube_container_module module~atl_ssprk2_module->module~atl_time_integration_module module~atl_time_integration_module->module~atl_cube_container_module module~atl_calc_time_module atl_calc_time_module module~atl_calc_time_module->module~atl_time_integration_module module~atl_global_time_integration_module->module~atl_fwdeuler_module module~atl_global_time_integration_module->module~atl_imexrk_module module~atl_global_time_integration_module->module~atl_predcor_cerk4_module module~atl_global_time_integration_module->module~atl_rk4_module module~atl_global_time_integration_module->module~atl_rktaylor_module module~atl_global_time_integration_module->module~atl_ssprk2_module module~atl_global_time_integration_module->module~atl_time_integration_module module~atl_initialize_module atl_initialize_module module~atl_initialize_module->module~atl_container_module module~atl_initialize_module->module~atl_initial_condition_module module~atl_initialize_module->module~atl_restart_module module~atl_physcheck_module->module~atl_time_integration_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_container_module module~atl_program_module->module~atl_restart_module module~atl_program_module->module~atl_calc_time_module module~atl_program_module->module~atl_global_time_integration_module module~atl_program_module->module~atl_initialize_module module~atl_program_module->module~atl_physcheck_module program~ateles ateles program~ateles->module~atl_container_module program~ateles->module~atl_program_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_container_module program~atl_harvesting->module~atl_restart_module program~atl_harvesting->module~atl_initialize_module program~atl_harvesting->module~atl_program_module

Derived Types

type, public ::  atl_cube_container_type

Container type collecting all the data of the simulation domain which have cubic cells.

Read more…

Components

Type Visibility Attributes Name Initial
integer, public :: minLevel
integer, public :: maxLevel
integer, public :: nlists = 0

the number of list we have in this container. This is the number of levels with nonzero number of elements (i.e. maxLevel - minLevel)

type(atl_statedata_type), public, allocatable :: statedata_list(:)

List of the solver state. This includes information about the timepoints and the description of the equation state (e.g. in model representation). Indices are running from minLevel to maxLevel.

type(atl_facedata_type), public, allocatable :: facedata_list(:)

List of solver state on the faces. Indices are running from minLevel to maxLevel.

type(atl_level_boundary_type), public, allocatable :: boundary_stab_list(:)

List of boundaries for the current part of the cubic mesh its stabilization. The boundary informations are stored for each refinement level seperately. Therefore the dimension of this array is nlists. Indices are running from minLevel to maxLevel.

type(atl_statedata_type), public, allocatable :: statedata_stab_list(:,:)

Statedata of the stabilization. Indices are running from minLevel to maxLevel.

type(atl_kerneldata_type), public, allocatable :: kerneldata_list(:)

List of the states of the kernels. This includes data that is used in the kernel itself (e.g. for reconstruction, etc.). It might be necessary to transfer the data during each computation of the right hand side. Indices are running from minLevel to maxLevel.

type(atl_penalizationData_type), public, allocatable :: penalizationdata_list(:)

List of penalization data. This includes all data that is used for penalizations (e.g. Brinkmann penalizations of the Navier-Stokes equations). Indices are running from minLevel to maxLevel.

type(atl_cube_elem_type), public, allocatable :: mesh_list(:)

List of meshes of the different kernels. We can have multiple kernels e.g. for each refinement level, polynomial degree, etc. . The states of the kernels of mesh_list(index) are located inside kerneldata_list(index). This separation was done to enable a generic kernel interface. Indices are running from minLevel to maxLevel.

type(atl_level_boundary_type), public, allocatable :: boundary_list(:)

List of boundaries for the current part of the cubic mesh. The boundary informations are stored for each refinement level seperately. Therefore the dimension of this array is nlists. Indices are running from minLevel to maxLevel.

type(atl_boundary_type), public, allocatable :: bc(:)

Global description of the boundary conditions. Size is the number of boundary conditions.

type(atl_source_type), public :: source
type(atl_material_type), public, allocatable :: material_list(:)

List of material parameter information for the mesh. One entry for level, running from minlevel to maxlevel.

type(atl_material_type), public, allocatable :: penalization_list(:)
integer, public, allocatable :: levelPointer(:)

Pointer from treeIDlist entry to level-wise fluid part of total list. The length of this vector is the total number of cubic elements.

type(atl_scheme_type), public, allocatable :: scheme_list(:)

All informations about the scheme for each level, e.g. for PNPM we store in this variable n and m and many others.... For a detailed description you should have a look at the documentation of the atl_scheme_type. Indices are runnging from minLevel to maxLevel.

integer, public, allocatable :: poly_proj_pos(:)

Gives the position of the levelwise projection method in the unique list of projections.

logical, public :: need_element_deviations = .false.

Indication whether to compute the maximal deviation in the polynomials of each element.


Subroutines

public subroutine atl_init_cube_container(tree, boundary, cube_container, conf, equation, proc, commPattern, need_element_deviations)

Method to initialize a cube mesh by tree and boundary definitions obtained by treelm.

Read more…

Arguments

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

The tree representation of your mesh.

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

The boundaries of your simulation domain

type(atl_cube_container_type), intent(inout) :: cube_container

The container with all cubic elements, generated with this routine.

type(flu_State), intent(in) :: conf

Handle for the Lua config file

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

The equation you are simulating.

type(tem_comm_env_type) :: proc

mpi communication environment with mpi communicator

type(tem_commPattern_type) :: commPattern

mpi communication pattern type

logical, intent(in) :: need_element_deviations