33#include <boost/range/iterator_range_core.hpp>
34#include <boost/serialization/map.hpp>
35#include <boost/serialization/split_member.hpp>
36#include <boost/serialization/unique_ptr.hpp>
37#include <boost/serialization/vector.hpp>
38#include <boost/signals2.hpp>
54 "The name 'signals' is already defined. You are most likely using the QT library \
55and using the 'signals' keyword. You can either #include the Qt headers (or any conflicting headers) \
56*after* the deal.II headers or you can define the 'QT_NO_KEYWORDS' macro and use the 'Q_SIGNALS' macro."
63template <
int dim,
int spacedim>
79 template <
typename CellIterator>
80 struct PeriodicFacePair;
83template <
int,
int,
int>
85template <
int spacedim>
87template <
int,
int,
int>
92 namespace TriangulationImplementation
104 struct Implementation;
105 struct ImplementationMixedMesh;
108 namespace TriaAccessorImplementation
110 struct Implementation;
125 namespace TriangulationImplementation
184 std::shared_ptr<const Utilities::MPI::Partitioner>
190 std::vector<std::shared_ptr<const Utilities::MPI::Partitioner>>
203 memory_consumption()
const;
210 template <
class Archive>
261 memory_consumption()
const;
268 template <
class Archive>
320 memory_consumption()
const;
327 template <
class Archive>
401 template <
int dim,
int spacedim = dim>
440 template <
int dim,
int spacedim = dim>
451 static inline constexpr unsigned int version_number = 5;
472 const std::vector<cell_relation_t> &cell_relations,
475 &pack_callbacks_fixed,
478 &pack_callbacks_variable,
489 unpack_cell_status(std::vector<cell_relation_t> &cell_relations)
const;
505 const std::vector<cell_relation_t> &cell_relations,
506 const unsigned int handle,
510 const boost::iterator_range<std::vector<char>::const_iterator> &)>
511 &unpack_callback)
const;
528 save(
const unsigned int global_first_cell,
529 const unsigned int global_num_cells,
530 const std::string &file_basename,
531 const MPI_Comm &mpi_communicator)
const;
552 load(
const unsigned int global_first_cell,
553 const unsigned int global_num_cells,
554 const unsigned int local_num_cells,
555 const std::string &file_basename,
556 const unsigned int n_attached_deserialize_fixed,
557 const unsigned int n_attached_deserialize_variable,
1385template <
int dim,
int spacedim = dim>
1452 limit_level_difference_at_vertices = 0x1,
1473 eliminate_unrefined_islands = 0x2,
1489 patch_level_1 = 0x4,
1513 coarsest_level_1 = 0x8,
1538 allow_anisotropic_smoothing = 0x10,
1571 eliminate_refined_inner_islands = 0x100,
1576 eliminate_refined_boundary_islands = 0x200,
1582 do_not_produce_unrefined_islands = 0x400,
1588 smoothing_on_refinement =
1589 (limit_level_difference_at_vertices | eliminate_unrefined_islands),
1594 smoothing_on_coarsening =
1595 (eliminate_refined_inner_islands | eliminate_refined_boundary_islands |
1596 do_not_produce_unrefined_islands),
1603 maximum_smoothing = 0xffff ^ allow_anisotropic_smoothing
1808 static constexpr
unsigned int dimension = dim;
1813 static constexpr
unsigned int space_dimension = spacedim;
1830 const
bool check_for_distorted_cells = false);
1882 get_mpi_communicator() const;
1890 global_active_cell_index_partitioner() const;
1898 global_level_cell_index_partitioner(const
unsigned int level) const;
1911 get_mesh_smoothing() const;
1936 set_manifold(const
types::manifold_id number,
1937 const
Manifold<dim, spacedim> &manifold_object);
1956 reset_manifold(const
types::manifold_id manifold_number);
1975 reset_all_manifolds();
1986 set_all_manifold_ids(const
types::manifold_id number);
1997 set_all_manifold_ids_on_boundary(const
types::manifold_id number);
2009 set_all_manifold_ids_on_boundary(const
types::boundary_id b_id,
2010 const
types::manifold_id number);
2026 get_manifold(const
types::manifold_id number) const;
2038 virtual
std::vector<
types::boundary_id>
2039 get_boundary_ids() const;
2053 virtual
std::vector<
types::manifold_id>
2054 get_manifold_ids() const;
2129 create_triangulation(const
std::vector<
Point<spacedim>> &vertices,
2146 create_triangulation(
2148 &construction_data);
2159 flip_all_direction_flags();
2167 compute_line_to_adjacent_cells_map();
2181 set_all_refine_flags();
2221 coarsen_global(const
unsigned int times = 1);
2255 execute_coarsening_and_refinement();
2287 prepare_coarsening_and_refinement();
2339 template <typename T>
2344 template <
typename InputIterator>
2348 return std::accumulate(
first, last, T());
2412 boost::signals2::signal<void(
2422 boost::signals2::signal<void(
2432 boost::signals2::signal<void(
2499 const ::CellStatus),
3449 virtual unsigned int
3489 const std::vector<Point<spacedim>> &
3516 const std::vector<bool> &
3677 template <
class Archive>
3679 save(Archive &ar,
const unsigned int version)
const;
3698 template <
class Archive>
3700 load(Archive &ar,
const unsigned int version);
3712 save(
const std::string &file_basename)
const;
3718 load(
const std::string &file_basename);
3743 const std::map<std::pair<cell_iterator, unsigned int>,
3744 std::pair<std::pair<cell_iterator, unsigned int>,
3752 const std::vector<ReferenceCell<dim>> &
3785 template <
class Archive>
3791 BOOST_SERIALIZATION_SPLIT_MEMBER()
3908 const std::function<std::vector<char>(
const cell_iterator &,
3909 const ::CellStatus)>
3911 const bool returns_variable_size_data);
3964 const unsigned int handle,
3965 const std::function<
3968 const boost::iterator_range<std::vector<char>::const_iterator> &)>
3983 const unsigned int global_num_cells,
3984 const std::string &file_basename)
const;
3996 const unsigned int global_num_cells,
3997 const unsigned int local_num_cells,
3998 const std::string &file_basename,
3999 const unsigned int n_attached_deserialize_fixed,
4000 const unsigned int n_attached_deserialize_variable);
4035 std::vector<typename internal::CellAttachedDataSerializer<dim, spacedim>::
4056 "The provided refinement pattern requires creating a level "
4057 "in the Triangulation. However, the maximum number of "
4058 "levels has already been reached, so that is not allowed.");
4063 <<
"You are requesting information from refinement level "
4065 <<
" of a triangulation, but this triangulation only has "
4066 << arg2 <<
" refinement levels. The given level " << arg1
4067 <<
" must be *less* than " << arg2 <<
'.');
4075 ExcTriangulationNotEmpty,
4078 <<
"You are trying to perform an operation on a triangulation "
4079 <<
"that is only allowed if the triangulation is currently empty. "
4080 <<
"However, it currently stores " << arg1 <<
" vertices and has "
4081 <<
"cells on " << arg2 <<
" levels.");
4100 <<
"You tried to do something on level " << arg1
4101 <<
", but this level is empty.");
4112 <<
"The given boundary_id " << arg1
4113 <<
" is not defined in this Triangulation!");
4161 std::optional<Table<2, std::set<active_cell_iterator>>>
4179 const std::vector<bool> &v,
4180 const unsigned int magic_number2,
4189 std::vector<bool> &v,
4190 const unsigned int magic_number2,
4213 std::vector<GridTools::PeriodicFacePair<cell_iterator>>
4220 std::map<std::pair<cell_iterator, unsigned int>,
4221 std::pair<std::pair<cell_iterator, unsigned int>,
4568 virtual unsigned int
4587 const unsigned int coarse_cell_index)
const;
4593 std::vector<std::unique_ptr<
4602 std::unique_ptr<::internal::TriangulationImplementation::TriaFaces<dim>>
4619 std::map<types::manifold_id, std::unique_ptr<const Manifold<dim, spacedim>>>
4667 std::unique_ptr<std::map<unsigned int, types::boundary_id>>
4690 std::unique_ptr<std::map<unsigned int, types::manifold_id>>
4694 template <
int,
int,
int>
4696 template <
int,
int,
int>
4702 friend struct ::internal::TriaAccessorImplementation::Implementation;
4704 friend struct ::internal::TriangulationImplementation::Implementation;
4705 friend struct ::internal::TriangulationImplementation::
4706 ImplementationMixedMesh;
4708 friend class ::internal::TriangulationImplementation::TriaObjects;
4713 static_assert(dim <= spacedim,
4714 "The dimension <dim> of a Triangulation must be less than or "
4715 "equal to the space dimension <spacedim> in which it lives.");
4726 namespace TriangulationImplementation
4728 template <
class Archive>
4730 NumberCache<1>::serialize(Archive &ar,
const unsigned int)
4733 ar &n_lines &n_lines_level;
4734 ar &n_active_lines &n_active_lines_level;
4738 template <
class Archive>
4740 NumberCache<2>::serialize(Archive &ar,
const unsigned int version)
4742 this->NumberCache<1>::serialize(ar, version);
4744 ar &n_quads &n_quads_level;
4745 ar &n_active_quads &n_active_quads_level;
4749 template <
class Archive>
4751 NumberCache<3>::serialize(Archive &ar,
const unsigned int version)
4753 this->NumberCache<2>::serialize(ar, version);
4755 ar &n_hexes &n_hexes_level;
4756 ar &n_active_hexes &n_active_hexes_level;
4762template <
int dim,
int spacedim>
4765 const unsigned int index)
const
4768 return vertices_used[
index];
4773template <
int dim,
int spacedim>
4777 return number_cache.n_levels;
4780template <
int dim,
int spacedim>
4784 return number_cache.n_levels;
4788template <
int dim,
int spacedim>
4792 return vertices.size();
4797template <
int dim,
int spacedim>
4799inline const std::vector<Point<spacedim>>
4806template <
int dim,
int spacedim>
4808template <
class Archive>
4815 ar &reference_cells;
4817 unsigned int n_levels = levels.size();
4820 for (
const auto &
level : levels)
4826 bool faces_is_nullptr = (faces.get() ==
nullptr);
4827 ar &faces_is_nullptr;
4828 if (!faces_is_nullptr)
4834 ar &anisotropic_refinement;
4837 ar &check_for_distorted_cells;
4841 ar &vertex_to_boundary_id_map_1d;
4842 ar &vertex_to_manifold_id_map_1d;
4848template <
int dim,
int spacedim>
4850template <
class Archive>
4860 ar &reference_cells;
4864 unsigned int n_levels;
4867 levels.resize(n_levels);
4868 for (
auto &level_ : levels)
4874 level_ = std::move(
level);
4878 bool faces_is_nullptr =
true;
4879 ar &faces_is_nullptr;
4880 if (!faces_is_nullptr)
4886 ar &anisotropic_refinement;
4891 reset_cell_vertex_indices_cache();
4892 reset_active_cell_indices();
4893 reset_global_cell_indices();
4897 bool my_check_for_distorted_cells;
4898 ar &my_check_for_distorted_cells;
4900 Assert(my_check_for_distorted_cells == check_for_distorted_cells,
4901 ExcMessage(
"The triangulation loaded into here must have the "
4902 "same setting with regard to reporting distorted "
4903 "cell as the one previously stored."));
4907 ar &vertex_to_boundary_id_map_1d;
4908 ar &vertex_to_manifold_id_map_1d;
4919template <
int dim,
int spacedim>
4930template <
int dim,
int spacedim>
4934 const unsigned int coarse_cell_index)
const
4936 return coarse_cell_index;
4977# if !(defined(DEAL_II_BUILDING_CXX20_MODULE) && defined(__clang__) && \
4978 (__clang_major__ < 22))
*Â *Â triangulation refine_global(n_initial_global_refinements)
@ children_will_be_coarsened
unsigned int n_hexs(const unsigned int level) const
virtual void add_periodicity(const std::vector< GridTools::PeriodicFacePair< cell_iterator > > &)
void save_user_flags_line(std::vector< bool > &v) const
virtual types::global_cell_index n_global_active_cells() const
quad_iterator begin_quad(const unsigned int level=0) const
typename IteratorSelector::raw_line_iterator raw_line_iterator
active_vertex_iterator begin_active_vertex() const
void load_user_indices_quad(const std::vector< unsigned int > &v)
unsigned int n_quads() const
void load_user_indices(const std::vector< unsigned int > &v)
std::vector< bool > vertices_used
bool anisotropic_refinement
active_quad_iterator begin_active_quad(const unsigned int level=0) const
bool get_anisotropic_refinement_flag() const
virtual types::coarse_cell_id n_global_coarse_cells() const
std::unique_ptr< std::map< unsigned int, types::manifold_id > > vertex_to_manifold_id_map_1d
void save_user_pointers_quad(std::vector< void * > &v) const
void save_user_flags_hex(std::ostream &out) const
void clear_user_flags_quad()
unsigned int n_faces() const
active_hex_iterator begin_active_hex(const unsigned int level=0) const
static void read_bool_vector(const unsigned int magic_number1, std::vector< bool > &v, const unsigned int magic_number2, std::istream &in)
unsigned int n_active_lines(const unsigned int level) const
bool all_reference_cells_are_hyper_cube() const
void load_user_flags_line(std::istream &in)
raw_hex_iterator begin_raw_hex(const unsigned int level=0) const
const std::unique_ptr< const Manifold< dim, spacedim > > default_flat_manifold
void save_user_flags_line(std::ostream &out) const
active_cell_iterator last_active() const
void save(Archive &ar, const unsigned int version) const
std::vector< typename internal::CellAttachedDataSerializer< dim, spacedim >::cell_relation_t > local_cell_relations
const Triangulation< dim, spacedim > & get_triangulation() const
void reset_global_cell_indices()
virtual void save(const std::string &file_basename) const
std::unique_ptr<::internal::TriangulationImplementation::TriaFaces< dim > > faces
face_iterator end_face() const
void reset_active_cell_indices()
cell_iterator create_cell_iterator(const CellId &cell_id) const
cell_iterator begin(const unsigned int level=0) const
virtual void load(const std::string &file_basename)
unsigned int n_active_cells(const unsigned int level) const
std::optional< Table< 2, std::set< active_cell_iterator > > > line_to_adjacent_cells_map
unsigned int n_cells(const unsigned int level) const
void save_user_pointers_line(std::vector< void * > &v) const
void save_user_flags_quad(std::vector< bool > &v) const
void load_refine_flags(std::istream &in)
void save_user_indices_line(std::vector< unsigned int > &v) const
raw_cell_iterator begin_raw(const unsigned int level=0) const
unsigned int n_lines() const
void load_coarsen_flags(const std::vector< bool > &v)
unsigned int n_raw_lines() const
virtual std::size_t memory_consumption() const
std::vector< Point< spacedim > > vertices
raw_quad_iterator begin_raw_quad(const unsigned int level=0) const
virtual types::subdomain_id locally_owned_subdomain() const
unsigned int n_raw_faces() const
unsigned int n_active_faces() const
const bool check_for_distorted_cells
raw_cell_iterator end_raw(const unsigned int level) const
line_iterator end_line() const
std::unique_ptr< std::map< unsigned int, types::boundary_id > > vertex_to_boundary_id_map_1d
void load_user_flags_quad(std::istream &in)
unsigned int n_active_cells() const
void update_periodic_face_map()
unsigned int n_raw_lines(const unsigned int level) const
void clear_despite_subscriptions()
std::vector< ReferenceCell< dim > > reference_cells
void save_user_flags(std::ostream &out) const
std::vector< std::unique_ptr< ::internal::TriangulationImplementation::TriaLevel< dim, spacedim > > > levels
void load_user_flags_hex(std::istream &in)
const std::vector< Point< spacedim > > & get_vertices() const
void load_user_pointers_quad(const std::vector< void * > &v)
unsigned int n_used_vertices() const
void reset_cell_vertex_indices_cache()
unsigned int n_active_lines() const
unsigned int n_levels() const
void load_user_flags_hex(const std::vector< bool > &v)
void load_user_indices_line(const std::vector< unsigned int > &v)
void clear_user_flags_hex()
void save_user_pointers_hex(std::vector< void * > &v) const
typename IteratorSelector::raw_quad_iterator raw_quad_iterator
void load_user_pointers(const std::vector< void * > &v)
unsigned int register_data_attach(const std::function< std::vector< char >(const cell_iterator &, const ::CellStatus)> &pack_callback, const bool returns_variable_size_data)
::internal::TriangulationImplementation::NumberCache< dim > number_cache
void load_user_flags_quad(const std::vector< bool > &v)
void save_attached_data(const unsigned int global_first_cell, const unsigned int global_num_cells, const std::string &file_basename) const
void load_user_flags_line(const std::vector< bool > &v)
void save_user_indices_hex(std::vector< unsigned int > &v) const
DistortedCellList execute_refinement()
void update_cell_relations()
active_line_iterator begin_active_line(const unsigned int level=0) const
void save_user_indices_quad(std::vector< unsigned int > &v) const
void load_user_pointers_hex(const std::vector< void * > &v)
cell_iterator end() const
virtual bool has_hanging_nodes() const
std::vector< GridTools::PeriodicFacePair< cell_iterator > > periodic_face_pairs_level_0
unsigned int n_raw_cells(const unsigned int level) const
cell_iterator end(const unsigned int level) const
bool contains_cell(const CellId &cell_id) const
void load_attached_data(const unsigned int global_first_cell, const unsigned int global_num_cells, const unsigned int local_num_cells, const std::string &file_basename, const unsigned int n_attached_deserialize_fixed, const unsigned int n_attached_deserialize_variable)
virtual types::coarse_cell_id coarse_cell_index_to_coarse_cell_id(const unsigned int coarse_cell_index) const
unsigned int n_raw_quads(const unsigned int level) const
internal::CellAttachedData< dim, spacedim > cell_attached_data
void load_coarsen_flags(std::istream &out)
quad_iterator end_quad() const
line_iterator begin_line(const unsigned int level=0) const
unsigned int max_adjacent_cells() const
vertex_iterator begin_vertex() const
unsigned int n_hexs() const
vertex_iterator end_vertex() const
bool vertex_used(const unsigned int index) const
void load_user_pointers_line(const std::vector< void * > &v)
void save_user_flags(std::vector< bool > &v) const
hex_iterator end_hex() const
hex_iterator begin_hex(const unsigned int level=0) const
virtual unsigned int n_global_levels() const
active_cell_iterator end_active(const unsigned int level) const
bool is_mixed_mesh() const
cell_iterator last() const
unsigned int n_active_quads() const
void save_coarsen_flags(std::vector< bool > &v) const
void load_user_indices_hex(const std::vector< unsigned int > &v)
unsigned int n_raw_quads() const
void save_user_pointers(std::vector< void * > &v) const
face_iterator begin_face() const
unsigned int n_cells() const
virtual bool prepare_coarsening_and_refinement()
unsigned int n_active_quads(const unsigned int level) const
void unpack_data_serial()
const std::vector< bool > & get_used_vertices() const
void load_user_flags(const std::vector< bool > &v)
typename IteratorSelector::raw_hex_iterator raw_hex_iterator
std::map< types::manifold_id, std::unique_ptr< const Manifold< dim, spacedim > > > manifolds
void serialize(Archive &archive, const unsigned int version)
void load_refine_flags(const std::vector< bool > &v)
MeshSmoothing smooth_grid
void save_refine_flags(std::ostream &out) const
Triangulation< dim, spacedim > & get_triangulation()
std::unique_ptr< Policy > policy
void save_user_flags_quad(std::ostream &out) const
internal::CellAttachedDataSerializer< dim, spacedim > data_serializer
std::map< std::pair< cell_iterator, unsigned int >, std::pair< std::pair< cell_iterator, unsigned int >, types::geometric_orientation > > periodic_face_map
unsigned int n_active_hexs(const unsigned int level) const
internal::TriangulationImplementation::Strides< dim > strides
unsigned int n_vertices() const
void load(Archive &ar, const unsigned int version)
void save_user_indices(std::vector< unsigned int > &v) const
void notify_ready_to_unpack(const unsigned int handle, const std::function< void(const cell_iterator &, const ::CellStatus, const boost::iterator_range< std::vector< char >::const_iterator > &)> &unpack_callback)
void save_user_flags_hex(std::vector< bool > &v) const
bool all_reference_cells_are_simplex() const
unsigned int n_raw_hexs(const unsigned int level) const
const std::map< std::pair< cell_iterator, unsigned int >, std::pair< std::pair< cell_iterator, unsigned int >, types::geometric_orientation > > & get_periodic_face_map() const
unsigned int n_lines(const unsigned int level) const
unsigned int n_active_hexs() const
virtual unsigned int coarse_cell_id_to_coarse_cell_index(const types::coarse_cell_id coarse_cell_id) const
unsigned int n_quads(const unsigned int level) const
const std::vector< ReferenceCell< dim > > & get_reference_cells() const
void load_user_flags(std::istream &in)
void save_coarsen_flags(std::ostream &out) const
active_face_iterator begin_active_face() const
void clear_user_flags_line()
raw_line_iterator begin_raw_line(const unsigned int level=0) const
static void write_bool_vector(const unsigned int magic_number1, const std::vector< bool > &v, const unsigned int magic_number2, std::ostream &out)
active_cell_iterator begin_active(const unsigned int level=0) const
void execute_coarsening()
void save_refine_flags(std::vector< bool > &v) const
std::vector< char > dest_data_variable
std::vector< char > src_data_fixed
std::vector< char > dest_data_fixed
bool variable_size_data_stored
std::vector< int > src_sizes_variable
std::vector< unsigned int > sizes_fixed_cumulative
typename std::pair< cell_iterator, CellStatus > cell_relation_t
std::vector< int > dest_sizes_variable
std::vector< char > src_data_variable
#define DEAL_II_DEPRECATED
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_CXX20_REQUIRES(condition)
#define DEAL_II_NAMESPACE_CLOSE
IteratorRange< active_cell_iterator > active_cell_iterators_on_level(const unsigned int level) const
IteratorRange< active_face_iterator > active_face_iterators() const
IteratorRange< active_cell_iterator > active_cell_iterators() const
IteratorRange< cell_iterator > cell_iterators_on_level(const unsigned int level) const
IteratorRange< cell_iterator > cell_iterators() const
#define DeclException0(Exception0)
#define Assert(cond, exc)
#define DeclException2(Exception2, type1, type2, outsequence)
#define AssertIndexRange(index, range)
#define DeclExceptionMsg(Exception, defaulttext)
static ::ExceptionBase & ExcInternalError()
#define DeclException1(Exception1, type1, outsequence)
static ::ExceptionBase & ExcMessage(std::string arg1)
typename IteratorSelector::hex_iterator hex_iterator
typename IteratorSelector::active_quad_iterator active_quad_iterator
typename IteratorSelector::active_hex_iterator active_hex_iterator
typename IteratorSelector::quad_iterator quad_iterator
typename IteratorSelector::line_iterator line_iterator
typename IteratorSelector::active_line_iterator active_line_iterator
constexpr std::uint8_t max_n_levels
global_cell_index coarse_cell_id
std::uint8_t geometric_orientation
T operator()(InputIterator first, InputIterator last) const
virtual ~DistortedCellList() noexcept override
boost::signals2::signal< void()> mesh_movement
boost::signals2::signal< void()> post_distributed_load
boost::signals2::signal< void()> pre_distributed_save
boost::signals2::signal< unsigned int(const cell_iterator &, const ::CellStatus), CellWeightSum< unsigned int > > weight
boost::signals2::signal< void(const Triangulation< dim, spacedim > &destination_tria)> copy
boost::signals2::signal< void()> pre_distributed_refinement
boost::signals2::signal< void()> post_distributed_refinement
boost::signals2::signal< void()> pre_refinement
boost::signals2::signal< void()> any_change
boost::signals2::signal< void()> create
boost::signals2::signal< void()> clear
boost::signals2::signal< void(const typename Triangulation< dim, spacedim >::cell_iterator &cell)> post_refinement_on_cell
boost::signals2::signal< void(const typename Triangulation< dim, spacedim >::cell_iterator &cell)> pre_coarsening_on_cell
boost::signals2::signal< void()> post_refinement
boost::signals2::signal< void()> pre_partition
boost::signals2::signal< void()> pre_distributed_repartition
boost::signals2::signal< void()> pre_distributed_load
boost::signals2::signal< void()> post_p4est_refinement
boost::signals2::signal< void()> post_distributed_repartition
boost::signals2::signal< void()> post_distributed_save
std::vector< pack_callback_t > pack_callbacks_variable
unsigned int n_attached_deserialize
std::vector< pack_callback_t > pack_callbacks_fixed
unsigned int n_attached_data_sets
std::function< std::vector< char >(cell_iterator, CellStatus)> pack_callback_t
std::vector< unsigned int > n_lines_level
unsigned int n_active_lines
std::shared_ptr< const Utilities::MPI::Partitioner > active_cell_index_partitioner
void serialize(Archive &ar, const unsigned int version)
std::vector< unsigned int > n_active_lines_level
std::vector< std::shared_ptr< const Utilities::MPI::Partitioner > > level_cell_index_partitioners
std::vector< unsigned int > n_active_quads_level
unsigned int n_active_quads
void serialize(Archive &ar, const unsigned int version)
std::vector< unsigned int > n_quads_level
unsigned int n_active_hexes
void serialize(Archive &ar, const unsigned int version)
std::vector< unsigned int > n_hexes_level
std::vector< unsigned int > n_active_hexes_level
Strides of various arrays in a Triangulation.
unsigned int max_lines_per_cell
unsigned int max_faces_per_cell
unsigned int max_vertices_per_cell
unsigned int max_children_per_cell
unsigned int max_children_per_face
unsigned int max_lines_per_face