]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
One more update for the Trilinos vector functions.
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 18 Nov 2008 11:50:39 +0000 (11:50 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 18 Nov 2008 11:50:39 +0000 (11:50 +0000)
git-svn-id: https://svn.dealii.org/trunk@17625 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/lac/include/lac/trilinos_vector.h

index 99158a0f2a2ec0e4c94b48fffe7a30eba6efad09..d142b9f479e8c222ccad0897452d0dc8ed8766a2 100755 (executable)
@@ -644,7 +644,14 @@ namespace TrilinosWrappers
 
   template <typename number>
   Vector::Vector (const dealii::Vector<number> &v)
+                 :
+#ifdef DEAL_II_COMPILER_SUPPORTS_MPI
+                 map (v.size(), 0, Epetra_MpiComm(MPI_COMM_WORLD))
+#else
+                map (v.size(), 0, Epetra_SerialComm())
+#endif
   {
+    vector = std::auto_ptr<Epetra_FEVector> (new Epetra_FEVector(map));
     *this = v;
   }
 
@@ -663,14 +670,18 @@ namespace TrilinosWrappers
   Vector & 
   Vector::operator = (const ::dealii::Vector<Number> &v)
   {
+    if (size() != v.size())
+      {
+       vector.release();
 #ifdef DEAL_II_COMPILER_SUPPORTS_MPI
-    map = Epetra_LocalMap (v.size(), 0, Epetra_MpiComm(MPI_COMM_WORLD));
+       map = Epetra_LocalMap (v.size(), 0, Epetra_MpiComm(MPI_COMM_WORLD));
 #else
-    map = Epetra_LocalMap (v.size(), 0, Epetra_SerialComm());
+       map = Epetra_LocalMap (v.size(), 0, Epetra_SerialComm());
 #endif
 
-    vector = std::auto_ptr<Epetra_FEVector> (new Epetra_FEVector(map));
-      
+       vector = std::auto_ptr<Epetra_FEVector> (new Epetra_FEVector(map));
+      }
+
     const int min_my_id = map.MinMyGID();
     const int size = map.NumMyElements();
 

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.