tem_global_module Module

This module provides the global part of the TREe based ELemental Mesh, which is needed on each partition.


Uses

  • module~~tem_global_module~~UsesGraph module~tem_global_module tem_global_module aot_out_module aot_out_module module~tem_global_module->aot_out_module aot_table_module aot_table_module module~tem_global_module->aot_table_module aotus_module aotus_module module~tem_global_module->aotus_module module~env_module env_module module~tem_global_module->module~env_module module~tem_aux_module tem_aux_module module~tem_global_module->module~tem_aux_module module~tem_logging_module tem_logging_module module~tem_global_module->module~tem_logging_module module~tem_prophead_module tem_prophead_module module~tem_global_module->module~tem_prophead_module mpi mpi module~tem_global_module->mpi module~env_module->aotus_module module~env_module->mpi flu_binding flu_binding module~env_module->flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env module~tem_aux_module->aot_table_module module~tem_aux_module->aotus_module module~tem_aux_module->module~env_module module~tem_aux_module->module~tem_logging_module module~tem_aux_module->mpi module~tem_aux_module->flu_binding module~soi_revision_module soi_revision_module module~tem_aux_module->module~soi_revision_module module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~tem_lua_requires_module tem_lua_requires_module module~tem_aux_module->module~tem_lua_requires_module module~tem_tools_module tem_tools_module module~tem_aux_module->module~tem_tools_module module~tem_logging_module->aot_table_module module~tem_logging_module->aotus_module module~tem_logging_module->module~env_module module~tem_prophead_module->aot_out_module module~tem_prophead_module->aot_table_module module~tem_prophead_module->aotus_module module~tem_prophead_module->module~env_module module~tem_prophead_module->mpi module~tem_comm_env_module->mpi module~tem_lua_requires_module->aot_table_module module~tem_lua_requires_module->aotus_module module~tem_lua_requires_module->module~env_module module~tem_lua_requires_module->flu_binding iso_c_binding iso_c_binding module~tem_lua_requires_module->iso_c_binding module~tem_tools_module->module~env_module

Used by

  • module~~tem_global_module~~UsedByGraph module~tem_global_module tem_global_module module~tem_restart_module tem_restart_module module~tem_restart_module->module~tem_global_module module~tem_subtree_type_module tem_subTree_type_module module~tem_subtree_type_module->module~tem_global_module module~treelmesh_module treelmesh_module module~treelmesh_module->module~tem_global_module

Derived Types

type, public ::  tem_global_type

A datatype describing the global mesh information, present in all partitions (on all processes).

Read more…

Components

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

Length of the outermost bounding cube

real(kind=rk), public :: Origin(3)

Origin of the cube, extent of length in each direction from this point.

real(kind=rk), public :: effOrigin(3) = 0._rk

Origin of the cube which is effectively covered by tree elements

real(kind=rk), public :: effLength(3) = 0._rk

Length of the hexahedral domain which is effectively covered by tree elements

character(len=labelLen), public :: predefined = ''

name of the predefined mesh generated on the fly

integer(kind=long_k), public :: nElems

total number of elements

integer, public :: nParts

Number of parts, the mesh is partitioned into !< process%comm_size

integer, public :: myPart

The part to be processed locally (0:nParts-1) !< process%rank

integer, public :: comm

MPI communicator of the processes, the mesh is distributed on

integer, public :: minLevel

Minimal element level present in the mesh

integer, public :: maxLevel

Maximal element level present in the mesh

character(len=LabelLen), public :: label

Name of the mesh

character(len=LabelLen), public :: comment

Space for comments

integer, public :: nProperties

Total number of properties present in the mesh properties: fluid, solid, has boundaries, has elements, is deformed

real(kind=rk), public :: effboundingCube(3,2)

The information of real bounding cube which is read from the mesh header

type(tem_prophead_type), public, pointer :: Property(:) => null()

declarations for each property (The bit position of the flag for the property, the total number of elements with it, and label for its declaration). For a detailed description see \ref tem_property_module

character(len=pathlen), public :: dirname

Name of the directory, where the data for the mesh is read from. Has to have a trailing directory separator.

logical, public :: meshChange = .false.

did the mesh changed since last time dumping it??


Subroutines

public subroutine tem_mesh_out(me, conf)

write mesh information into lua file.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(in) :: me

Structure to store header in

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

aotus lua state to write output

public subroutine tem_global_mesh_read(me, conf, myPart, nParts, comm)

Add description

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(out) :: me

Structure to store header in

type(flu_State) :: conf

lua flu state to read mesh from

integer, intent(in) :: myPart

The process local part (= MPI Rank in comm)

integer, intent(in) :: nParts

Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm).

integer, intent(in) :: comm

MPI Communicator to use

public subroutine load_tem_global(me, dirname, myPart, nParts, comm)

A routine to load global informations from the header file in the given directory.

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(out) :: me

Structure to store header in

character(len=*), intent(in) :: dirname

Directory containing the mesh informations

integer, intent(in) :: myPart

The process local part (= MPI Rank in comm)

integer, intent(in) :: nParts

Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm).

integer, intent(in) :: comm

MPI Communicator to use

public subroutine tem_global_mesh_free(me)

Routine to free allocated memory for the header again.

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(inout) :: me

public subroutine dump_tem_global(me, root_only)

A routine to dump global informations into the mesh header in lua format

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(in) :: me

global type to be dumped

logical, intent(in), optional :: root_only

root dump global mesh when true and all process dump its own mesh when false

private subroutine tem_global_mesh_internal(me, conf, thandle, myPart, nParts, comm)

Add description

Read more…

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(out) :: me

Structure to load the mesh to

type(flu_State) :: conf

Directory containing the mesh informations

integer, intent(in) :: thandle

Handle for the table to read the description of the mesh from.

integer, intent(in) :: myPart

Partition to use on the calling process (= MPI Rank in comm)

integer, intent(in) :: nParts

Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm).

integer, intent(in) :: comm

MPI Communicator to use

private subroutine gen_treelm_cube_global(me, conf, thandle, myPart, nParts, comm)

Generate the header for the simple full cube mesh.

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(out) :: me

Structure to load the mesh to

type(flu_State) :: conf

Directory containing the mesh informations

integer, intent(in) :: thandle

Handle for the table to read the description of the mesh from.

integer, intent(in) :: myPart

Partition to use on the calling process (= MPI Rank in comm)

integer, intent(in) :: nParts

Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm).

integer, intent(in) :: comm

MPI Communicator to use

private subroutine gen_treelm_slice_global(me, conf, thandle, myPart, nParts, comm)

Generate the simple single level mesh of a slice in the full cube.

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(out) :: me

Structure to load the mesh to

type(flu_State) :: conf

Directory containing the mesh informations

integer, intent(in) :: thandle

Handle for the table to read the description of the mesh from.

integer, intent(in) :: myPart

Partition to use on the calling process (= MPI Rank in comm)

integer, intent(in) :: nParts

Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm).

integer, intent(in) :: comm

MPI Communicator to use

private subroutine gen_treelm_line_global(me, conf, thandle, myPart, nParts, comm, predefined)

Generate the simple single level mesh of a line in the full cube.

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(out) :: me

Structure to load the mesh to

type(flu_State) :: conf

Directory containing the mesh informations

integer, intent(in) :: thandle

Handle for the table to read the description of the mesh from.

integer, intent(in) :: myPart

Partition to use on the calling process (= MPI Rank in comm)

integer, intent(in) :: nParts

Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm).

integer, intent(in) :: comm

MPI Communicator to use

character(len=*), intent(in) :: predefined

private subroutine gen_treelm_single_global(me, conf, thandle, myPart, nParts, comm)

Generate the single element mesh.

Arguments

Type IntentOptional Attributes Name
type(tem_global_type), intent(out) :: me

Structure to load the mesh to

type(flu_State) :: conf

Directory containing the mesh informations

integer, intent(in) :: thandle

Handle for the table to read the description of the mesh from.

integer, intent(in) :: myPart

Partition to use on the calling process (= MPI Rank in comm)

integer, intent(in) :: nParts

Number of partitions, the mesh is partitioned into (= Number of MPI processes in comm).

integer, intent(in) :: comm

MPI Communicator to use