p4est  1.0
Data Fields
p8est_mesh_t Struct Reference

This structure contains complete mesh information on the forest. More...

#include <p8est_mesh.h>

Data Fields

p4est_locidx_t local_num_quadrants
p4est_locidx_t ghost_num_quadrants
p4est_topidx_tquad_to_tree
 tree index for each local quad
int * ghost_to_proc
 processor for each ghost quad
p4est_locidx_tquad_to_quad
 one index for each of the 6 faces
int8_t * quad_to_face
 encodes orientation/2:1 status
sc_array_t * quad_to_half
 stores half-size neigbors
p4est_locidx_t local_num_corners
p4est_locidx_tquad_to_corner
sc_array_t * corner_offset
sc_array_t * corner_quad
sc_array_t * corner_corner

Detailed Description

This structure contains complete mesh information on the forest.

It stores the locally relevant neighborhood, that is, all locally owned quadrants and one layer of adjacent ghost quadrants and their owners.

For each local quadrant, its tree number is stored in quad_to_tree. For each ghost quadrant, its owner rank is stored in ghost_to_proc.

The quad_to_quad list stores one value for each local quadrant's face. This value is in 0..local_num_quadrants-1 for local quadrants, or in local_num_quadrants + (0..ghost_num_quadrants-1) for ghost quadrants. The quad_to_face list has equally many entries which are either: 1. A value of v = 0..23 indicates one same-size neighbor. This value is decoded as v = r * 6 + nf, where nf = 0..5 is the neigbbor's connecting face number and r = 0..3 is the relative orientation of the neighbor's face, see p8est_connectivity.h. 2. A value of v = 24..119 indicates a double-size neighbor. This value is decoded as v = 24 + h * 24 + r * 6 + nf, where r and nf are as above and h = 0..3 is the number of the subface. 3. A value of v = -24..-1 indicates four half-size neighbors. In this case the corresponding quad_to_quad index points into the quad_to_half array which stores four quadrant numbers per index, and the orientation of the smaller faces follows from 24 + v. The entries of quad_to_half encode between local and ghost quadrant in the same way as the quad_to_quad values described above. A quadrant on the boundary of the forest sees itself and its face number.

The quad_to_corner list stores corner neighbors that are not face or edge neighbors. On the inside of a tree or inside an inter-tree face, there is precisely one such neighbor per corner. In this case, its index is encoded as described above for quad_to_quad. On the other hand, if a corner is an inter-tree corner or inside an inter-tree edge, then the number of corner neighbors may be any non-negative number. In this case, the value is in local_num_quadrants + local_num_ghosts + [0 .. num_corners - 1]. It indexes into corner_offset, which encodes a group of corner neighbors. Each group contains the quadrant numbers encoded as usual for quad_to_quad in corner_quad, and the corner number from the neighbor as corner_corner. Inter-tree/tree-edge corners are NOT YET IMPLEMENTED and set to -2. Corners with no diagonal neighbor at all are assigned the value -1.


The documentation for this struct was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines