From 5767b1463048b5a5a028d69ee1283adc6bca598b Mon Sep 17 00:00:00 2001 From: hartmann Date: Fri, 12 Mar 1999 16:29:06 +0000 Subject: [PATCH] merging the two 'prepared_for'-bool into one enum 'PreparationState', remove an exception that is not needed git-svn-id: https://svn.dealii.org/trunk@1007 0785d39b-7218-0410-832d-ea1e28bc413d --- .../include/numerics/solution_transfer.h | 32 +++++++------------ .../source/numerics/solution_transfer.cc | 28 ++++++++-------- 2 files changed, 25 insertions(+), 35 deletions(-) diff --git a/deal.II/deal.II/include/numerics/solution_transfer.h b/deal.II/deal.II/include/numerics/solution_transfer.h index fd6b57735f..482a248ba3 100644 --- a/deal.II/deal.II/include/numerics/solution_transfer.h +++ b/deal.II/deal.II/include/numerics/solution_transfer.h @@ -73,7 +73,8 @@ template class DoFHandler; template 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# diff --git a/deal.II/deal.II/source/numerics/solution_transfer.cc b/deal.II/deal.II/source/numerics/solution_transfer.cc index 1488741d36..cf278df865 100644 --- a/deal.II/deal.II/source/numerics/solution_transfer.cc +++ b/deal.II/deal.II/source/numerics/solution_transfer.cc @@ -17,8 +17,7 @@ template SolutionTransfer::SolutionTransfer(const DoFHandler &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::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::clear () template void SolutionTransfer::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::prepare_for_pure_refinement() else cell->clear_user_pointer(); } - prepared_for_pure_refinement=true; + prepared_for=pure_refinement; } @@ -95,7 +93,7 @@ void SolutionTransfer::refine_interpolate(const Vector &in, Vector &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:: prepare_for_coarsening_and_refinement(const vector > &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 > &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:: interpolate (const vector > &all_in, vector > &all_out) const { - Assert(prepared_for_coarsening_and_refinement, ExcNotPrepared()); + Assert(prepared_for==coarsening_and_refinement, ExcNotPrepared()); for (unsigned int i=0; i