tem_subTree_type_module Module

Module for the subTree datatype.

The subTree datatype consists of an array of pointers (map2global) to the list of treeIDs of an actual tree in treelmesh format, global information on the subTree,


Uses

  • module~~tem_subtree_type_module~~UsesGraph module~tem_subtree_type_module tem_subTree_type_module module~tem_global_module tem_global_module module~tem_subtree_type_module->module~tem_global_module module~tem_aux_module tem_aux_module module~tem_subtree_type_module->module~tem_aux_module module~tem_property_module tem_property_module module~tem_subtree_type_module->module~tem_property_module module~treelmesh_module treelmesh_module module~tem_subtree_type_module->module~treelmesh_module module~env_module env_module module~tem_subtree_type_module->module~env_module module~tem_logging_module tem_logging_module module~tem_subtree_type_module->module~tem_logging_module mpi mpi module~tem_subtree_type_module->mpi module~tem_global_module->module~tem_aux_module module~tem_global_module->module~env_module module~tem_global_module->module~tem_logging_module module~tem_global_module->mpi module~aot_table_module aot_table_module module~tem_global_module->module~aot_table_module module~aotus_module aotus_module module~tem_global_module->module~aotus_module module~tem_prophead_module tem_prophead_module module~tem_global_module->module~tem_prophead_module module~aot_out_module aot_out_module module~tem_global_module->module~aot_out_module module~tem_aux_module->module~env_module module~tem_aux_module->module~tem_logging_module module~tem_aux_module->mpi module~tem_revision_module tem_revision_module module~tem_aux_module->module~tem_revision_module module~tem_comm_env_module tem_comm_env_module module~tem_aux_module->module~tem_comm_env_module module~flu_binding flu_binding module~tem_aux_module->module~flu_binding module~tem_aux_module->module~aot_table_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_aux_module->module~aotus_module module~tem_property_module->module~env_module module~tem_property_module->mpi module~tem_property_module->module~tem_prophead_module module~treelmesh_module->module~tem_global_module module~treelmesh_module->module~tem_aux_module module~treelmesh_module->module~tem_property_module module~treelmesh_module->module~env_module module~treelmesh_module->module~tem_logging_module module~treelmesh_module->mpi module~tem_sparta_module tem_Sparta_module module~treelmesh_module->module~tem_sparta_module module~tem_topology_module tem_topology_module module~treelmesh_module->module~tem_topology_module module~treelmesh_module->module~aot_table_module module~treelmesh_module->module~tem_tools_module module~treelmesh_module->module~aotus_module module~env_module->mpi module~env_module->module~flu_binding iso_fortran_env iso_fortran_env module~env_module->iso_fortran_env module~env_module->module~aotus_module module~tem_logging_module->module~env_module module~tem_logging_module->module~aot_table_module module~tem_logging_module->module~aotus_module module~tem_sparta_module->module~tem_aux_module module~tem_sparta_module->module~env_module module~tem_sparta_module->module~tem_logging_module module~tem_sparta_module->mpi module~tem_float_module tem_float_module module~tem_sparta_module->module~tem_float_module module~tem_topology_module->module~env_module module~tem_comm_env_module->mpi module~tem_lua_requires_module->module~env_module module~tem_lua_requires_module->module~flu_binding module~tem_lua_requires_module->module~aot_table_module module~tem_lua_requires_module->module~aotus_module iso_c_binding iso_c_binding module~tem_lua_requires_module->iso_c_binding module~tem_tools_module->module~env_module module~tem_prophead_module->module~env_module module~tem_prophead_module->mpi module~tem_prophead_module->module~aot_table_module module~tem_prophead_module->module~aotus_module module~tem_prophead_module->module~aot_out_module module~tem_float_module->module~env_module

Used by

  • module~~tem_subtree_type_module~~UsedByGraph module~tem_subtree_type_module tem_subTree_type_module module~tem_refining_module tem_refining_module module~tem_refining_module->module~tem_subtree_type_module module~hvs_ascii_module hvs_ascii_module module~hvs_ascii_module->module~tem_subtree_type_module module~hvs_vtk_module~2 hvs_vtk_module module~hvs_vtk_module~2->module~tem_subtree_type_module module~tem_restart_module tem_restart_module module~tem_restart_module->module~tem_subtree_type_module module~tem_geometry_module tem_geometry_module module~tem_geometry_module->module~tem_subtree_type_module module~hvs_output_module hvs_output_module module~hvs_output_module->module~tem_subtree_type_module module~tem_spacetime_fun_module tem_spacetime_fun_module module~tem_spacetime_fun_module->module~tem_subtree_type_module module~hvs_vtk_module hvs_vtk_module module~hvs_vtk_module->module~tem_subtree_type_module module~tem_vrtx_module tem_vrtx_module module~tem_vrtx_module->module~tem_subtree_type_module module~tem_subtree_module tem_subTree_module module~tem_subtree_module->module~tem_subtree_type_module module~tem_tracking_module tem_tracking_module module~tem_tracking_module->module~tem_subtree_type_module module~tem_convergence_module tem_convergence_module module~tem_convergence_module->module~tem_subtree_type_module

Contents


Derived Types

type, public :: tem_subTree_type

Datatype for sub trees incl. local and global information as well as an array of pointers to the global list of treeIDs

Components

TypeVisibilityAttributesNameInitial
type(tem_global_type), private :: global

This entry provides some global informations on the mesh, which is needed across all partitions.

integer, private :: nElems

Total number of elements on this partition

integer, private :: nPoints

Total number of points on this partition

integer(kind=long_k), private :: glob_nPoints

Total number of points on this subTree

real(kind=rk), private, allocatable:: points(:,:)

(n, 3) array to store coordinate points for tracking

logical, private :: useGlobalMesh =.False.

does the subTree correspond with the corresponding one (valid for shape='all')

integer, private, allocatable:: map2global(:)

Position of the treeID in the corresponding tree on the partition only set for useGlobalMesh == False and useLocalShape == False

logical, private :: useLocalMesh =.False.

Does the subTree correspond local partition?

logical, private :: created_new_comm =.false.

Flag to indicate, whether a new communicator was created for this subtree.

integer(kind=long_k), private, allocatable:: treeID(:)

Actual array of treeIDs in the subTree. This is only defined for useGlobalMesh = .False. and logical :: useLocalMesh = .True. set for useGlobalMesh == False and useLocalShape == False

integer, private, allocatable:: bc_ID(:)

array of bc_ids of boundary labels defined in tracking%shape boundary

integer(kind=long_k), private :: elemOffset

Offset of this partition

integer(kind=long_k), private, allocatable:: ElemPropertyBits(:)

Bit field of element properties for each element (the array has a length of nElems), each bit in the 8 byte integer indicates the presence or absence of a given property, which are further described in the Property component.

type(tem_property_type), private, pointer:: Property(:)=> null()

declaration of additional elemental properties, the array has a length of global%nProperties, each property provides a list of local element indices of elements with this property.


Subroutines

public subroutine tem_local_subTree_from(me, map2global, treeID)

This subroutine creates a subTree based on a provided map or list of treeids (in case a local shape is used) to the corresponding tree. This routine shall be called from a single process only, it is not intended to communicate and broadcast its information. requires the setting of me%global before hand.

Arguments

TypeIntentOptionalAttributesName
type(tem_subTree_type), intent(inout) :: me

subTree to be created from list of elements (map2global)

integer, intent(in), optional :: map2global(:)

position of the treeID in the global treeID list

integer(kind=long_k), intent(in), optional :: treeID(:)

list of treeIDs only use this in case a local shape is set

public subroutine tem_dump_subTree(me, globalTree, root_only)

This subroutine creates a new mesh in treelmesh format from a global and a sub tree and dumps it to disc in treelmesh format (needed for tracking in harvester format where the mesh has to be dumped to disc)

Arguments

TypeIntentOptionalAttributesName
type(tem_subTree_type), intent(in) :: me

subTree to dump to disk

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

the global tree

logical, intent(in), optional :: root_only

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

public subroutine tem_treeIDfrom_subTree(me, glob_tree, treeID, bound)

This subroutine derives all treeIDs of a subTree from the corresponding global tree and stores them in treeID.

Arguments

TypeIntentOptionalAttributesName
type(tem_subTree_type), intent(in) :: me

subTree of glob_tree

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

corresponding global tree

integer(kind=long_k), intent(out), allocatable:: treeID(:)

complete treeID list

integer, intent(in) :: bound(2)

lower(1) and upper(2) bound of the element array

public subroutine tem_destroy_subTree(me)

This subroutine frees the resources used for a subtree.

Arguments

TypeIntentOptionalAttributesName
type(tem_subTree_type), intent(inout) :: me

subTree of glob_tree