From 523c934a5c2049cbce417195af8cf4436c16404e Mon Sep 17 00:00:00 2001 From: kronbichler Date: Thu, 18 Sep 2008 16:50:52 +0000 Subject: [PATCH] Fixed an error in vector declaration that prevented non-local elements from being written. Now, the bool fast in the reinit functions does not make much sense any more. Look at that another time. git-svn-id: https://svn.dealii.org/trunk@16852 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/lac/source/trilinos_sparse_matrix.cc | 2 ++ deal.II/lac/source/trilinos_vector.cc | 18 ++++++++++-------- deal.II/lac/source/trilinos_vector_base.cc | 3 +++ 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/deal.II/lac/source/trilinos_sparse_matrix.cc b/deal.II/lac/source/trilinos_sparse_matrix.cc index 7f2513239e..48a6b382cb 100755 --- a/deal.II/lac/source/trilinos_sparse_matrix.cc +++ b/deal.II/lac/source/trilinos_sparse_matrix.cc @@ -400,6 +400,8 @@ namespace TrilinosWrappers ierr = matrix->OptimizeStorage (); AssertThrow (ierr == 0, ExcTrilinosError(ierr)); + last_action = Zero; + compressed = true; } diff --git a/deal.II/lac/source/trilinos_vector.cc b/deal.II/lac/source/trilinos_vector.cc index 1eebe8e5a9..c6ef3310cf 100755 --- a/deal.II/lac/source/trilinos_vector.cc +++ b/deal.II/lac/source/trilinos_vector.cc @@ -38,7 +38,7 @@ namespace TrilinosWrappers #endif { last_action = Zero; - vector = std::auto_ptr (new Epetra_FEVector(map)); + vector = std::auto_ptr (new Epetra_FEVector(map,false)); } @@ -48,7 +48,7 @@ namespace TrilinosWrappers map (InputMap) { last_action = Zero; - vector = std::auto_ptr (new Epetra_FEVector(map)); + vector = std::auto_ptr (new Epetra_FEVector(map,false)); } @@ -94,8 +94,9 @@ namespace TrilinosWrappers { vector.reset(); map = input_map; + (void)fast; - vector = std::auto_ptr (new Epetra_FEVector(map,!fast)); + vector = std::auto_ptr (new Epetra_FEVector(map,false)); last_action = Zero; } @@ -119,7 +120,7 @@ namespace TrilinosWrappers if (map.SameAs(v.vector->Map()) == false) map = Epetra_Map(v.vector->GlobalLength(),0,v.vector->Comm()); - vector = std::auto_ptr (new Epetra_FEVector(map,!fast)); + vector = std::auto_ptr (new Epetra_FEVector(map,false)); last_action = Zero; } @@ -253,7 +254,7 @@ namespace TrilinosWrappers { last_action = Zero; vector = std::auto_ptr - (new Epetra_FEVector(map,true)); + (new Epetra_FEVector(map,false)); } @@ -290,7 +291,7 @@ namespace TrilinosWrappers last_action = Zero; - vector = std::auto_ptr (new Epetra_FEVector (map,true)); + vector = std::auto_ptr (new Epetra_FEVector (map,false)); } @@ -309,7 +310,8 @@ namespace TrilinosWrappers last_action = Zero; - vector = std::auto_ptr (new Epetra_FEVector (map, !fast)); + (void)fast; + vector = std::auto_ptr (new Epetra_FEVector (map, false)); } @@ -332,7 +334,7 @@ namespace TrilinosWrappers if (map.SameAs(v.vector->Map()) == false) map = Epetra_LocalMap (v.vector->GlobalLength(),0,v.vector->Comm()); - vector = std::auto_ptr (new Epetra_FEVector(map,!fast)); + vector = std::auto_ptr (new Epetra_FEVector(map,false)); last_action = Zero; } diff --git a/deal.II/lac/source/trilinos_vector_base.cc b/deal.II/lac/source/trilinos_vector_base.cc index 6f2fd67d23..da638f2085 100644 --- a/deal.II/lac/source/trilinos_vector_base.cc +++ b/deal.II/lac/source/trilinos_vector_base.cc @@ -110,6 +110,7 @@ namespace TrilinosWrappers // what we did last to the vector. const int ierr = vector->GlobalAssemble(last_action); AssertThrow (ierr == 0, ExcTrilinosError(ierr)); + last_action = Zero; compressed = true; } @@ -124,6 +125,8 @@ namespace TrilinosWrappers ExcMessage("The given value is not finite but either " "infinite or Not A Number (NaN)")); + compress(); + const int ierr = vector->PutScalar(s); AssertThrow (ierr == 0, ExcTrilinosError(ierr)); -- 2.39.5