]> https://gitweb.dealii.org/ - dealii.git/commitdiff
No more magic number Pi. 12852/head
authorMarc Fehling <mafehling.git@gmail.com>
Tue, 19 Oct 2021 23:44:02 +0000 (17:44 -0600)
committerMarc Fehling <mafehling.git@gmail.com>
Tue, 19 Oct 2021 23:44:02 +0000 (17:44 -0600)
19 files changed:
examples/step-11/step-11.cc
tests/base/function_parser_02.cc
tests/base/utilities_pack_unpack_03.cc
tests/bits/step-11.cc
tests/dofs/dof_test.cc
tests/fe/non_primitive_1.cc
tests/fe/non_primitive_2.cc
tests/grid/grid_test.cc
tests/hp/step-11.cc
tests/lac/la_parallel_vector_add_and_dot_complex.cc
tests/lac/la_vector_add_and_dot.cc
tests/lac/la_vector_add_and_dot_complex.cc
tests/lac/la_vector_norms.cc
tests/lac/vector_add_and_dot.cc
tests/lac/vector_add_and_dot_complex.cc
tests/lac/vector_norms.cc
tests/lac/vector_operations_parallel_for_start_end.cc
tests/meshworker/step-11-mesh_loop.cc
tests/quick_tests/step.cc

index 50456fac0806f013b511876de9551aaeadc62976..4333dcf50f45502ffce7e09daeac1fb205428a09 100644 (file)
@@ -22,6 +22,7 @@
 // you are probably already used to by now:
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/base/function.h>
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/logstream.h>
 #include <deal.II/base/table_handler.h>
 #include <deal.II/lac/vector.h>
@@ -360,8 +361,7 @@ namespace Step11
     // Last task -- generate output:
     output_table.add_value("cells", triangulation.n_active_cells());
     output_table.add_value("|u|_1", norm);
-    output_table.add_value("error",
-                           std::fabs(norm - std::sqrt(3.14159265358 / 2)));
+    output_table.add_value("error", std::fabs(norm - std::sqrt(numbers::PI_2)));
   }
 
 
index 0f4317ae93239c9340504a76132c93fe551902ac..6a8931c1d5d0b102b0f44502c52909765349c3c3 100644 (file)
@@ -21,6 +21,7 @@
 // recycle the test to use constants instead of units
 
 #include <deal.II/base/function_parser.h>
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/point.h>
 
 #include <deal.II/lac/vector.h>
@@ -40,7 +41,7 @@ main()
   std::vector<std::string>      function(1);
   std::map<std::string, double> constants;
 
-  constants["PI"] = 3.141592654;
+  constants["PI"] = numbers::PI;
   constants["cm"] = 10;
   constants["m"]  = 1000;
 
index cbff04dd9543c0145280da5b3c4ad40aedaec065..78381abf50dcfd00b65175a4167114e8e925262d 100644 (file)
@@ -18,6 +18,7 @@
 // for trivially-copyable (small) types, packing is just a memcpy
 // operation
 
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/point.h>
 #include <deal.II/base/utilities.h>
 
@@ -80,7 +81,7 @@ test()
   deallog << "std::array:" << std::endl;
   check(std::array<int, 3>{{1, 2, 3}});
   deallog << "struct X:" << std::endl;
-  check(X{1, 2, 3.1415926});
+  check(X{1, 2, numbers::PI});
   deallog << "double:" << std::endl;
   check(1.);
 }
index 17c23aff5bdddff7f32831897d4dc71fbca0d076..815e118ff0a4b0d710652c02ec4dd813be82b023 100644 (file)
@@ -18,6 +18,7 @@
 // a un-hp-ified version of hp/step-11
 
 #include <deal.II/base/function.h>
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/base/table_handler.h>
 
@@ -173,8 +174,7 @@ LaplaceProblem<dim>::assemble_and_solve()
 
   output_table.add_value("cells", triangulation.n_active_cells());
   output_table.add_value("|u|_1", norm);
-  output_table.add_value("error",
-                         std::fabs(norm - std::sqrt(3.14159265358 / 2)));
+  output_table.add_value("error", std::fabs(norm - std::sqrt(numbers::PI_2)));
 }
 
 
index e60592c235b4e24716607314bde0116261e5dca7..e34aa06d9a58a4a7e687cfe650df6dbe2a74d3f1 100644 (file)
@@ -15,6 +15,8 @@
 
 
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/dofs/dof_accessor.h>
 #include <deal.II/dofs/dof_handler.h>
 #include <deal.II/dofs/dof_renumbering.h>
@@ -130,14 +132,14 @@ CurvedLine<dim>::get_new_point_on_line(
 
   if (y < x)
     if (y < 1 - x)
-      middle(1) = 0.04 * std::sin(6 * 3.141592 * middle(0));
+      middle(1) = 0.04 * std::sin(6 * numbers::PI * middle(0));
     else
-      middle(0) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(1));
+      middle(0) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(1));
 
   else if (y < 1 - x)
-    middle(0) = 0.04 * std::sin(6 * 3.141592 * middle(1));
+    middle(0) = 0.04 * std::sin(6 * numbers::PI * middle(1));
   else
-    middle(1) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(0));
+    middle(1) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(0));
 
   return middle;
 }
@@ -164,14 +166,14 @@ CurvedLine<dim>::get_new_point_on_quad(
 
   if (y < x)
     if (y < 1 - x)
-      middle(1) = 0.04 * std::sin(6 * 3.141592 * middle(0));
+      middle(1) = 0.04 * std::sin(6 * numbers::PI * middle(0));
     else
-      middle(0) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(1));
+      middle(0) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(1));
 
   else if (y < 1 - x)
-    middle(0) = 0.04 * std::sin(6 * 3.141592 * middle(1));
+    middle(0) = 0.04 * std::sin(6 * numbers::PI * middle(1));
   else
-    middle(1) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(0));
+    middle(1) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(0));
 
   return middle;
 }
index 1e7413ce242ad6f7552d71693911a861302fbce8..838d619a8bfee73c061471c642e07380b7624c78 100644 (file)
@@ -23,6 +23,7 @@
 // and compare again whether the matrices are the same
 
 
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/quadrature_lib.h>
 
 #include <deal.II/dofs/dof_accessor.h>
@@ -70,7 +71,7 @@ create_stokes_matrix_1(const DoFHandler<dim> &dof_handler,
                           quadrature,
                           update_values | update_gradients | update_JxW_values);
 
-  const double nu = 3.14159265358e-2;
+  const double nu = 0.01 * numbers::PI;
 
   for (; cell != endc; ++cell)
     {
@@ -140,7 +141,7 @@ create_stokes_matrix_2(const DoFHandler<dim> &dof_handler,
                           quadrature,
                           update_values | update_gradients | update_JxW_values);
 
-  const double nu = 3.14159265358e-2;
+  const double nu = 0.01 * numbers::PI;
 
   for (; cell != endc; ++cell)
     {
@@ -214,7 +215,7 @@ create_stokes_matrix_3(const DoFHandler<dim> &dof_handler,
                           quadrature,
                           update_values | update_gradients | update_JxW_values);
 
-  const double nu = 3.14159265358e-2;
+  const double nu = 0.01 * numbers::PI;
 
   for (; cell != endc; ++cell)
     {
index bd41e0018d3975f4d8a7b87a92df7ab8cc0c827c..8c7214462425e4ea5ba56f7fd3624d16cce6580d 100644 (file)
@@ -21,6 +21,7 @@
 // of course, it makes absolutely no sense to work the Stokes equation
 // with a Nedelec element, but this is just to test the library, no?
 
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/quadrature_lib.h>
 
 #include <deal.II/dofs/dof_accessor.h>
@@ -73,7 +74,7 @@ create_stokes_matrix_2(const DoFHandler<dim> &dof_handler,
                           quadrature,
                           update_values | update_gradients | update_JxW_values);
 
-  const double nu = 3.14159265358e-2;
+  const double nu = 0.01 * numbers::PI;
 
   for (; cell != endc; ++cell)
     {
@@ -147,7 +148,7 @@ create_stokes_matrix_3(const DoFHandler<dim> &dof_handler,
                           quadrature,
                           update_values | update_gradients | update_JxW_values);
 
-  const double nu = 3.14159265358e-2;
+  const double nu = 0.01 * numbers::PI;
 
   for (; cell != endc; ++cell)
     {
index 34f575cb5bb44a0ccda22f9f0d3f880c523dcd4e..9ca95d9a20420de5fb1d591c786475c2808cf816 100644 (file)
@@ -15,6 +15,8 @@
 
 
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/grid/grid_generator.h>
 #include <deal.II/grid/grid_out.h>
 #include <deal.II/grid/manifold_lib.h>
@@ -107,14 +109,14 @@ CurvedLine<dim>::get_new_point_on_line(
 
   if (y < x)
     if (y < 1 - x)
-      middle(1) = 0.04 * std::sin(6 * 3.141592 * middle(0));
+      middle(1) = 0.04 * std::sin(6 * numbers::PI * middle(0));
     else
-      middle(0) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(1));
+      middle(0) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(1));
 
   else if (y < 1 - x)
-    middle(0) = 0.04 * std::sin(6 * 3.141592 * middle(1));
+    middle(0) = 0.04 * std::sin(6 * numbers::PI * middle(1));
   else
-    middle(1) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(0));
+    middle(1) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(0));
 
   return middle;
 }
@@ -140,14 +142,14 @@ CurvedLine<dim>::get_new_point_on_quad(
 
   if (y < x)
     if (y < 1 - x)
-      middle(1) = 0.04 * std::sin(6 * 3.141592 * middle(0));
+      middle(1) = 0.04 * std::sin(6 * numbers::PI * middle(0));
     else
-      middle(0) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(1));
+      middle(0) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(1));
 
   else if (y < 1 - x)
-    middle(0) = 0.04 * std::sin(6 * 3.141592 * middle(1));
+    middle(0) = 0.04 * std::sin(6 * numbers::PI * middle(1));
   else
-    middle(1) = 1 + 0.04 * std::sin(6 * 3.141592 * middle(0));
+    middle(1) = 1 + 0.04 * std::sin(6 * numbers::PI * middle(0));
 
   return middle;
 }
index 3ab37c8d94e76990664abf2dd3adfdead19e9c44..4e499c9f3eb3509f3bcbe217d213949f643d5c1f 100644 (file)
@@ -19,6 +19,7 @@
 
 
 #include <deal.II/base/function.h>
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/base/table_handler.h>
 
@@ -180,8 +181,7 @@ LaplaceProblem<dim>::assemble_and_solve()
 
   output_table.add_value("cells", triangulation.n_active_cells());
   output_table.add_value("|u|_1", norm);
-  output_table.add_value("error",
-                         std::fabs(norm - std::sqrt(3.14159265358 / 2)));
+  output_table.add_value("error", std::fabs(norm - std::sqrt(numbers::PI_2)));
 }
 
 
index 3d6e3a914d4000c0b906f4ff0ea74a98a9ac50f6..2ea3f538d8bad8d0070b55247f22ff50fd622ff3 100644 (file)
@@ -17,6 +17,8 @@
 // check that LinearAlgebra::distributed::Vector::add_and_dot works correctly
 // for complex-valued vectors
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/lac/la_parallel_vector.h>
 
 #include "../tests.h"
@@ -39,7 +41,8 @@ check()
         {
           v1(i) = std::complex<number>(0.1 + 0.005 * i, 1.234 + 12 * i);
           v2(i) = std::complex<number>(-5.2 + 0.18 * i, 42.4242 + 42 * i);
-          v3(i) = std::complex<number>(3.14159 + 2.7183 / (1. + i), 13.);
+          v3(i) =
+            std::complex<number>(numbers::PI + numbers::E / (1. + i), 13.);
         }
       check                             = v1;
       const std::complex<number> factor = std::complex<number>(0.01432);
index a368da110599b163ddd08487b23c4ad86797be3c..b6db93566a20598516750535bbece2dd5fe692ce 100644 (file)
@@ -16,6 +16,8 @@
 
 // check that LinearAlgebra::Vector::add_and_dot works correctly
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/lac/la_vector.h>
 
 #include "../tests.h"
@@ -36,7 +38,7 @@ check()
         {
           v1[i] = 0.1 + 0.005 * i;
           v2[i] = -5.2 + 0.18 * i;
-          v3[i] = 3.14159 + 2.7183 / (1. + i);
+          v3[i] = numbers::PI + numbers::E / (1. + i);
         }
       check               = v1;
       const number factor = 0.01432;
index e32be3719f59e238358aea9153be4e400fa52dc7..36ed58b9a20ff4611f140c134dbd64479c0a3a05 100644 (file)
@@ -17,6 +17,8 @@
 // check that LinearAlgebra::Vector::add_and_dot works correctly for
 // complex-valued vectors
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/lac/la_vector.h>
 
 #include "../tests.h"
@@ -36,7 +38,8 @@ check()
         {
           v1(i) = std::complex<number>(0.1 + 0.005 * i, 1.234 + 12 * i);
           v2(i) = std::complex<number>(-5.2 + 0.18 * i, 42.4242 + 42 * i);
-          v3(i) = std::complex<number>(3.14159 + 2.7183 / (1. + i), 13.);
+          v3(i) =
+            std::complex<number>(numbers::PI + numbers::E / (1. + i), 13.);
         }
       check                             = v1;
       const std::complex<number> factor = std::complex<number>(0.01432);
index 56c1eb420bc09178958883f305d0cded16598fe9..d684ae1221869a2244b25c2a93fa268ae34d8310 100644 (file)
@@ -18,6 +18,8 @@
 // (check the summation algorithm), including an accuracy test (should not
 // lose more than 1 decimal also for 200000 vector entries)
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/lac/la_vector.h>
 
 #include "../tests.h"
@@ -45,7 +47,7 @@ check_norms()
                   ExcInternalError());
 
       // test accuracy of summation
-      const long double value = 3.14159265358979323846;
+      constexpr long double value = numbers::PI;
       for (unsigned int i = 0; i < size; ++i)
         vec[i] = (number)value;
       const number l1_norma = vec.l1_norm();
@@ -83,7 +85,7 @@ check_complex_norms()
       AssertThrow(std::abs(l1_norm - sum) < acc * sum, ExcInternalError());
 
       // test accuracy of summation
-      const std::complex<long double> value(3.14159265358979323846, 0.1);
+      constexpr std::complex<long double> value(numbers::PI, 0.1);
       for (unsigned int i = 0; i < size; ++i)
         vec[i] = std::complex<number>(value);
       const number l1_norma = vec.l1_norm();
index a1bb003bb8a2c6e7ff0f9d48ec407399bca7c1f4..a2670f158ffc2d41edb57524c5c03af189d04846 100644 (file)
@@ -16,6 +16,8 @@
 
 // check that Vector::add_and_dot works correctly
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/lac/vector.h>
 
 #include "../tests.h"
@@ -34,7 +36,7 @@ check()
         {
           v1(i) = 0.1 + 0.005 * i;
           v2(i) = -5.2 + 0.18 * i;
-          v3(i) = 3.14159 + 2.7183 / (1. + i);
+          v3(i) = numbers::PI + numbers::E / (1. + i);
         }
       check               = v1;
       const number factor = 0.01432;
index 3757241c9c108933e5fc188f1072a8878e939f0d..26fdf0efea9ea0c56a0387dd629a826b2e43278f 100644 (file)
@@ -17,6 +17,8 @@
 // check that Vector::add_and_dot works correctly for complex-valued
 // vectors
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/lac/vector.h>
 
 #include "../tests.h"
@@ -35,7 +37,8 @@ check()
         {
           v1(i) = std::complex<number>(0.1 + 0.005 * i, 1.234 + 12 * i);
           v2(i) = std::complex<number>(-5.2 + 0.18 * i, 42.4242 + 42 * i);
-          v3(i) = std::complex<number>(3.14159 + 2.7183 / (1. + i), 13.);
+          v3(i) =
+            std::complex<number>(numbers::PI + numbers::E / (1. + i), 13.);
         }
       check                             = v1;
       const std::complex<number> factor = std::complex<number>(0.01432);
index 9324f2e95b6142c4c932895ce51d28211af402d6..9c60f77d46fa858d556bf7336e9786a3a9bb00f8 100644 (file)
@@ -18,6 +18,8 @@
 // (check the summation algorithm), including an accuracy test (should not
 // lose more than 1 decimal also for 200000 vector entries)
 
+#include <deal.II/base/numbers.h>
+
 #include <deal.II/lac/vector.h>
 
 #include "../tests.h"
@@ -45,9 +47,9 @@ check_norms()
                   ExcInternalError());
 
       // test accuracy of summation
-      const long double value = 3.14159265358979323846;
-      vec                     = (number)value;
-      const number l1_norma   = vec.l1_norm();
+      constexpr long double value = numbers::PI;
+      vec                         = (number)value;
+      const number l1_norma       = vec.l1_norm();
       AssertThrow(std::abs(l1_norma - value * size) < acc * size * value,
                   ExcInternalError());
       const number l2_norma = vec.l2_norm();
@@ -90,7 +92,7 @@ check_complex_norms()
       AssertThrow(std::abs(l1_norm - sum) < acc * sum, ExcInternalError());
 
       // test accuracy of summation
-      const std::complex<long double> value(3.14159265358979323846, 0.1);
+      constexpr std::complex<long double> value(numbers::PI, 0.1);
       vec                   = std::complex<number>(value);
       const number l1_norma = vec.l1_norm();
       AssertThrow(std::abs(l1_norma - std::abs(value) * size) <
index 236278807fcaa5b4fc75022c90463da755b98a7f..07bcdbb9a0d196811a5184e3e5dcc9e47f52cdc9 100644 (file)
@@ -17,6 +17,7 @@
 // check that internal::VectorOperations::parallel_for works for start-end
 
 #include <deal.II/base/index_set.h>
+#include <deal.II/base/numbers.h>
 
 #include <deal.II/lac/vector_operations_internal.h>
 
@@ -42,7 +43,7 @@ check()
                                         64,
                                         sizeof(Number) * size);
 
-      const Number                                   s = 3.1415;
+      const Number                                   s = numbers::PI;
       internal::VectorOperations::Vector_set<Number> setter(s, val);
 
       // now break the size in chunks
index c1c3e874e3ab3dab0fe36de93166f26ce9a5dc05..43728af12fdae1cd7db3062f31d469c5d3d7275f 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <deal.II/base/function.h>
 #include <deal.II/base/logstream.h>
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/base/table_handler.h>
 
@@ -348,8 +349,7 @@ namespace Step11
     // Last task -- generate output:
     output_table.add_value("cells", triangulation.n_active_cells());
     output_table.add_value("|u|_1", norm);
-    output_table.add_value("error",
-                           std::fabs(norm - std::sqrt(3.14159265358 / 2)));
+    output_table.add_value("error", std::fabs(norm - std::sqrt(numbers::PI_2)));
   }
 
 
index b2366e6b742b0a4a4f691e2ad9790be8162b1f35..85ea03511cc847bdc47d388ff28e06f8287f43ee 100644 (file)
@@ -19,6 +19,7 @@
 
 
 #include <deal.II/base/function.h>
+#include <deal.II/base/numbers.h>
 #include <deal.II/base/quadrature_lib.h>
 #include <deal.II/base/table_handler.h>
 
@@ -177,10 +178,9 @@ LaplaceProblem<dim>::assemble_and_solve()
 
   output_table.add_value("cells", triangulation.n_active_cells());
   output_table.add_value("|u|_1", norm);
-  output_table.add_value("error",
-                         std::fabs(norm - std::sqrt(3.14159265358 / 2)));
+  output_table.add_value("error", std::fabs(norm - std::sqrt(numbers::PI_2)));
 
-  last_error = std::fabs(norm - std::sqrt(3.14159265358 / 2));
+  last_error = std::fabs(norm - std::sqrt(numbers::PI_2));
 }
 
 

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.