From 3a220d049be08deec6521a764607cbb0179f450c Mon Sep 17 00:00:00 2001 From: kronbichler Date: Wed, 24 Sep 2008 13:58:52 +0000 Subject: [PATCH] Added a reinit function. git-svn-id: https://svn.dealii.org/trunk@16908 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/include/lac/trilinos_vector_base.h | 11 +++++++++++ deal.II/lac/source/trilinos_vector_base.cc | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/deal.II/lac/include/lac/trilinos_vector_base.h b/deal.II/lac/include/lac/trilinos_vector_base.h index efe0d9eb49..5b64b1ca24 100644 --- a/deal.II/lac/include/lac/trilinos_vector_base.h +++ b/deal.II/lac/include/lac/trilinos_vector_base.h @@ -294,6 +294,17 @@ namespace TrilinosWrappers */ void clear (); + /** + * Reinit functionality, sets + * the dimension and the + * possibly parallel + * partitioning (Epetra_Map) of + * the calling vector the value + * of the input vector. + */ + void reinit (const VectorBase &v, + const bool fast = false); + /** * Compress the underlying * representation of the Trilinos diff --git a/deal.II/lac/source/trilinos_vector_base.cc b/deal.II/lac/source/trilinos_vector_base.cc index a3b49cb309..2522478eab 100644 --- a/deal.II/lac/source/trilinos_vector_base.cc +++ b/deal.II/lac/source/trilinos_vector_base.cc @@ -103,6 +103,17 @@ namespace TrilinosWrappers + void + VectorBase::reinit (const VectorBase &v, + const bool fast) + { + (void)fast; + if (&*vector != 0) + vector = std::auto_ptr(new Epetra_FEVector(*v.vector)); + else if (vector->Map().SameAs(v.vector->Map()) == false) + vector = std::auto_ptr(new Epetra_FEVector(*v.vector)); + } + void VectorBase::compress () { -- 2.39.5