Reference documentation for deal.II version 8.1.0
persistent_tria.h
1 // ---------------------------------------------------------------------
2 // @f$Id: persistent_tria.h 30036 2013-07-18 16:55:32Z maier @f$
3 //
4 // Copyright (C) 1999 - 2013 by the deal.II authors
5 //
6 // This file is part of the deal.II library.
7 //
8 // The deal.II library is free software; you can use it, redistribute
9 // it, and/or modify it under the terms of the GNU Lesser General
10 // Public License as published by the Free Software Foundation; either
11 // version 2.1 of the License, or (at your option) any later version.
12 // The full text of the license can be found in the file LICENSE at
13 // the top level of the deal.II distribution.
14 //
15 // ---------------------------------------------------------------------
16 
17 #ifndef __deal2__persistent_tria_h
18 #define __deal2__persistent_tria_h
19 
20 
21 #include <deal.II/base/config.h>
22 #include <deal.II/base/smartpointer.h>
23 #include <deal.II/grid/tria.h>
24 #include <vector>
25 
27 
107 template <int dim, int spacedim=dim>
108 class PersistentTriangulation : public Triangulation<dim, spacedim>
109 {
110 public:
115  static const unsigned int dimension = dim;
116  static const unsigned int spacedimension = spacedim;
117 
133 
143 
147  virtual ~PersistentTriangulation ();
148 
158  virtual void execute_coarsening_and_refinement ();
159 
180  void restore ();
181 
196  void restore (const unsigned int step_no);
197 
205  unsigned int n_refinement_steps () const;
206 
223  virtual void copy_triangulation (const Triangulation<dim, spacedim> &tria);
224 
230  virtual void create_triangulation (const std::vector<Point<spacedim> > &vertices,
231  const std::vector<CellData<dim> > &cells,
232  const SubCellData &subcelldata);
233 
243  const std::vector<Point<spacedim> > &vertices,
244  const std::vector<CellData<dim> > &cells,
245  const SubCellData &subcelldata);
246 
251  virtual void write_flags(std::ostream &out) const;
252 
261  virtual void read_flags(std::istream &in);
262 
267  virtual void clear_flags();
268 
274  virtual std::size_t memory_consumption () const;
275 
279  DeclException0 (ExcTriaNotEmpty);
283  DeclException0 (ExcFlagsNotCleared);
284 
285 private:
291 
299  std::vector<std::vector<bool> > refine_flags;
300 
304  std::vector<std::vector<bool> > coarsen_flags;
305 };
306 
307 
308 DEAL_II_NAMESPACE_CLOSE
309 
310 #endif
virtual void create_triangulation(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata)
virtual void read_flags(std::istream &in)
unsigned int n_refinement_steps() const
virtual void execute_coarsening_and_refinement()
std::vector< Point< spacedim > > vertices
Definition: tria.h:3539
DeclException0(ExcTriaNotEmpty)
virtual void write_flags(std::ostream &out) const
static const unsigned int dimension
std::vector< std::vector< bool > > refine_flags
virtual ~PersistentTriangulation()
virtual std::size_t memory_consumption() const
PersistentTriangulation(const Triangulation< dim, spacedim > &coarse_grid)
SmartPointer< const Triangulation< dim, spacedim >, PersistentTriangulation< dim, spacedim > > coarse_grid
virtual void clear_flags()
virtual void copy_triangulation(const Triangulation< dim, spacedim > &tria)
std::vector< std::vector< bool > > coarsen_flags
virtual void create_triangulation_compatibility(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata)