p4est 2.8.6
p4est is a software library for parallel adaptive mesh refinement.
p6est_profile.h
1/*
2 This file is part of p4est.
3 p4est is a C library to manage a collection (a forest) of multiple
4 connected adaptive quadtrees or octrees in parallel.
5
6 Copyright (C) 2010 The University of Texas System
7 Additional copyright (C) 2011 individual authors
8 Written by Carsten Burstedde, Lucas C. Wilcox, and Tobin Isaac
9
10 p4est is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 2 of the License, or
13 (at your option) any later version.
14
15 p4est is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with p4est; if not, write to the Free Software Foundation, Inc.,
22 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23*/
24
25#ifndef P6EST_PROFILE_H
26#define P6EST_PROFILE_H
27
28#include <p6est_lnodes.h>
29
30SC_EXTERN_C_BEGIN;
31
40typedef enum
41{
42 P6EST_PROFILE_UNION,
43 P6EST_PROFILE_INTERSECTION
44}
45p6est_profile_type_t;
46
47typedef struct p6est_profile
48{
49 p6est_profile_type_t ptype;
51 p4est_lnodes_t *lnodes;
52 p4est_ghost_t *cghost;
53 int ghost_owned;
54 p4est_locidx_t *lnode_ranges;
55 sc_array_t *lnode_columns;
56 int *lnode_changed[2];
57 p4est_locidx_t *enode_counts;
58 int evenodd;
59 p4est_qcoord_t diff;
60}
62
73p6est_profile_t *p6est_profile_new_local (p6est_t * p6est,
74 p6est_ghost_t * ghost,
75 p6est_profile_type_t ptype,
77 int degree);
78
80void p6est_profile_destroy (p6est_profile_t * profile);
81
83void p6est_profile_balance_local (p6est_profile_t * profile);
84
91int p6est_profile_sync (p6est_profile_t * profile);
92
95void p6est_refine_to_profile (p6est_t * p6est,
96 p6est_profile_t * profile,
97 p6est_init_t init_fn,
98 p6est_replace_t replace_fn);
99
100void p6est_profile_element_to_node (p6est_t * p6est,
101 p6est_profile_t * profile,
102 p4est_locidx_t * offsets,
104 elem_to_node,
105 p6est_lnodes_code_t * fc);
106
107SC_EXTERN_C_END;
108
109#endif /* !P6EST_PROFILE_H */
int32_t p4est_qcoord_t
Typedef for quadrant coordinates.
Definition: p4est_base.h:81
int32_t p4est_locidx_t
Typedef for processor-local indexing of quadrants and nodes.
Definition: p4est_base.h:106
void(* p6est_init_t)(p6est_t *p6est, p4est_topidx_t which_tree, p4est_quadrant_t *column, p2est_quadrant_t *layer)
Callback function prototype to initialize the layers's user data.
Definition: p6est.h:201
void(* p6est_replace_t)(p6est_t *p6est, p4est_topidx_t which_tree, int num_outcolumns, int num_outlayers, p4est_quadrant_t *outcolumns[], p2est_quadrant_t *outlayers[], int num_incolumns, int num_inlayers, p4est_quadrant_t *incolumns[], p2est_quadrant_t *inlayers[])
Callback function prototype to transfer information from outgoing layers to incoming layers.
Definition: p6est.h:234
p8est_connect_type_t
Characterize a type of adjacency.
Definition: p8est_connectivity.h:119
quadrants that neighbor the local domain
Definition: p4est_ghost.h:41
Store a parallel numbering of Lobatto points of a given degree > 0.
Definition: p4est_lnodes.h:132
columns of layers that neighbor the local domain
Definition: p6est_ghost.h:42
Definition: p6est_profile.h:48
The p6est forest datatype.
Definition: p6est.h:165