t8
1.2.0
t8code is a C library to manage a forest of adaptive space-trees of general element classes in parallel.
|
This structure holds the connectivity data of the coarse mesh. More...
#include <t8_cmesh_types.h>
Data Fields | |
int | committed |
Flag that specifies whether the cmesh is committed or not. More... | |
int | dimension |
The dimension of the cmesh. More... | |
int | set_partition |
If nonzero the cmesh is partitioned. More... | |
int | face_knowledge |
If partitioned the level of face knowledge that is expected. More... | |
int8_t | set_refine_level |
If the cmesh is derived from a second cmesh, a refinement level is specified here. More... | |
t8_scheme_cxx_t * | set_refine_scheme |
If the cmesh is to be refined, the scheme that describes the refinement pattern. More... | |
t8_scheme_cxx_t * | set_partition_scheme |
If the cmesh is to be partitioned according to a uniform level, the scheme that describes the refinement pattern. More... | |
int8_t | set_partition_level |
Non-negative if the cmesh should be partitioned from an already existing cmesh with an assumed level uniform mesh underneath. | |
struct t8_cmesh * | set_from |
If this cmesh shall be derived from an existing cmesh by copy or more elaborate modification, we store a pointer to this other cmesh here. | |
int | mpirank |
Number of this MPI process. | |
int | mpisize |
Number of MPI processes. | |
t8_refcount_t | rc |
The reference count of the cmesh. | |
t8_gloidx_t | num_trees |
The global number of trees. | |
t8_locidx_t | num_local_trees |
If partitioned the number of trees on this process. More... | |
t8_locidx_t | num_ghosts |
If partitioned the number of neighbor trees owned by different processes. | |
t8_locidx_t | num_local_trees_per_eclass [T8_ECLASS_COUNT] |
After commit the number of local trees for each eclass. More... | |
t8_gloidx_t | num_trees_per_eclass [T8_ECLASS_COUNT] |
After commit the number of global trees for each eclass. | |
t8_cmesh_trees_t | trees |
structure that holds all local trees and ghosts | |
t8_gloidx_t | first_tree |
The global index of the first local tree on this process. More... | |
int8_t | first_tree_shared |
If partitioned true if the first tree on this process is also the last tree on the next process. More... | |
t8_shmem_array_t | tree_offsets |
If partitioned for each process the global index of its first local tree or -(first local tree) - 1 if the first tree on that process is shared. More... | |
t8_geometry_handler_t * | geometry_handler |
Handles all geometries that are used by trees in this cmesh. | |
t8_stash_t | stash |
Used as temporary storage for the trees before commit. | |
t8_cprofile_t * | profile |
Used to measure runtimes and statistics of the cmesh algorithms. | |
This structure holds the connectivity data of the coarse mesh.
It can either be replicated, then each process stores a copy of the whole mesh, or partitioned. In the latter case, each process only stores a local portion of the mesh plus information about ghost elements.
The coarse mesh is a collection of coarse trees that can be identified along faces. TODO: this description is outdated. rewrite it. The array ctrees stores these coarse trees sorted by their (global) tree_id. If the mesh if partitioned it is partitioned according to an (possible only virtually existing) underlying fine mesh. Therefore the ctrees array can store duplicated trees on different processes, if each of these processes owns elements of the same tree in the fine mesh.
Each tree stores information about its face-neighbours in an array of t8_ctree_fneighbor.
If partitioned the ghost trees are stored in a hash table that is backed up by an array. The hash value of a ghost tree is its tree_id modulo the number of ghosts on this process.
int t8_cmesh::committed |
Flag that specifies whether the cmesh is committed or not.
int t8_cmesh::dimension |
The dimension of the cmesh.
It is set when the first tree is inserted.
int t8_cmesh::face_knowledge |
If partitioned the level of face knowledge that is expected.
t8_mesh_set_partioned; see t8_cmesh_set_partition.
t8_gloidx_t t8_cmesh::first_tree |
The global index of the first local tree on this process.
Zero if the cmesh is not partitioned. -1 if this processor is empty. See also https://github.com/DLR-AMR/t8code/wiki/Tree-indexing
int8_t t8_cmesh::first_tree_shared |
If partitioned true if the first tree on this process is also the last tree on the next process.
Always zero if num_local_trees = 0
t8_locidx_t t8_cmesh::num_local_trees |
If partitioned the number of trees on this process.
Otherwise the global number of trees.
t8_locidx_t t8_cmesh::num_local_trees_per_eclass[T8_ECLASS_COUNT] |
After commit the number of local trees for each eclass.
Stores the same entries as num_trees_per_eclass, if the cmesh is replicated.
int t8_cmesh::set_partition |
If nonzero the cmesh is partitioned.
If zero each process has the whole cmesh.
t8_scheme_cxx_t* t8_cmesh::set_partition_scheme |
If the cmesh is to be partitioned according to a uniform level, the scheme that describes the refinement pattern.
See t8_cmesh_set_partition.
int8_t t8_cmesh::set_refine_level |
If the cmesh is derived from a second cmesh, a refinement level is specified here.
t8_scheme_cxx_t* t8_cmesh::set_refine_scheme |
If the cmesh is to be refined, the scheme that describes the refinement pattern.
See t8_cmesh_set_refine.
t8_shmem_array_t t8_cmesh::tree_offsets |
If partitioned for each process the global index of its first local tree or -(first local tree) - 1 if the first tree on that process is shared.
Since this is very memory consuming we only fill it when needed.