atl_materialIni_module Module


Uses

Used by

  • module~~atl_materialini_module~~UsedByGraph module~atl_materialini_module atl_materialIni_module module~atl_modg_1d_kernel_module atl_modg_1d_kernel_module module~atl_modg_1d_kernel_module->module~atl_materialini_module module~atl_modg_2d_kernel_module atl_modg_2d_kernel_module module~atl_modg_2d_kernel_module->module~atl_materialini_module module~atl_initialize_module atl_initialize_module module~atl_initialize_module->module~atl_materialini_module module~atl_container_module atl_container_module module~atl_initialize_module->module~atl_container_module module~atl_modg_kernel_module atl_modg_kernel_module module~atl_modg_kernel_module->module~atl_materialini_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_initialize_module module~atl_program_module->module~atl_container_module module~atl_compute_local_module atl_compute_local_module module~atl_compute_local_module->module~atl_modg_kernel_module proc~modg_1d_compute_project_physflux modg_1d_compute_project_physFlux proc~modg_1d_compute_project_physflux->module~atl_modg_1d_kernel_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_initialize_module program~atl_harvesting->module~atl_program_module program~atl_harvesting->module~atl_container_module proc~compute_rhs_cubes_modg_2d compute_rhs_cubes_modg_2d proc~compute_rhs_cubes_modg_2d->module~atl_modg_2d_kernel_module proc~compute_rhs_cubes_modg compute_rhs_cubes_modg proc~compute_rhs_cubes_modg->module~atl_modg_kernel_module proc~postprocess_rhs_cubes postprocess_rhs_cubes proc~postprocess_rhs_cubes->module~atl_modg_1d_kernel_module proc~postprocess_rhs_cubes->module~atl_modg_2d_kernel_module proc~postprocess_rhs_cubes->module~atl_modg_kernel_module module~atl_container_module->module~atl_modg_1d_kernel_module module~atl_container_module->module~atl_modg_2d_kernel_module module~atl_container_module->module~atl_modg_kernel_module proc~compute_rhs_cubes_modg_1d compute_rhs_cubes_modg_1d proc~compute_rhs_cubes_modg_1d->module~atl_modg_1d_kernel_module proc~preprocess_rhs_cubes preprocess_rhs_cubes proc~preprocess_rhs_cubes->module~atl_modg_1d_kernel_module proc~preprocess_rhs_cubes->module~atl_modg_2d_kernel_module proc~preprocess_rhs_cubes->module~atl_modg_kernel_module program~ateles ateles program~ateles->module~atl_program_module program~ateles->module~atl_container_module module~atl_predcor_cerk4_module atl_predcor_cerk4_module module~atl_predcor_cerk4_module->module~atl_compute_local_module module~atl_global_time_integration_module atl_global_time_integration_module module~atl_global_time_integration_module->module~atl_predcor_cerk4_module

Contents


Subroutines

public subroutine atl_append_newMaterialVars(varSys, varSys_data, poss_matVars, materialFun, variables)

Adds the configured material variables to the variable system.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(tem_varSys_type), intent(inout) :: varSys

The variable system to which the souce variables have to be added

type(atl_varSys_solverData_type), intent(inout), target:: varSys_data

Data of the variable System index of the eval-source_routine in eval_source.

type(tem_possible_variable_type) :: poss_matVars
type(atl_materialFun_type), intent(inout) :: materialFun
type(grw_stringkeyvaluepairarray_type), intent(inout) :: variables

public subroutine atl_init_materialParams(equation, tree, varSys_data, material_list, mesh_list, scheme_list, boundary_list, time, conf, proc, commPattern, poly_proj_list, levelPointer, initMaterial)

Read the configuration for the material paramters for Maxwell equations from configuration files and init the material parameter datatype.

Arguments

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

Description on the equation system to solve.

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

Mesh data in treelmesh format.

type(atl_varSys_solverData_type), intent(inout) :: varSys_data

Data in variable system

type(atl_material_type), intent(inout) :: material_list(tree%global%minLevel:tree%global%maxLevel)

The description of the material properties. The compute lists in the material description is filled up by calling this subroutine.

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

Description of the mesh

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

Information about the scheme

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

Global description of the boundary conditions.

type(tem_time_type), intent(in) :: time

The current simulation time

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

Flu binding to configuration file.

type(tem_comm_env_type), intent(inout) :: proc

mpi communication environment with mpi communicator

type(tem_commPattern_type), intent(inout) :: commPattern

mpi communication pattern type

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

unique list for projection methods

integer, intent(in) :: 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_init_material_type) :: initMaterial

Information about expected material parameters and the user defined variables to the expected material parameters.

public subroutine atl_update_materialParams(equation, mesh, scheme, boundary, material, time, poly_proj, proc, commPattern)

Read the configuration for the material paramters for Maxwell equations from configuration files and init the material parameter datatype.

Arguments

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

Description on the equation system to solve.

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

Description of the mesh

type(atl_scheme_type), intent(in) :: scheme

Information about the scheme

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

Global description of the boundary conditions.

type(atl_material_type), intent(inout) :: material

The description of the material properties. The compute lists in the material description is filled up by calling this subroutine.

type(tem_time_type), intent(in) :: time

The current simulation time

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

unique list for projection methods

type(tem_comm_env_type), intent(inout) :: proc

mpi communication environment with mpi communicator

type(tem_commPattern_type), intent(inout) :: commPattern

mpi communication pattern type

public subroutine atl_create_materialElemList(tree, levelPointer, material_list, varSys, materials, materialFun)

Subroutine to create element index list for constant and non-constant material parameters.

Read more…

Arguments

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

Mesh data in treelmesh format.

integer, intent(in) :: levelPointer(:)

The levelPointer contains the indizes on the levelwise fluid list for all treeID entries.

type(atl_material_type), intent(inout) :: material_list(tree%global%minLevel:tree%global%maxLevel)

The description of the material properties. This routine fills the compute lists in the material description.

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

global variable system to which lua variables are to be appended

character(len=labelLen), intent(in) :: materials(:)

The list of the variables that should be used as materials. The indizes of variables in the global varSys that are used as material's, penalization's or whatever's data sources.

This data is needed to calculate the number of total material components.

type(atl_materialFun_type), intent(inout) :: materialFun

private subroutine atl_getMaterialForElement(fun, varSys, elempos, time, tree, nElems, nDofs, res)

This routine implements the getElement interface for material variables.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the spacetime function to use or the required variables.

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

The variable system to obtain the variable from.

integer, intent(in) :: elempos(:)

Position of the TreeID of the element to get the variable for in the global treeID list.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

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

global treelm mesh info

integer, intent(in) :: nElems

Number of values to obtain for this variable (vectorized access).

integer, intent(in) :: nDofs

Number of degrees of freedom within an element.

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Linearized array dimension: (n requested entries) x (nComponents of this variable) x (nDegrees of freedom) Access: (iElem-1)fun%nComponentsnDofs + (iDof-1)*fun%nComponents + iComp

private subroutine atl_getMaterialForPoint(fun, varSys, point, time, tree, nPnts, res)

This routine implements the getPoint interface for material variables.

Read more…

Arguments

TypeIntentOptionalAttributesName
class(tem_varSys_op_type), intent(in) :: fun

Description of the method to obtain the variables, here some preset values might be stored, like the spacetime function to use or the required variables.

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

The variable system to obtain the variable from.

real(kind=rk), intent(in) :: point(:,:)

Three-dimensional coordinates at which the variable should be evaluated. Only useful for variables provided as space-time functions.

type(tem_time_type), intent(in) :: time

Point in time at which to evaluate the variable.

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

global treelm mesh info

integer, intent(in) :: nPnts

Number of values to obtain for this variable (vectorized access).

real(kind=rk), intent(out) :: res(:)

Resulting values for the requested variable.

Dimension: n requested entries x nComponents of this variable Access: (iElem-1)*fun%nComponents + iComp

private subroutine atl_reassignStFunPtr(varSys, tree, material_list, iLevel, iDir, iMat)

Reassigns the spacetime function pointers based on the material variable position and the spacetime function position.

Arguments

TypeIntentOptionalAttributesName
type(tem_varSys_type), intent(in) :: varSys

global variable system to which luaVar to be appended

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

Mesh data in treelmesh format.

type(atl_material_type), intent(inout) :: material_list(tree%global%minLevel:tree%global%maxLevel)

The description of the material properties. The compute lists in the material description is filled up by calling this subroutine.

integer, intent(in) :: iLevel
integer, intent(in) :: iDir
integer, intent(in) :: iMat

private subroutine atl_assign_elem_varProp(tree, mesh_list, affection_list, levelPointer, varSys, materialFun)

Assign reference to spacetime functions to the affected elements. This means: The position of the variable in the variable system, which reflects the spacetime function is determined and assigned to the element_list.

Read more…

Arguments

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

The global description of the tree.

type(atl_cube_elem_type), intent(in) :: mesh_list(tree%global%minlevel:tree%global%maxlevel)

List of mesh for different kernels

type(atl_material_type), intent(inout) :: affection_list(tree%global%minlevel:tree%global%maxlevel)

The description of the material properties on the element basis.

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

global variable system to which luaVar to be appended

type(atl_materialFun_type), intent(in) :: materialFun

The list of material variable indizes.

private subroutine atl_evalFaceMaterial(mesh, scheme, material, materialFun, time, spatial_dim, poly_proj, time_weights)

Subroutine to evaluate the material properties on the nodes of the compute faces (left and right element's trace).

Arguments

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

Description of the mesh

type(atl_scheme_type), intent(in) :: scheme

Information about the scheme

type(atl_material_type), intent(inout) :: material

The description of the material properties. The compute lists in the material description is filled up by calling this subroutine. The indizes of variables in the global varSys that are used as material's, penalization's or whatever's data sources.

This data is needed to calculate the number of total material components.

type(atl_materialFun_type), intent(in) :: materialFun
type(tem_time_type), intent(in) :: time

The current simulation time

integer, intent(in) :: spatial_dim

The spatial dimension

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

Projection method for current level

logical, intent(in), optional :: time_weights

private subroutine atl_evalElemMaterial(mesh, scheme, material, materialFun, time, poly_proj, mode_reduction, time_weights, proc, commPattern)

Evaluates the material properties for all elements contained in the computeElems variable of the material_desc datatype.

Read more…

Arguments

TypeIntentOptionalAttributesName
type(atl_cube_elem_type), intent(inout) :: mesh

Description of the mesh

type(atl_scheme_type), intent(in) :: scheme

Information about the scheme

type(atl_material_type), intent(inout) :: material

The description of the material properties. The compute lists in the material description is filled up by calling this subroutine. The indizes of variables in the global varSys that are used as material's, penalization's or whatever's data sources.

This data is needed to calculate the number of total material components.

type(atl_materialFun_type), intent(in) :: materialFun
type(tem_time_type), intent(in) :: time

The current simulation time

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

Projection method for current level

type(atl_mode_reduction_type), intent(in) :: mode_reduction

Settings for mode reduction. Used to determine which element can be calculated with reduced computational effort due to mode reduction.

logical, intent(in), optional :: time_weights
type(tem_comm_env_type), intent(inout) :: proc

Communication environment

type(tem_commPattern_type), intent(inout) :: commPattern

mpi communication pattern type

private subroutine atl_create_materialBoundaryList(material, materialFun, boundary, mesh, time_weights)

Create separate compute list for constant-constant, constant-variable (or vice versa) and variable-variable material parameter compute faces on this rank.

Arguments

TypeIntentOptionalAttributesName
type(atl_material_type), intent(inout) :: material

The description of the material properties. The compute lists in the material description is filled up by calling this subroutine. The indizes of variables in the global varSys that are used as material's, penalization's or whatever's data sources.

This data is needed to calculate the number of total material components.

type(atl_materialFun_type), intent(in) :: materialFun
type(atl_level_boundary_type), intent(in) :: boundary

Boundary description for the all the levels.

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

Description of the mesh

logical, intent(in), optional :: time_weights

private subroutine atl_create_materialComputeList(mesh, spatial_dim, material, materialFun)

Create separate compute list for constant-constant, constant-variable (or vice versa) and variable-variable material parameter compute faces on this rank.

Arguments

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

Description of the mesh

integer, intent(in) :: spatial_dim

The spatial dimension

type(atl_material_type), intent(inout) :: material

The description of the material properties. The compute lists in the material description is filled up by calling this subroutine. The indizes of variables in the global varSys that are used as material's, penalization's or whatever's data sources.

This data is needed to calculate the number of total material components.

type(atl_materialFun_type), intent(in) :: materialFun

private subroutine atl_assign_face_matPrp(minLevel, maxLevel, mesh_list, currentLevel, spatial_dim, material_list, materialFun)

Define material properties for the faces of all fluid elements and inherit the face material property to all ghost elements on the finer level.

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: minLevel
integer, intent(in) :: maxLevel
type(atl_cube_elem_type), intent(in) :: mesh_list(minlevel:maxlevel)

List of mesh for different kernels

integer, intent(in) :: currentLevel

currentLevel

integer, intent(in) :: spatial_dim

The spatial dimension

type(atl_material_type), intent(inout) :: material_list(minlevel:maxlevel)

The description of the material properties on the element basis. The indices of variables in the global varSys that are used as material's, penalization's or whatever's data sources.

This data is needed to calculate the number of total material components.

type(atl_materialFun_type), intent(in) :: materialFun