16 #include <deal.II/base/memory_consumption.h> 17 #include <deal.II/grid/persistent_tria.h> 18 #include <deal.II/grid/magic_numbers.h> 21 DEAL_II_NAMESPACE_OPEN
24 template <
int dim,
int spacedim>
28 template <
int dim,
int spacedim>
33 template <
int dim,
int spacedim>
37 coarse_grid (&coarse_grid, typeid(*this).name())
42 template <
int dim,
int spacedim>
59 template <
int dim,
int spacedim>
65 template <
int dim,
int spacedim>
84 template <
int dim,
int spacedim>
96 template <
int dim,
int spacedim>
123 template <
int dim,
int spacedim>
132 template <
int dim,
int spacedim>
144 template <
int dim,
int spacedim>
155 template <
int dim,
int spacedim>
167 template <
int dim,
int spacedim>
175 out << mn_persistent_tria_flags_begin <<
' ' << n_flag_levels << std::endl;
177 for (
unsigned int i=0; i<n_flag_levels; ++i)
180 mn_tria_refine_flags_end, out);
182 mn_tria_coarsen_flags_end, out);
185 out << mn_persistent_tria_flags_end << std::endl;
192 template <
int dim,
int spacedim>
200 unsigned int magic_number;
202 AssertThrow(magic_number==mn_persistent_tria_flags_begin,
205 unsigned int n_flag_levels;
207 for (
unsigned int i=0; i<n_flag_levels; ++i)
212 mn_tria_refine_flags_end, in);
214 mn_tria_coarsen_flags_end, in);
218 AssertThrow(magic_number==mn_persistent_tria_flags_end,
226 template <
int dim,
int spacedim>
236 template <
int dim,
int spacedim>
254 DEAL_II_NAMESPACE_CLOSE
virtual void copy_triangulation(const Triangulation< dim, spacedim > &other_tria)
virtual void create_triangulation_compatibility(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata)
unsigned int n_refinement_steps() const
static::ExceptionBase & ExcIO()
virtual void write_flags(std::ostream &out) const
virtual void execute_coarsening_and_refinement()
static void read_bool_vector(const unsigned int magic_number1, std::vector< bool > &v, const unsigned int magic_number2, std::istream &in)
virtual void clear_flags()
#define AssertThrow(cond, exc)
static void write_bool_vector(const unsigned int magic_number1, const std::vector< bool > &v, const unsigned int magic_number2, std::ostream &out)
static::ExceptionBase & ExcFlagsNotCleared()
unsigned int n_levels() const
void load_coarsen_flags(std::istream &out)
std::vector< std::vector< bool > > refine_flags
virtual void execute_coarsening_and_refinement()
void save_coarsen_flags(std::ostream &out) const
static::ExceptionBase & ExcImpossibleInDim(int arg1)
virtual void create_triangulation(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata)
#define Assert(cond, exc)
static::ExceptionBase & ExcDimensionMismatch(std::size_t arg1, std::size_t arg2)
virtual std::size_t memory_consumption() const
virtual ~PersistentTriangulation()
void save_refine_flags(std::ostream &out) const
PersistentTriangulation(const Triangulation< dim, spacedim > &coarse_grid)
SmartPointer< const Triangulation< dim, spacedim >, PersistentTriangulation< dim, spacedim > > coarse_grid
std_cxx11::enable_if< std_cxx11::is_fundamental< T >::value, std::size_t >::type memory_consumption(const T &t)
static::ExceptionBase & ExcTriaNotEmpty()
virtual void copy_triangulation(const Triangulation< dim, spacedim > &tria)
virtual void read_flags(std::istream &in)
std::vector< std::vector< bool > > coarsen_flags
void load_refine_flags(std::istream &in)