From: wolf Date: Wed, 18 Aug 1999 09:53:13 +0000 (+0000) Subject: Allow for a copy constructor of persistent triangulations, as long as the underlying... X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=943d2f3ac728eed0ebc9015fb910954c7da568a4;p=dealii-svn.git Allow for a copy constructor of persistent triangulations, as long as the underlying triangulation is empty. git-svn-id: https://svn.dealii.org/trunk@1709 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/grid/persistent_tria.h b/deal.II/deal.II/include/grid/persistent_tria.h index 91320c7b36..cfc7700e9f 100644 --- a/deal.II/deal.II/include/grid/persistent_tria.h +++ b/deal.II/deal.II/include/grid/persistent_tria.h @@ -108,6 +108,16 @@ class PersistentTriangulation : public Triangulation */ PersistentTriangulation (const Triangulation &coarse_grid); + /** + * Copy constructor. This operation + * is only allowed, if the triangulation + * underlying the object to be copied + * is presently empty. Refinement flags + * as well as the pointer to the + * coarse grid are copied, however. + */ + PersistentTriangulation (const PersistentTriangulation &old_tria); + /** * Destructor. */ @@ -183,6 +193,10 @@ class PersistentTriangulation : public Triangulation * Exception. */ DeclException0 (ExcFunctionNotUseful); + /** + * Exception. + */ + DeclException0 (ExcTriaNotEmpty); private: /** diff --git a/deal.II/deal.II/source/grid/persistent_tria.cc b/deal.II/deal.II/source/grid/persistent_tria.cc index 477e8db941..520325c2fc 100644 --- a/deal.II/deal.II/source/grid/persistent_tria.cc +++ b/deal.II/deal.II/source/grid/persistent_tria.cc @@ -10,6 +10,21 @@ PersistentTriangulation (const Triangulation &coarse_grid) : {}; +template +PersistentTriangulation:: +PersistentTriangulation (const PersistentTriangulation &old_tria) : + // default initialize + // tria, i.e. it will be + // empty on first use + Triangulation (), + coarse_grid (old_tria.coarse_grid), + refine_flags (old_tria.refine_flags), + coarsen_flags (old_tria.coarsen_flags) +{ + Assert (old_tria.n_levels() == 0, ExcTriaNotEmpty ()); +}; + + template PersistentTriangulation::~PersistentTriangulation ()