]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Better test output to avoid log(0).
authorkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 5 Dec 2013 10:21:17 +0000 (10:21 +0000)
committerkronbichler <kronbichler@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 5 Dec 2013 10:21:17 +0000 (10:21 +0000)
git-svn-id: https://svn.dealii.org/trunk@31895 0785d39b-7218-0410-832d-ea1e28bc413d

tests/deal.II/assemble_matrix_parallel_01.cc
tests/deal.II/assemble_matrix_parallel_01.output
tests/deal.II/assemble_matrix_parallel_02.cc
tests/deal.II/assemble_matrix_parallel_02.output
tests/deal.II/assemble_matrix_parallel_03.cc
tests/deal.II/assemble_matrix_parallel_03.output
tests/deal.II/assemble_matrix_parallel_04.cc

index e0c511089f530c69108c50dfab5ce87c3d01a507..4cd2b1769799ab717098a030151d5fe309226290 100644 (file)
@@ -379,14 +379,12 @@ void LaplaceProblem<dim>::assemble_test ()
          Assembly::Copy::Data ());
 
   test_matrix.add(-1, reference_matrix);
-  const double frobenius_norm = test_matrix.frobenius_norm();
 
-  // the data should add up exactly (unfortunately, there is some roundoff due
-  // to the cell similarity detection, but there should not be any similarity
-  // for the hypershell geometry)
-  deallog << "log error in matrix norm: " << std::log(frobenius_norm) << std::endl;
+  // there should not even be roundoff difference between matrices
+  deallog.threshold_double(1.e-30);
+  deallog << "error in matrix: " << test_matrix.frobenius_norm() << std::endl;
   test_rhs.add(-1., reference_rhs);
-  deallog << "log error in vector norm: " << std::log(test_rhs.l2_norm()) << std::endl;
+  deallog << "error in vector: " << test_rhs.l2_norm() << std::endl;
 }
 
 
@@ -441,7 +439,6 @@ int main ()
   logfile << std::setprecision (2);
   deallog.attach(logfile);
   deallog.depth_console(0);
-  deallog.threshold_double(1.e-8);
 
   {
     deallog.push("2d");
index 9d2e50eecfbd6234a46dbc312163ed3a26a2ac47..433d3f0316b130cb3ec9f6f03303af2717d2511c 100644 (file)
@@ -1,13 +1,13 @@
 
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
-DEAL:3d::log error in matrix norm: -inf
-DEAL:3d::log error in vector norm: -inf
-DEAL:3d::log error in matrix norm: -inf
-DEAL:3d::log error in vector norm: -inf
-DEAL:3d::log error in matrix norm: -inf
-DEAL:3d::log error in vector norm: -inf
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
+DEAL:3d::error in matrix norm: 0
+DEAL:3d::error in vector norm: 0
+DEAL:3d::error in matrix norm: 0
+DEAL:3d::error in vector norm: 0
+DEAL:3d::error in matrix norm: 0
+DEAL:3d::error in vector norm: 0
index a2cd47d8dc4ef13ca4adf5cacb67c412215ccffe..5f31e94221895972cd9d07ef0c54988d9c640709 100644 (file)
@@ -440,19 +440,19 @@ void LaplaceProblem<dim>::assemble_test()
   tasks.join_all();
 
   test_matrix.add(-1, reference_matrix);
-  const double frobenius_norm = test_matrix.frobenius_norm();
 
-  // the data should add up exactly (unfortunately, there is some roundoff due
-  // to the cell similarity detection, but there should not be any similarity
-  // for the hypershell geometry)
-  deallog << "log error in matrix norm: " << std::log(frobenius_norm) << std::endl;
+  // there should not even be roundoff difference between matrices
+  deallog.threshold_double(1.e-30);
+  deallog << "error in matrix 1: " << test_matrix.frobenius_norm() << std::endl;
   test_rhs.add(-1., reference_rhs);
-  deallog << "log error in vector norm: " << std::log(test_rhs.l2_norm()) << std::endl;
+  deallog << "error in vector 1: " << test_rhs.l2_norm() << std::endl;
 
+  // multiplied by PI there can be roundoff differences
+  deallog.threshold_double(1.e-10);
   test_matrix_2.add(-numbers::PI, reference_matrix);
-  deallog << "absolute error matrix assembly 2: " << test_matrix_2.frobenius_norm() << std::endl;
+  deallog << "error in matrix 2: " << test_matrix_2.frobenius_norm() << std::endl;
   test_rhs_2.add(-numbers::PI, reference_rhs);
-  deallog << "absolute error vector assembly 2: " << test_rhs_2.l2_norm() << std::endl;
+  deallog << "error in vector 2: " << test_rhs_2.l2_norm() << std::endl;
 }
 
 
@@ -508,7 +508,6 @@ int main ()
   logfile << std::setprecision (2);
   deallog.attach(logfile);
   deallog.depth_console(0);
-  deallog.threshold_double(1.e-8);
 
   {
     deallog.push("2d");
index 627a39f7704b69a3d1462b013b7654ebe00934c6..b5bfd0359ebbb68d0ae4811fd0289151a84ce8bc 100644 (file)
@@ -1,13 +1,13 @@
 
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
 DEAL:2d::absolute error matrix assembly 2: 0
 DEAL:2d::absolute error vector assembly 2: 0
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
 DEAL:2d::absolute error matrix assembly 2: 0
 DEAL:2d::absolute error vector assembly 2: 0
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
 DEAL:2d::absolute error matrix assembly 2: 0
 DEAL:2d::absolute error vector assembly 2: 0
index a0e1c59be0935ba401fca73d033508e58225a8fb..158aec8ba760f6a67afa221269954f67b4916dd2 100644 (file)
@@ -387,9 +387,11 @@ void LaplaceProblem<dim>::assemble_test ()
     for (unsigned int j=0; j<2; ++j)
       frobenius_norm += test_matrix.block(i,j).frobenius_norm();
 
-  deallog << "log error in matrix norm: " << std::log(frobenius_norm) << std::endl;
+  // there should not even be roundoff difference between matrices
+  deallog.threshold_double(1e-30);
+  deallog << "error in matrix: " << frobenius_norm << std::endl;
   test_rhs.add(-1., reference_rhs);
-  deallog << "log error in vector norm: " << std::log(test_rhs.l2_norm()) << std::endl;
+  deallog << "error in vector: " << test_rhs.l2_norm() << std::endl;
 }
 
 
@@ -444,7 +446,6 @@ int main ()
   logfile << std::setprecision (2);
   deallog.attach(logfile);
   deallog.depth_console(0);
-  deallog.threshold_double(1.e-8);
 
   {
     deallog.push("2d");
index 9d2e50eecfbd6234a46dbc312163ed3a26a2ac47..433d3f0316b130cb3ec9f6f03303af2717d2511c 100644 (file)
@@ -1,13 +1,13 @@
 
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
-DEAL:2d::log error in matrix norm: -inf
-DEAL:2d::log error in vector norm: -inf
-DEAL:3d::log error in matrix norm: -inf
-DEAL:3d::log error in vector norm: -inf
-DEAL:3d::log error in matrix norm: -inf
-DEAL:3d::log error in vector norm: -inf
-DEAL:3d::log error in matrix norm: -inf
-DEAL:3d::log error in vector norm: -inf
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
+DEAL:2d::error in matrix norm: 0
+DEAL:2d::error in vector norm: 0
+DEAL:3d::error in matrix norm: 0
+DEAL:3d::error in vector norm: 0
+DEAL:3d::error in matrix norm: 0
+DEAL:3d::error in vector norm: 0
+DEAL:3d::error in matrix norm: 0
+DEAL:3d::error in vector norm: 0
index f3f13286eea49ce20d799546fe10e73a98b76069..9c4d594fbd5466da968bad82cad481805a522ee1 100644 (file)
@@ -473,15 +473,14 @@ void LaplaceProblem<dim>::assemble_test()
   tasks.join_all();
 
   test_matrix.add(-1, reference_matrix);
-  const double frobenius_norm = test_matrix.frobenius_norm();
-  deallog << "absolute error in matrix norm: " << frobenius_norm << std::endl;
+  deallog << "error in matrix 1: " << test_matrix.frobenius_norm() << std::endl;
   test_rhs.add(-1., reference_rhs);
-  deallog << "absolute error in vector norm: " << test_rhs.l2_norm() << std::endl;
+  deallog << "error in vector 1: " << test_rhs.l2_norm() << std::endl;
 
   test_matrix_2.add(-numbers::PI, reference_matrix);
-  deallog << "absolute error matrix assembly 2: " << test_matrix_2.frobenius_norm() << std::endl;
+  deallog << "error in matrix 2: " << test_matrix_2.frobenius_norm() << std::endl;
   test_rhs_2.add(-numbers::PI, reference_rhs);
-  deallog << "absolute error vector assembly 2: " << test_rhs_2.l2_norm() << std::endl;
+  deallog << "error in vector 2: " << test_rhs_2.l2_norm() << std::endl;
 }
 
 
@@ -537,7 +536,7 @@ int main ()
   logfile << std::setprecision (2);
   deallog.attach(logfile);
   deallog.depth_console(0);
-  deallog.threshold_double(1.e-8);
+  deallog.threshold_double(1.e-10);
 
   {
     deallog.push("2d");

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.