23 #ifndef T8_CMESH_TYPES_H
24 #define T8_CMESH_TYPES_H
53 #define T8_CMESH_VERTICES_ATTRIBUTE_KEY 0
54 #define T8_CMESH_GEOMETRY_ATTRIBUTE_KEY 1
55 #define T8_CMESH_OCC_EDGE_ATTRIBUTE_KEY 2
56 #define T8_CMESH_OCC_EDGE_PARAMETERS_ATTRIBUTE_KEY 3
57 #define T8_CMESH_OCC_FACE_ATTRIBUTE_KEY T8_CMESH_OCC_EDGE_PARAMETERS_ATTRIBUTE_KEY + T8_ECLASS_MAX_EDGES
58 #define T8_CMESH_OCC_FACE_PARAMETERS_ATTRIBUTE_KEY T8_CMESH_OCC_FACE_ATTRIBUTE_KEY + 1
59 #define T8_CMESH_NEXT_POSSIBLE_KEY T8_CMESH_OCC_FACE_PARAMETERS_ATTRIBUTE_KEY + T8_ECLASS_MAX_FACES
138 #ifdef T8_ENABLE_DEBUG
232 sc_array_t *from_proc;
235 sc_hash_t *ghost_globalid_to_local_id;
238 sc_mempool_t *global_local_mempool;
286 #define T8_CPROFILE_NUM_STATS 11
This structure holds the information associated to an attribute of a tree.
Definition: t8_cmesh_types.h:215
int package_id
The identifier of the application layer that added this attribute.
Definition: t8_cmesh_types.h:216
int key
The (tree unique) key of the attribute whithin this AL.
Definition: t8_cmesh_types.h:218
size_t attribute_size
The size in bytes of the attribute.
Definition: t8_cmesh_types.h:225
size_t attribute_offset
The offset of the attribute data from the first attribute info of the tree.
Definition: t8_cmesh_types.h:220
Definition: t8_cmesh_types.h:156
size_t att_offset
Offset to the array of face neighbors of this ghost.
Definition: t8_cmesh_types.h:161
int num_attributes
The number of attributes at this ghost.
Definition: t8_cmesh_types.h:164
t8_eclass_t eclass
The eclass of this ghost.
Definition: t8_cmesh_types.h:158
t8_gloidx_t treeid
The global number of this ghost.
Definition: t8_cmesh_types.h:157
Definition: t8_cmesh_types.h:231
This structure holds the connectivity data of the coarse mesh.
Definition: t8_cmesh_types.h:83
t8_cprofile_t * profile
Used to measure runtimes and statistics of the cmesh algorithms.
Definition: t8_cmesh_types.h:145
t8_locidx_t num_ghosts
If partitioned the number of neighbor trees owned by different processes.
Definition: t8_cmesh_types.h:111
t8_refcount_t rc
The reference count of the cmesh.
Definition: t8_cmesh_types.h:108
int set_partition
If nonzero the cmesh is partitioned.
Definition: t8_cmesh_types.h:88
t8_geometry_handler_t * geometry_handler
Handles all geometries that are used by trees in this cmesh.
Definition: t8_cmesh_types.h:136
int face_knowledge
If partitioned the level of face knowledge that is expected.
Definition: t8_cmesh_types.h:90
int dimension
The dimension of the cmesh.
Definition: t8_cmesh_types.h:86
t8_locidx_t num_local_trees
If partitioned the number of trees on this process.
Definition: t8_cmesh_types.h:110
t8_scheme_cxx_t * set_partition_scheme
If the cmesh is to be partitioned according to a uniform level, the scheme that describes the refinem...
Definition: t8_cmesh_types.h:98
t8_cmesh_trees_t trees
structure that holds all local trees and ghosts
Definition: t8_cmesh_types.h:123
int mpirank
Number of this MPI process.
Definition: t8_cmesh_types.h:106
t8_shmem_array_t tree_offsets
If partitioned for each process the global index of its first local tree or -(first local tree) - 1 i...
Definition: t8_cmesh_types.h:131
t8_gloidx_t num_trees
The global number of trees.
Definition: t8_cmesh_types.h:109
int8_t set_partition_level
Non-negative if the cmesh should be partitioned from an already existing cmesh with an assumed level ...
Definition: t8_cmesh_types.h:100
int8_t set_refine_level
If the cmesh is derived from a second cmesh, a refinement level is specified here.
Definition: t8_cmesh_types.h:94
t8_stash_t stash
Used as temporary storage for the trees before commit.
Definition: t8_cmesh_types.h:144
int mpisize
Number of MPI processes.
Definition: t8_cmesh_types.h:107
t8_scheme_cxx_t * set_refine_scheme
If the cmesh is to be refined, the scheme that describes the refinement pattern.
Definition: t8_cmesh_types.h:96
t8_locidx_t num_local_trees_per_eclass[T8_ECLASS_COUNT]
After commit the number of local trees for each eclass.
Definition: t8_cmesh_types.h:116
int committed
Flag that specifies whether the cmesh is committed or not.
Definition: t8_cmesh_types.h:85
t8_gloidx_t first_tree
The global index of the first local tree on this process.
Definition: t8_cmesh_types.h:125
int8_t first_tree_shared
If partitioned true if the first tree on this process is also the last tree on the next process.
Definition: t8_cmesh_types.h:128
t8_gloidx_t num_trees_per_eclass[T8_ECLASS_COUNT]
After commit the number of global trees for each eclass.
Definition: t8_cmesh_types.h:120
struct t8_cmesh * set_from
If this cmesh shall be derived from an existing cmesh by copy or more elaborate modification,...
Definition: t8_cmesh_types.h:102
This struct is used to profile cmesh algorithms.
Definition: t8_cmesh_types.h:264
t8_locidx_t partition_ghosts_recv
The number of ghosts this process has received from other in the last partition call.
Definition: t8_cmesh_types.h:271
int first_tree_shared
1 if this processes' first tree is shared.
Definition: t8_cmesh_types.h:277
int partition_procs_sent
The number of different processes this process has send local trees or ghosts to in the last partitio...
Definition: t8_cmesh_types.h:275
t8_locidx_t partition_trees_shipped
The number of trees this process has sent to other in the last partition call.
Definition: t8_cmesh_types.h:265
double geometry_evaluate_num_calls
The number of calls to t8_geometry_evaluate.
Definition: t8_cmesh_types.h:280
t8_locidx_t partition_ghosts_shipped
The number of ghosts this process has sent to other in the last partition call.
Definition: t8_cmesh_types.h:267
size_t partition_bytes_sent
The total number of bytes sent to other processes in the last partition call.
Definition: t8_cmesh_types.h:273
t8_locidx_t partition_trees_recv
The number of trees this process has received from other in the last partition call.
Definition: t8_cmesh_types.h:269
double commit_runtime
The runtime of the last call to t8_cmesh_commit.
Definition: t8_cmesh_types.h:279
double geometry_evaluate_runtime
The accumulated runtime of calls to t8_geometry_evaluate.
Definition: t8_cmesh_types.h:281
double partition_runtime
The runtime of the last call to t8_cmesh_partition.
Definition: t8_cmesh_types.h:278
This structure holds the data of a local tree including the information about face neighbors.
Definition: t8_cmesh_types.h:189
t8_eclass_t eclass
The eclass of this tree.
Definition: t8_cmesh_types.h:193
size_t neigh_offset
Adding this offset to the adress of the tree yields the array of face_neighbor entries.
Definition: t8_cmesh_types.h:194
size_t att_offset
Adding this offset to the adress of the tree yields the array of attribute_info entries.
Definition: t8_cmesh_types.h:196
t8_locidx_t treeid
The local number of this tree.
Definition: t8_cmesh_types.h:190
int num_attributes
The number of attributes at this tree.
Definition: t8_cmesh_types.h:199
Definition: t8_geometry.h:45
Definition: t8_cmesh_types.h:244
The scheme holds implementations for one or more element classes.
Definition: t8_element.h:51
Shared memory array structure.
Definition: t8_shmem.c:35
The stash data structure is used to store information about the cmesh before it is commited.
Definition: t8_cmesh_stash.h:81
This is the administrative header file for t8code.
int64_t t8_gloidx_t
A type for global indexing that holds really big numbers.
Definition: t8.h:105
int32_t t8_locidx_t
A type for processor-local indexing.
Definition: t8.h:94
We define the data structures and routines for temporary storage before commit.
struct t8_cmesh t8_cmesh_struct_t
This structure holds the connectivity data of the coarse mesh.
struct t8_attribute_info t8_attribute_info_struct_t
This structure holds the information associated to an attribute of a tree.
struct t8_cprofile t8_cprofile_struct_t
This struct is used to profile cmesh algorithms.
struct t8_ctree t8_ctree_struct_t
This structure holds the data of a local tree including the information about face neighbors.
enum t8_eclass t8_eclass_t
This enumeration contains all possible element classes.
@ T8_ECLASS_COUNT
This is no element class but can be used as the number of element classes.
Definition: t8_eclass.h:59
This file defines basic operations on an element in a refinement tree.
Typedef for the t8_geometry class in order to be usable as a pointer from .c files.
We inherit the reference counting mechanism from libsc.
sc_refcount_t t8_refcount_t
We can reuse the reference counter type from libsc.
Definition: t8_refcount.h:39
We define basic shared memory routines.