24#include <Kokkos_Macros.hpp>
34template <
int dim,
int spacedim>
37template <
int dim,
int spacedim>
41template <
int dim,
int spacedim>
44 : coarse_grid(&coarse_grid, typeid(*this).name())
49template <
int dim,
int spacedim>
56 , coarse_grid(old_tria.coarse_grid)
57 , refine_flags(old_tria.refine_flags)
58 , coarsen_flags(old_tria.coarsen_flags)
65template <
int dim,
int spacedim>
70 refine_flags.emplace_back();
71 coarsen_flags.emplace_back();
72 this->save_refine_flags(refine_flags.back());
73 this->save_coarsen_flags(coarsen_flags.back());
84template <
int dim,
int spacedim>
90 for (
unsigned int i = 0; i < refine_flags.size() + 1; ++i)
96template <
int dim,
int spacedim>
110 Assert(step < refine_flags.size() + 1,
113 this->load_refine_flags(refine_flags[step - 1]);
114 this->load_coarsen_flags(coarsen_flags[step - 1]);
122template <
int dim,
int spacedim>
126 return refine_flags.size();
131template <
int dim,
int spacedim>
137 coarse_grid = &old_grid;
138 refine_flags.
clear();
139 coarsen_flags.clear();
144template <
int dim,
int spacedim>
156template <
int dim,
int spacedim>
161 (void)construction_data;
168template <
int dim,
int spacedim>
172 const unsigned int n_flag_levels = refine_flags.size();
178 for (
unsigned int i = 0; i < n_flag_levels; ++i)
197template <
int dim,
int spacedim>
201 Assert(refine_flags.empty() && coarsen_flags.empty(), ExcFlagsNotCleared());
204 unsigned int magic_number;
209 unsigned int n_flag_levels;
211 for (
unsigned int i = 0; i < n_flag_levels; ++i)
213 refine_flags.emplace_back();
214 coarsen_flags.emplace_back();
220 coarsen_flags.back(),
234template <
int dim,
int spacedim>
238 refine_flags.clear();
239 coarsen_flags.clear();
244template <
int dim,
int spacedim>
virtual void read_flags(std::istream &in)
virtual void write_flags(std::ostream &out) const
virtual std::size_t memory_consumption() const override
virtual void create_triangulation(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata) override
virtual void copy_triangulation(const Triangulation< dim, spacedim > &tria) override
unsigned int n_refinement_steps() const
virtual void execute_coarsening_and_refinement() override
PersistentTriangulation(const Triangulation< dim, spacedim > &coarse_grid)
virtual void clear_flags()
virtual void copy_triangulation(const Triangulation< dim, spacedim > &other_tria)
unsigned int n_levels() const
virtual void execute_coarsening_and_refinement()
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_ASSERT_UNREACHABLE()
static ::ExceptionBase & ExcIO()
#define Assert(cond, exc)
static ::ExceptionBase & ExcImpossibleInDim(int arg1)
static ::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
static ::ExceptionBase & ExcTriaNotEmpty()
#define AssertThrow(cond, exc)
const unsigned int mn_tria_refine_flags_end
const unsigned int mn_tria_coarsen_flags_end
const unsigned int mn_tria_refine_flags_begin
const unsigned int mn_persistent_tria_flags_begin
const unsigned int mn_persistent_tria_flags_end
const unsigned int mn_tria_coarsen_flags_begin
std::enable_if_t< std::is_fundamental_v< T >, std::size_t > memory_consumption(const T &t)