This module provides the global part of the TREe based ELemental Mesh, which is needed on each partition.
A datatype describing the global mesh information, present in all partitions (on all processes).
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private | :: | BoundingCubeLength | Length of the outermost bounding cube |
|||
real(kind=rk), | private | :: | Origin(3) | Origin of the cube, extent of length in each direction from this point. |
|||
real(kind=rk), | private | :: | effOrigin(3) | = | 0._rk | Origin of the cube which is effectively covered by tree elements |
|
real(kind=rk), | private | :: | effLength(3) | = | 0._rk | Length of the hexahedral domain which is effectively covered by tree elements |
|
character(len=labelLen), | private | :: | predefined | = | '' | name of the predefined mesh generated on the fly |
|
integer(kind=long_k), | private | :: | nElems | total number of elements |
|||
integer, | private | :: | nParts | Number of parts, the mesh is partitioned into !< process%comm_size |
|||
integer, | private | :: | myPart | The part to be processed locally (0:nParts-1) !< process%rank |
|||
integer, | private | :: | comm | MPI communicator of the processes, the mesh is distributed on |
|||
integer, | private | :: | minLevel | Minimal element level present in the mesh |
|||
integer, | private | :: | maxLevel | Maximal element level present in the mesh |
|||
character(len=LabelLen), | private | :: | label | Name of the mesh |
|||
character(len=LabelLen), | private | :: | comment | Space for comments |
|||
integer, | private | :: | nProperties | Total number of properties present in the mesh properties: fluid, solid, has boundaries, has elements, is deformed |
|||
real(kind=rk), | private | :: | effboundingCube(3,2) | The information of real bounding cube which is read from the mesh header |
|||
type(tem_prophead_type), | private, | 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), | private | :: | dirname | Name of the directory, where the data for the mesh is read from. Has to have a trailing directory separator. |
|||
logical, | private | :: | meshChange | = | .false. | did the mesh changed since last time dumping it?? |
write mesh information into lua file.
Type | Intent | Optional | 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 |
Type | Intent | Optional | 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 |
A routine to load global informations from the header file in the given directory.
Type | Intent | Optional | 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 |
Routine to free allocated memory for the header again.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_global_type), | intent(inout) | :: | me |
A routine to dump global informations into the mesh header in lua format
Type | Intent | Optional | 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 |
Type | Intent | Optional | 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 |
Generate the header for the simple full cube mesh.
Type | Intent | Optional | 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 |
Generate the simple single level mesh of a slice in the full cube.
Type | Intent | Optional | 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 |
Generate the simple single level mesh of a line in the full cube.
Type | Intent | Optional | 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 |
Generate the single element mesh.
Type | Intent | Optional | 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 |