]> https://gitweb.dealii.org/ - dealii.git/commitdiff
extend tests/mpi/ghost_02 to complex-valued PETSc
authorDenis Davydov <davydden@gmail.com>
Mon, 28 Mar 2016 20:20:59 +0000 (22:20 +0200)
committerDenis Davydov <davydden@gmail.com>
Tue, 29 Mar 2016 18:48:46 +0000 (20:48 +0200)
tests/mpi/ghost_02.cc

index b6d3101573aab6af1ab7a165fe0a8163f6abe898..63c02e9863473284eda8e91da877bb7d038517dc 100644 (file)
@@ -46,17 +46,20 @@ void test ()
   PETScWrappers::MPI::Vector v(local_active, local_relevant, MPI_COMM_WORLD);
   PETScWrappers::MPI::Vector v2(local_active, local_relevant, MPI_COMM_WORLD);
 
-  vb = 1.5;
+  PetscScalar a = 1.5;
+  PetscScalar b = myid*2.0;
+  PetscScalar c = myid*2.0+1.0;
+  vb = a;
   v2 = vb;
   if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
-    deallog << "ghost: " << v2(1) << std::endl;
-  Assert(v2(1) == 1.5, ExcInternalError());
-  Assert(v2(myid*2) == 1.5, ExcInternalError());
-  Assert(v2(myid*2+1) == 1.5, ExcInternalError());
+    deallog << "ghost: " << PetscRealPart(v2(1)) << std::endl;
+  Assert(PetscRealPart(v2(1)) == 1.5, ExcInternalError());
+  Assert(PetscRealPart(v2(myid*2)) == 1.5, ExcInternalError());
+  Assert(PetscRealPart(v2(myid*2+1)) == 1.5, ExcInternalError());
 
   // set local values
-  vb(myid*2)=myid*2.0;
-  vb(myid*2+1)=myid*2.0+1.0;
+  vb(myid*2)=b;
+  vb(myid*2+1)=c;
 
   vb.compress(VectorOperation::insert);
   vb*=2.0;
@@ -66,26 +69,26 @@ void test ()
   // check local values
   if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
     {
-      deallog << myid*2 << ":" << v(myid*2) << std::endl;
-      deallog << myid*2+1 << ":" << v(myid*2+1) << std::endl;
+      deallog << myid*2 << ":" << PetscRealPart(v(myid*2)) << std::endl;
+      deallog << myid*2+1 << ":" << PetscRealPart(v(myid*2+1)) << std::endl;
     }
 
-  Assert(v(myid*2) == myid*4.0, ExcInternalError());
-  Assert(v(myid*2+1) == myid*4.0+2.0, ExcInternalError());
+  Assert(PetscRealPart(v(myid*2)) == myid*4.0, ExcInternalError());
+  Assert(PetscRealPart(v(myid*2+1)) == myid*4.0+2.0, ExcInternalError());
 
 
   // check ghost values
   if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
-    deallog << "ghost: " << v(1) << std::endl;
-  Assert(v(1) == 2.0, ExcInternalError());
+    deallog << "ghost: " << PetscRealPart(v(1)) << std::endl;
+  Assert(PetscRealPart(v(1)) == 2.0, ExcInternalError());
 
   //assignment from ghosted to ghosted
   v2 = v;
-  Assert(v2(1) == 2.0, ExcInternalError());
-  Assert(v2(myid*2) == myid*4.0, ExcInternalError());
-  Assert(v2(myid*2+1) == myid*4.0+2.0, ExcInternalError());
+  Assert(PetscRealPart(v2(1)) == 2.0, ExcInternalError());
+  Assert(PetscRealPart(v2(myid*2)) == myid*4.0, ExcInternalError());
+  Assert(PetscRealPart(v2(myid*2+1)) == myid*4.0+2.0, ExcInternalError());
   if (Utilities::MPI::this_mpi_process (MPI_COMM_WORLD) == 0)
-    deallog << "ghost: " << v2(1) << std::endl;
+    deallog << "ghost: " << PetscRealPart(v2(1)) << std::endl;
 
   // done
   if (myid==0)

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.