25 #ifndef P6EST_LNODES_H
26 #define P6EST_LNODES_H
117 p6est_lnodes_decode (p6est_lnodes_code_t face_code,
int hanging_face[6],
118 int hanging_edge[12])
120 P4EST_ASSERT (face_code >= 0);
129 int16_t h = (face_code & 0x0010) >> 4;
130 int16_t work = face_code >> 5;
134 memset (hanging_face, -1, 6 *
sizeof (
int));
135 memset (hanging_edge, -1, 12 *
sizeof (
int));
139 p4est_lnodes_decode (fc4, hanging_face + 2);
140 for (f = 0; f < 4; f++) {
141 hf = hanging_face[f + 2];
151 hanging_face[f + 2] = (hf << 1) | h;
154 hanging_face[f + 2] = 4 + hf;
163 hanging_face[f + 2] = 6 + h;
167 for (e = 0; e < 4; e++) {
169 if (hanging_edge[e] < 0) {
172 #ifdef P4EST_ENABLE_DEBUG
174 P4EST_ASSERT (hanging_edge[e] == 2 + h || hanging_edge[e] == 4);
199 p6est_lnodes_share_owned_begin (sc_array_t * node_data,
209 p8est_lnodes_share_owned_end (buffer);
214 p6est_lnodes_share_owned (sc_array_t * node_data,
p6est_lnodes_t * lnodes)
221 p6est_lnodes_share_all_begin (sc_array_t * node_data,
p6est_lnodes_t * lnodes)
230 p8est_lnodes_share_all_end (buffer);
235 p6est_lnodes_share_all (sc_array_t * node_data,
p6est_lnodes_t * lnodes)
244 p8est_lnodes_buffer_destroy (buffer);
249 p6est_lnodes_rank_array_index_int (sc_array_t * array,
int it)
251 return p8est_lnodes_rank_array_index_int (array, it);
256 p6est_lnodes_rank_array_index (sc_array_t * array,
size_t it)
258 return p8est_lnodes_rank_array_index (array, it);
265 return p8est_lnodes_global_index (lnodes, lidx);
int32_t p4est_locidx_t
Typedef for processor-local indexing of quadrants and nodes.
Definition: p4est_base.h:106
int64_t p4est_gloidx_t
Typedef for globally unique indexing of quadrants.
Definition: p4est_base.h:118
Generate Lobatto node numbers for any degree.
int8_t p4est_lnodes_code_t
The face code encodes the configuration of a hanging quadrant.
Definition: p4est_lnodes.h:44
passing columns of layers and data to neighboring processes
const int p8est_face_edges[6][4]
Store the edge numbers 0..12 for each tree face.
Generate Lobatto node numbers for any degree.
int16_t p8est_lnodes_code_t
The face code encodes the configuration of a hanging quadrant.
Definition: p8est_lnodes.h:46
void p8est_lnodes_share_owned(sc_array_t *node_data, p8est_lnodes_t *lnodes)
Equivalent to calling p8est_lnodes_share_owned_end directly after p8est_lnodes_share_owned_begin.
void p8est_lnodes_destroy(p8est_lnodes_t *lnodes)
Free all memory in a previously constructed lnodes structure.
p8est_lnodes_buffer_t * p8est_lnodes_share_all_begin(sc_array_t *node_data, p8est_lnodes_t *lnodes)
p8est_lnodes_share_all_begin
p8est_lnodes_buffer_t * p8est_lnodes_share_all(sc_array_t *node_data, p8est_lnodes_t *lnodes)
Equivalend to calling p8est_lnodes_share_all_end directly after p8est_lnodes_share_all_begin.
p8est_lnodes_buffer_t * p8est_lnodes_share_owned_begin(sc_array_t *node_data, p8est_lnodes_t *lnodes)
p8est_lnodes_share_owned_begin
columns of layers that neighbor the local domain
Definition: p6est_ghost.h:42
The p6est forest datatype.
Definition: p6est.h:167
p8est_lnodes_buffer_t handles the communication of data associated with nodes.
Definition: p8est_lnodes.h:357
The structure stored in the sharers array.
Definition: p8est_lnodes.h:161
Store a parallel numbering of Lobatto points of a given degree > 0.
Definition: p8est_lnodes.h:127