]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Fix petsc_complex tests 4340/head
authorDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Wed, 3 May 2017 15:46:12 +0000 (17:46 +0200)
committerDaniel Arndt <daniel.arndt@iwr.uni-heidelberg.de>
Wed, 3 May 2017 16:45:13 +0000 (18:45 +0200)
source/lac/petsc_vector_base.cc
tests/petsc/vector_wrap_01.cc
tests/petsc_complex/element_access_00.output
tests/petsc_complex/vector_assign_02.output
tests/petsc_complex/vector_equality_1.output
tests/petsc_complex/vector_equality_2.cc
tests/petsc_complex/vector_equality_2.output
tests/petsc_complex/vector_print.output
tests/petsc_complex/vector_wrap_01.cc

index 353846f2ecba3428d996127e672e3ae4d06f1617..83c5fd273230b8e4b4f5f3babd47f0af1a78cda8 100644 (file)
@@ -49,7 +49,7 @@ namespace PETScWrappers
         }
       // else see if we are dealing
       // with a parallel vector
-      else if (dynamic_cast<const PETScWrappers::MPI::Vector *>(&vector) != nullptr)
+      else if (dynamic_cast<const PETScWrappers::VectorBase *>(&vector) != nullptr)
         {
           // there is the possibility
           // that the vector has
index 0bd8749689f1161f70163fb1768ae819b01d981c..e8a320859cd819c335cde127a977e461dc3a4d6c 100644 (file)
@@ -15,7 +15,7 @@
 
 
 
-// Test the constructor PETScWrappers::MPI::Vector(const Vec &) that takes an
+// Test the constructor PETScWrappers::VectorBase(const Vec &) that takes an
 // existing PETSc vector.
 
 #include "../tests.h"
@@ -25,7 +25,7 @@
 #include <vector>
 
 
-void test (PETScWrappers::MPI::Vector &v,
+void test (PETScWrappers::VectorBase &v,
            PETScWrappers::MPI::Vector &w)
 {
   // set the first vector
@@ -39,20 +39,13 @@ void test (PETScWrappers::MPI::Vector &v,
   // check that they're equal
   Assert (v==w, ExcInternalError());
 
-  v.compress(VectorOperation::insert);
-  w.compress(VectorOperation::insert);
-  v=w;
-
   deallog << "OK" << std::endl;
 }
 
 
-
 int main (int argc, char **argv)
 {
-  std::ofstream logfile("output");
-  deallog.attach(logfile);
-  deallog.threshold_double(1.e-10);
+  initlog();
 
   try
     {
@@ -61,10 +54,8 @@ int main (int argc, char **argv)
       int ierr = VecCreateSeq (PETSC_COMM_SELF, 100, &vpetsc);
       AssertThrow (ierr == 0, ExcPETScError(ierr));
       {
-        IndexSet indices(100);
-        indices.add_range(0, 100);
-        PETScWrappers::MPI::Vector v (indices, MPI_COMM_WORLD);
-        PETScWrappers::MPI::Vector w (indices, MPI_COMM_WORLD);
+        PETScWrappers::VectorBase v (vpetsc);
+        PETScWrappers::MPI::Vector w (PETSC_COMM_SELF, 100, 100);
         test (v,w);
       }
 
@@ -75,8 +66,6 @@ int main (int argc, char **argv)
 #endif
 
       AssertThrow (ierr == 0, ExcPETScError(ierr));
-
-
     }
   catch (std::exception &exc)
     {
index 60ff416e00ecd0061e32e5af474ef193aa8e768e..c38e99036fabf5fc458c2ffa5fa036d45c56eda1 100644 (file)
@@ -2,5 +2,5 @@
 DEAL::Check vector access
 DEAL::OK
 DEAL::vector:
-(0.000e+00,5.000e+00) (1.000e+00,4.000e+00) (2.000e+00,3.000e+00) (3.000e+00,2.000e+00) (4.000e+00,1.000e+00) 
+[Proc0 0-4] (0.000e+00,5.000e+00) (1.000e+00,4.000e+00) (2.000e+00,3.000e+00) (3.000e+00,2.000e+00) (4.000e+00,1.000e+00) 
 
index f432760cf782524ddf0dc14c628bf2c546de254c..0c62f40c8eb98018d84671a603663347f4ebef2e 100644 (file)
@@ -1,6 +1,6 @@
 
 DEAL::OK
 DEAL::Complex vectors: 
-DEAL::v: (0.,0.) (1.,1.) (2.,4.) (3.,9.) (4.,16.) (5.,25.) (6.,36.) (7.,49.) (8.,64.) (9.,81.) (10.,100.) (11.,121.) (12.,144.) (13.,169.) (14.,196.) (15.,225.) (16.,256.) (17.,289.) (18.,324.) (19.,361.) 
-w: (0.,0.) (1.,1.) (2.,4.) (3.,9.) (4.,16.) (5.,25.) (6.,36.) (7.,49.) (8.,64.) (9.,81.) (10.,100.) (11.,121.) (12.,144.) (13.,169.) (14.,196.) (15.,225.) (16.,256.) (17.,289.) (18.,324.) (19.,361.) 
+DEAL::v: [Proc0 0-19] (0.,0.) (1.,1.) (2.,4.) (3.,9.) (4.,16.) (5.,25.) (6.,36.) (7.,49.) (8.,64.) (9.,81.) (10.,100.) (11.,121.) (12.,144.) (13.,169.) (14.,196.) (15.,225.) (16.,256.) (17.,289.) (18.,324.) (19.,361.) 
+w: [Proc0 0-19] (0.,0.) (1.,1.) (2.,4.) (3.,9.) (4.,16.) (5.,25.) (6.,36.) (7.,49.) (8.,64.) (9.,81.) (10.,100.) (11.,121.) (12.,144.) (13.,169.) (14.,196.) (15.,225.) (16.,256.) (17.,289.) (18.,324.) (19.,361.) 
 OK
index 450c4b40d9b96269f85fcb22b01eed3129b6ecf8..b07ef46ee2bb5634bf81cbd9bfb17555f0b59e47 100644 (file)
@@ -1,6 +1,6 @@
 
 DEAL::OK
 DEAL::Complex vectors: 
-(0.,0.) (1.,1.) (2.,2.) (3.,3.) (4.,4.) (5.,5.) (6.,6.) (7.,7.) (8.,8.) (9.,9.) (10.,10.) (11.,11.) (12.,12.) (13.,13.) (14.,14.) (15.,15.) (16.,16.) (17.,17.) (18.,18.) (19.,19.) 
-(1.,1.) (0.,0.) (0.,0.) (4.,4.) (0.,0.) (0.,0.) (7.,7.) (0.,0.) (0.,0.) (10.,10.) (0.,0.) (0.,0.) (13.,13.) (0.,0.) (0.,0.) (16.,16.) (0.,0.) (0.,0.) (19.,19.) (0.,0.) 
+[Proc0 0-19] (0.,0.) (1.,1.) (2.,2.) (3.,3.) (4.,4.) (5.,5.) (6.,6.) (7.,7.) (8.,8.) (9.,9.) (10.,10.) (11.,11.) (12.,12.) (13.,13.) (14.,14.) (15.,15.) (16.,16.) (17.,17.) (18.,18.) (19.,19.) 
+[Proc0 0-19] (1.,1.) (0.,0.) (0.,0.) (4.,4.) (0.,0.) (0.,0.) (7.,7.) (0.,0.) (0.,0.) (10.,10.) (0.,0.) (0.,0.) (13.,13.) (0.,0.) (0.,0.) (16.,16.) (0.,0.) (0.,0.) (19.,19.) (0.,0.) 
 DEAL::OK
index 73c076422466efce31ccb6e069a0c93ba4707fee..cecb0d1214fe55087fd94888e6d7c3ada5535a86 100644 (file)
@@ -35,6 +35,8 @@ void test (PETScWrappers::MPI::Vector &v,
       if (k%3 == 0)
         w(k) = std::complex<double> (k+1.,k+1);
     }
+  v.compress(VectorOperation::insert);
+  w.compress(VectorOperation::insert);
 
   // then copy elements and make sure the vectors are actually equal
   v = w;
index b49f220c60e95a2bc2bf031f1a045f85dedb7ed8..7c0c076c2d11f76f7b2cb089f52a5e68bffb470d 100644 (file)
@@ -1,6 +1,6 @@
 
 DEAL::OK
 DEAL::Complex vectors: 
-(1.,1.) (0.,0.) (0.,0.) (4.,4.) (0.,0.) (0.,0.) (7.,7.) (0.,0.) (0.,0.) (10.,10.) (0.,0.) (0.,0.) (13.,13.) (0.,0.) (0.,0.) (16.,16.) (0.,0.) (0.,0.) (19.,19.) (0.,0.) 
-(1.,1.) (0.,0.) (0.,0.) (4.,4.) (0.,0.) (0.,0.) (7.,7.) (0.,0.) (0.,0.) (10.,10.) (0.,0.) (0.,0.) (13.,13.) (0.,0.) (0.,0.) (16.,16.) (0.,0.) (0.,0.) (19.,19.) (0.,0.) 
+[Proc0 0-19] (1.,1.) (0.,0.) (0.,0.) (4.,4.) (0.,0.) (0.,0.) (7.,7.) (0.,0.) (0.,0.) (10.,10.) (0.,0.) (0.,0.) (13.,13.) (0.,0.) (0.,0.) (16.,16.) (0.,0.) (0.,0.) (19.,19.) (0.,0.) 
+[Proc0 0-19] (1.,1.) (0.,0.) (0.,0.) (4.,4.) (0.,0.) (0.,0.) (7.,7.) (0.,0.) (0.,0.) (10.,10.) (0.,0.) (0.,0.) (13.,13.) (0.,0.) (0.,0.) (16.,16.) (0.,0.) (0.,0.) (19.,19.) (0.,0.) 
 DEAL::OK
index a2b610790183ace1f3f17c719404e0b26045ea65..29734db430ab8c718f31b1e0b2da2d20ae9e046d 100644 (file)
@@ -1,5 +1,6 @@
 
 DEAL::unreadable=true,across=false
+[Proc 0 0-4]
 (0.0000000000e+00,0.0000000000e+00)
 (1.2345678901e+00,2.4691357802e+00)
 (2.4691357802e+00,4.9382715605e+00)
@@ -7,4 +8,4 @@ DEAL::unreadable=true,across=false
 (4.9382715605e+00,9.8765431210e+00)
 
 DEAL::unreadable=false,across=true
-(0.000,0.000) (1.235,2.469) (2.469,4.938) (3.704,7.407) (4.938,9.877) 
+[Proc0 0-4] (0.000,0.000) (1.235,2.469) (2.469,4.938) (3.704,7.407) (4.938,9.877) 
index d74a0a51ec1af198e0be929c1cbfb9c7cff64ba0..a9735b34a78255a1cd3d41f355b4f6501cf1b158 100644 (file)
@@ -15,7 +15,8 @@
 
 
 
-// See comments in tests/petsc/vector_wrap_01.cc
+// Test the constructor PETScWrappers::VectorBase(const Vec &) that takes an
+// existing PETSc vector for complex values.
 
 #include "../tests.h"
 #include <deal.II/lac/petsc_parallel_vector.h>
@@ -24,7 +25,7 @@
 #include <vector>
 
 
-void test (PETScWrappers::MPI::Vector &v,
+void test (PETScWrappers::VectorBase &v,
            PETScWrappers::MPI::Vector &w)
 {
   // set the first vector
@@ -38,21 +39,13 @@ void test (PETScWrappers::MPI::Vector &v,
   // check that they're equal
   AssertThrow (v==w, ExcInternalError());
 
-  v=w;
-
-  // check that they're still equal
-  AssertThrow (v==w, ExcInternalError());
-
   deallog << "OK" << std::endl;
 }
 
 
 int main (int argc, char **argv)
 {
-  std::ofstream logfile("output");
-  deallog.attach(logfile);
-  deallog.depth_console(0);
-  deallog.threshold_double(1.e-10);
+  initlog();
 
   try
     {
@@ -61,7 +54,7 @@ int main (int argc, char **argv)
       int ierr = VecCreateSeq (PETSC_COMM_SELF, 100, &vpetsc);
       AssertThrow (ierr == 0, ExcPETScError(ierr));
       {
-        PETScWrappers::MPI::Vector v (vpetsc);
+        PETScWrappers::VectorBase v (vpetsc);
         PETScWrappers::MPI::Vector w (PETSC_COMM_SELF, 100, 100);
         test (v,w);
       }

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.