16 #ifndef dealii_p4est_wrappers_h 17 #define dealii_p4est_wrappers_h 19 #include <deal.II/base/geometry_info.h> 21 #ifdef DEAL_II_WITH_P4EST 22 # include <p4est_bits.h> 23 # include <p4est_communication.h> 24 # include <p4est_extended.h> 25 # include <p4est_ghost.h> 26 # include <p4est_iterate.h> 27 # include <p4est_vtk.h> 28 # include <p8est_bits.h> 29 # include <p8est_communication.h> 30 # include <p8est_extended.h> 31 # include <p8est_ghost.h> 32 # include <p8est_iterate.h> 33 # include <p8est_vtk.h> 39 DEAL_II_NAMESPACE_OPEN
45 template <
int dim,
int spacedim>
68 using connectivity = p4est_connectivity_t;
69 using forest = p4est_t;
70 using tree = p4est_tree_t;
71 using quadrant = p4est_quadrant_t;
72 using topidx = p4est_topidx_t;
73 using locidx = p4est_locidx_t;
74 using gloidx = p4est_gloidx_t;
75 using balance_type = p4est_connect_type_t;
76 using ghost = p4est_ghost_t;
77 using transfer_context = p4est_transfer_context_t;
83 using connectivity = p8est_connectivity_t;
84 using forest = p8est_t;
85 using tree = p8est_tree_t;
86 using quadrant = p8est_quadrant_t;
87 using topidx = p4est_topidx_t;
88 using locidx = p4est_locidx_t;
89 using gloidx = p4est_gloidx_t;
90 using balance_type = p8est_connect_type_t;
91 using ghost = p8est_ghost_t;
92 using transfer_context = p8est_transfer_context_t;
110 static int (&quadrant_compare)(
const void *v1,
const void *v2);
153 static void (&connectivity_destroy)(p4est_connectivity_t *connectivity);
162 p4est_init_t init_fn,
163 void * user_pointer);
168 int refine_recursive,
169 p4est_refine_t refine_fn,
170 p4est_init_t init_fn);
173 int coarsen_recursive,
174 p4est_coarsen_t coarsen_fn,
175 p4est_init_t init_fn);
179 p4est_init_t init_fn);
182 int partition_for_coarsening,
183 p4est_weight_t weight_fn);
185 static void (&save)(
const char * filename,
198 static int (&connectivity_save)(
const char * filename,
210 const char *baseName);
219 p4est_init_t init_fn,
220 void * user_pointer);
226 template <
int spacedim>
232 static constexpr
unsigned int max_level = P4EST_MAXLEVEL;
239 const void * src_data,
248 const void * src_data,
258 const int * dest_sizes,
259 const void * src_data,
260 const int * src_sizes);
268 const int * dest_sizes,
269 const void * src_data,
270 const int * src_sizes);
279 static int (&quadrant_compare)(
const void *v1,
const void *v2);
322 static void (&connectivity_destroy)(p8est_connectivity_t *connectivity);
331 p8est_init_t init_fn,
332 void * user_pointer);
337 int refine_recursive,
338 p8est_refine_t refine_fn,
339 p8est_init_t init_fn);
342 int coarsen_recursive,
343 p8est_coarsen_t coarsen_fn,
344 p8est_init_t init_fn);
348 p8est_init_t init_fn);
351 int partition_for_coarsening,
352 p8est_weight_t weight_fn);
354 static void (&save)(
const char * filename,
360 std::size_t data_size,
367 static int (&connectivity_save)(
const char * filename,
379 const char *baseName);
387 p8est_init_t init_fn,
388 void * user_pointer);
394 static constexpr
unsigned int max_level = P8EST_MAXLEVEL;
401 const void * src_data,
410 const void * src_data,
420 const int * dest_sizes,
421 const void * src_data,
422 const int * src_sizes);
430 const int * dest_sizes,
431 const void * src_data,
432 const int * src_sizes);
451 using corner_info = p4est_iter_corner_info_t;
452 using corner_side = p4est_iter_corner_side_t;
453 using corner_iter = p4est_iter_corner_t;
454 using face_info = p4est_iter_face_info_t;
455 using face_side = p4est_iter_face_side_t;
456 using face_iter = p4est_iter_face_t;
462 using corner_info = p8est_iter_corner_info_t;
463 using corner_side = p8est_iter_corner_side_t;
464 using corner_iter = p8est_iter_corner_t;
465 using edge_info = p8est_iter_edge_info_t;
466 using edge_side = p8est_iter_edge_side_t;
467 using edge_iter = p8est_iter_edge_t;
468 using face_info = p8est_iter_face_info_t;
469 using face_side = p8est_iter_face_side_t;
470 using face_iter = p8est_iter_face_t;
481 init_quadrant_children(
530 template <
int dim,
int spacedim>
531 std::map<unsigned int, std::set<::types::subdomain_id>>
532 compute_vertices_with_ghost_neighbors(
533 const ::parallel::distributed::Triangulation<dim, spacedim> &tria,
534 typename ::internal::p4est::types<dim>::forest *parallel_forest,
535 typename ::internal::p4est::types<dim>::ghost * parallel_ghost);
540 DEAL_II_NAMESPACE_CLOSE
542 #endif // DEAL_II_WITH_P4EST 544 #endif // dealii_p4est_wrappers_h