]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
merging the two 'prepared_for'-bool into one enum 'PreparationState', remove an excep...
authorhartmann <hartmann@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 12 Mar 1999 16:29:06 +0000 (16:29 +0000)
committerhartmann <hartmann@0785d39b-7218-0410-832d-ea1e28bc413d>
Fri, 12 Mar 1999 16:29:06 +0000 (16:29 +0000)
git-svn-id: https://svn.dealii.org/trunk@1007 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/numerics/solution_transfer.h
deal.II/deal.II/source/numerics/solution_transfer.cc

index fd6b57735f76813dbddea3bcdc8a47a0649b7bc7..482a248ba304809b0469fe86b2b5a14213182d50 100644 (file)
@@ -73,7 +73,8 @@ template <int dim> class DoFHandler;
 template<int dim, typename number>
 class SolutionTransfer
 {
-  public:      
+  public:
+    
                                     /**
                                      * Constructor, takes the current #DoFHandler#
                                      * as argument.
@@ -207,7 +208,7 @@ class SolutionTransfer
                                     /**
                                      * Exception
                                      */
-    DeclException0(ExcAlreadyPrepForRefAndCoarse);
+    DeclException0(ExcAlreadyPrepForCoarseAndRef);
                                     
                                     /**
                                      * Exception
@@ -236,14 +237,6 @@ class SolutionTransfer
                                      * Exception
                                      */
     DeclException0(ExcInternalError);
-
-                                    /**
-                                     * Exception
-                                     */
-    DeclException2 (ExcInvalidVectorSize,
-                   int, int,
-                   << "The data vector has the size " << arg1
-                   << ", but " << arg2 << " was expected.");
                                  
   private:
 
@@ -260,18 +253,17 @@ class SolutionTransfer
     unsigned int n_dofs_old;
 
                                     /**
-                                     * Denotes whether the #SolutionTransfer#
-                                     * is 'prepared for pure refinement'
-                                     * or not.
+                                     * #PreparationState# denotes the
+                                     * three possible states of the
+                                     * #SolutionTransfer#: being
+                                     * prepared for 'pure refinement',
+                                     * prepared for 'coarsening and
+                                     * refinement' or not prepared.
                                      */
-    bool prepared_for_pure_refinement;
+    enum PreparationState {
+         none, pure_refinement, coarsening_and_refinement
+    } prepared_for;
 
-                                    /**
-                                     * Denotes whether the #SolutionTransfer#
-                                     * is 'prepared for coarsening and refinement'
-                                     * or not.
-                                     */
-    bool prepared_for_coarsening_and_refinement;
 
                                     /**
                                      * Is used for #prepare_for_refining#
index 1488741d367c32dd3cea578f06a5ecd9aa9002ee..cf278df86519c0272bd5203965e1f93151a1f0d7 100644 (file)
@@ -17,8 +17,7 @@ template<int dim, typename number>
 SolutionTransfer<dim, number>::SolutionTransfer(const DoFHandler<dim> &dof):
                dof_handler(&dof),
                n_dofs_old(0),
-               prepared_for_pure_refinement(0),
-               prepared_for_coarsening_and_refinement(0)
+               prepared_for(none)
 {}
 
 
@@ -41,8 +40,7 @@ void SolutionTransfer<dim, number>::clear ()
   if (dof_values_on_cell.size())
     dof_values_on_cell.erase(dof_values_on_cell.begin(), dof_values_on_cell.end());
 
-  prepared_for_pure_refinement=false;
-  prepared_for_coarsening_and_refinement=false;
+  prepared_for=none;
 }
 
 
@@ -50,9 +48,9 @@ void SolutionTransfer<dim, number>::clear ()
 template<int dim, typename number>
 void SolutionTransfer<dim, number>::prepare_for_pure_refinement()
 { 
-  Assert(!prepared_for_pure_refinement, ExcAlreadyPrepForRef());
-  Assert(!prepared_for_coarsening_and_refinement, 
-        ExcAlreadyPrepForRefAndCoarse());
+  Assert(prepared_for!=pure_refinement, ExcAlreadyPrepForRef());
+  Assert(prepared_for!=coarsening_and_refinement, 
+        ExcAlreadyPrepForCoarseAndRef());
 
   clear();
 
@@ -85,7 +83,7 @@ void SolutionTransfer<dim, number>::prepare_for_pure_refinement()
       else
        cell->clear_user_pointer();
     }
-  prepared_for_pure_refinement=true;
+  prepared_for=pure_refinement;
 }
 
 
@@ -95,7 +93,7 @@ void
 SolutionTransfer<dim, number>::refine_interpolate(const Vector<number> &in,
                                                  Vector<number>       &out) const
 {
-  Assert(prepared_for_pure_refinement, ExcNotPrepared());
+  Assert(prepared_for==pure_refinement, ExcNotPrepared());
   Assert(in.size()==n_dofs_old, ExcWrongVectorSize(in.size(),n_dofs_old));
   Assert(out.size()==dof_handler->n_dofs(),
         ExcWrongVectorSize(out.size(),dof_handler->n_dofs()));
@@ -146,9 +144,9 @@ void
 SolutionTransfer<dim, number>::
 prepare_for_coarsening_and_refinement(const vector<Vector<number> > &all_in)
 {
-  Assert(!prepared_for_pure_refinement, ExcAlreadyPrepForRef());
-  Assert(!prepared_for_coarsening_and_refinement, 
-        ExcAlreadyPrepForRefAndCoarse());
+  Assert(prepared_for!=pure_refinement, ExcAlreadyPrepForRef());
+  Assert(!prepared_for!=coarsening_and_refinement, 
+        ExcAlreadyPrepForCoarseAndRef());
   
   const unsigned int in_size=all_in.size();
   Assert(in_size!=0, ExcNoInVectorsGiven());
@@ -254,7 +252,7 @@ prepare_for_coarsening_and_refinement(const vector<Vector<number> > &all_in)
   Assert(n_sr==n_cells_to_stay_or_refine, ExcInternalError());
   Assert(n_cf==n_coarsen_fathers, ExcInternalError());
 
-  prepared_for_coarsening_and_refinement=true;
+  prepared_for=coarsening_and_refinement;
 }
 
 
@@ -274,10 +272,10 @@ void SolutionTransfer<dim, number>::
 interpolate (const vector<Vector<number> > &all_in,
             vector<Vector<number> >       &all_out) const
 {
-  Assert(prepared_for_coarsening_and_refinement, ExcNotPrepared());
+  Assert(prepared_for==coarsening_and_refinement, ExcNotPrepared());
   for (unsigned int i=0; i<all_in.size(); ++i)
     Assert (all_in[i].size() == n_dofs_old,
-           ExcInvalidVectorSize(all_in[i].size(), n_dofs_old));
+           ExcWrongVectorSize(all_in[i].size(), n_dofs_old));
                              
   unsigned int out_size=all_out.size();
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.