atl_materialPrp_module Module

Module for a generic description of materials in ATELES.

& atl_face_material_type, &


Uses

Used by


Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: atl_pureConstMat_prp = 1

Parameter for a face with purely constant material parameters.

integer, public, parameter :: atl_mixedMat_prp = 2

Parameter for a face with mixed materials (constant-variable or variable-constant or variable-variable face).

integer, public, parameter :: atl_ConstMatIdx = 1

The index used by the atl_material_property_type%computeElems to address the array with elements that have constant material properties.

integer, public, parameter :: atl_VarMatIdx = 2

The index used by the atl_material_property_type%computeElems to address the array with elements that have variable material properties.


Derived Types

type, public ::  atl_spacetime_fun_pointer_type

Encapsulates a pointer to an tem_spacetime_fun_type-instace. Used to create arrays of pointers.

Components

Type Visibility Attributes Name Initial
integer, public :: matVarPos

The position of the material variable in the global varSys.

integer, public :: stFunPos

The position of the space-time-function stFunPtr is pointing to in the material variable's stFunList.

type(tem_spacetime_fun_type), public, pointer :: stFunPtr

Pointer to an instance of tem_spacetime_fun_type.

type, public ::  atl_material_property_type

Levewise description of the material properties.

Components

Type Visibility Attributes Name Initial
type(atl_spacetime_fun_pointer_type), public, allocatable :: material_elems(:,:)

The material property position for all fluid elements. The first index is the element ordering, which is the same as in the total list of the level descriptor.\n The second index is the material parameter, as they are defined independently of each other.

type(atl_face_material_type), public :: material_face(3)

Information for the faces and the materials meeting at these interfaces, for each spatial direction (i.e. x y and z one entry).

type(tem_faceIterator_type), public :: computeFace(3,2)

The compute list for the material-face-combinations. First dimension is is number of spatial directions (i.e. x, y, z). Second dimension is 2 for the two different material face combinations \sq atl_pureConstMat_prp \sa atl_mixedMat_prp

type(atl_computeElem_type), public :: computeElems(2)

Create a list with element indices with constant material properties and those with variable ones. First entry covers all the elements with constant material paramters, while the second entry covers all the elements with non-constant material parameters. \sa atl_ConstMatIdx \sa atl_VarMatIdx

type(atl_boundaryMaterial_type), public :: bnd_faces(2)

The boundary face information. First entry on first index covers all boundary faces with constant material parameters. The second entry on first index covers all the boundary faces with non-constant material parameters. \sa atl_ConstMatIdx \sa atl_VarMatIdx

type, public ::  atl_faceMaterialData_type

Datatype provides information each face

Components

Type Visibility Attributes Name Initial
integer, public :: nPointsPerDir

The number of nodal points with material information per spatial direction.

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

The nodal material properties on the face for the left element. \n First dimension is the number of faces with this material info. \n Second dimension is the number of nPointsPerDir^3 \n Third dimension is the number of material components. Attention: We do not use the number of material parameters, but the number of their components, because a material parameter is not limited to consist of only one component. \n

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

The nodal material properties on the face for the right element. \n First dimension is the number of faces with this material info. \n Second dimension is the number of nPointsPerDir^3 \n Third dimension is the number of material components. Attention: We do not use the number of material parameters, but the number of their components, because a material parameter is not limited to consist of only one component. \n

type, public ::  atl_materialData_type

Datatype to provide material parameter information

Components

Type Visibility Attributes Name Initial
type(atl_elemMaterialData_type), public :: elemMaterialData(2)

Material parameter information for each fluid element. \n First entry covers all the constant material parameters, second entry covers all non-constant material parmaters. \sa atl_ConstMatIdx \sa atl_VarMatIdx

type(atl_faceMaterialData_type), public :: faceMaterialData(3,2)

Material parameter information for the compute faces.\n First dimension is the number of face directions, i.e. x y and z. Second dimension covers the material combinations, i.e.: First entry covers all the constant material parameters, second entry covers all non-constant material parmaters.

logical, public, allocatable :: mode_reducable(:)

Indicates whether this element fulfills all prerequisites to be computed with a lower resolution.

type, public ::  atl_init_material_type

This type is used to set the material up. It contains information from each equation systems that are used to process the information from the configuration file. Once the materials are added to the variable system, the information contained in here are not needed anymore, thus are not stored in another, longer persisting type.

Components

Type Visibility Attributes Name Initial
type(tem_possible_variable_type), public :: poss_materialVars

The possible material property.

type(grw_stringkeyvaluepairarray_type), public :: materialDict

This dictionary is used to map variables from the variable system to source variables to be used as data source.

type, public ::  atl_material_type

Levelwise description of the material parameters in the mesh.

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: maxPropSpeed

The maximum information propagation speed of all materials (used for calculation of the timesteps), i.e. the maximum speed of light)

type(atl_material_property_type), public :: material_desc

Description of all materials in the mesh.

type(atl_materialData_type), public :: material_dat

Material parameter data for all relevant elements and faces in the mesh.

integer, public :: poly_proj_pos

Postition of individual projection method in the projection list

integer, public :: poly_proj_pos_state2Mat

Postition of individual projection method in the projection list

type, private ::  atl_face_material_type

Description of the material properties adjacent to a faces.

Components

Type Visibility Attributes Name Initial
type(atl_spacetime_fun_pointer_type), public, allocatable :: mat(:,:,:)

The material positions for all the faces of the face desciption for left and right element. \n Therefore the dimensions are: \li First dimension is the number of faces \li Second dimension is the 2 for left and right element. \sa tem_left \sa tem_right The third index is do determine between the different material paramters.

type, private ::  atl_computeElem_type

List of elements that are relevant for the computation.

Components

Type Visibility Attributes Name Initial
integer, public :: nElems = 0

The number of elements in this container

integer, public, allocatable :: totElemIndices(:)

Fluid element indices in the total list of level descriptor

type, private ::  atl_boundaryMaterial_type

Boundary (face) material description.

Components

Type Visibility Attributes Name Initial
type(atl_level_boundary_type), public :: boundary

Boundary face description.

type, private ::  atl_elemMaterialData_type

Datatype provides information each

Components

Type Visibility Attributes Name Initial
integer, public :: nPointsPerDir

The number of nodal points with material information per spatial direction.

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

The nodal material properties. \n First dimension is the number of elements with this material info. \n Second dimension is the number of nPointsPerDir^3 \n Third dimension is the number of material components. Attention: We do not use the number of material parameters, but the number of their components here, because a material parameter is not limited to consist of only one component. The ordering of the material components is also not fixed, but depends on the order of the material parameter definition in the configuration file.