DOLFIN-X
DOLFIN-X C++ interface
plaza.h
1 // Copyright (C) 2014-2018 Chris Richardson
2 //
3 // This file is part of DOLFINX (https://www.fenicsproject.org)
4 //
5 // SPDX-License-Identifier: LGPL-3.0-or-later
6 
7 #include <cstdint>
8 #include <dolfinx/common/array2d.h>
9 #include <dolfinx/graph/AdjacencyList.h>
10 #include <utility>
11 #include <vector>
12 
13 #pragma once
14 
15 namespace dolfinx
16 {
17 
18 namespace mesh
19 {
20 class Mesh;
21 template <typename T>
22 class MeshTags;
23 } // namespace mesh
24 
25 namespace refinement
26 {
27 
31 namespace plaza
32 {
33 
41 mesh::Mesh refine(const mesh::Mesh& mesh, bool redistribute);
42 
51 mesh::Mesh refine(const mesh::Mesh& mesh,
52  const mesh::MeshTags<std::int8_t>& refinement_marker,
53  bool redistribute);
54 
63 std::tuple<graph::AdjacencyList<std::int64_t>, array2d<double>,
64  std::vector<std::int32_t>>
66  const mesh::MeshTags<std::int8_t>& refinement_marker);
67 
73 std::tuple<graph::AdjacencyList<std::int64_t>, array2d<double>,
74  std::vector<std::int32_t>>
76 
77 } // namespace plaza
78 } // namespace refinement
79 } // namespace dolfinx
This class provides a dynamic 2-dimensional row-wise array data structure.
Definition: array2d.h:21
A MeshTags are used to associate mesh entities with values. The entity index (local to process) ident...
Definition: MeshTags.h:38
A Mesh consists of a set of connected and numbered mesh topological entities, and geometry data.
Definition: Mesh.h:57
mesh::Mesh refine(const mesh::Mesh &mesh, bool redistribute)
Uniform refine, optionally redistributing and optionally calculating the parent-child relation for fa...
Definition: plaza.cpp:515
std::tuple< graph::AdjacencyList< std::int64_t >, array2d< double >, std::vector< std::int32_t > > compute_refinement_data(const mesh::Mesh &mesh, const mesh::MeshTags< std::int8_t > &refinement_marker)
Refine with markers returning new mesh data.
Definition: plaza.cpp:609