]> https://gitweb.dealii.org/ - dealii.git/commitdiff
test all quadrature formulae in 1d
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Fri, 7 Jul 2000 21:44:00 +0000 (21:44 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Fri, 7 Jul 2000 21:44:00 +0000 (21:44 +0000)
git-svn-id: https://svn.dealii.org/trunk@3143 0785d39b-7218-0410-832d-ea1e28bc413d

tests/base/quadrature_test.cc
tests/base/quadrature_test.checked

index 29622090f36ce56e5bc68ea2b0bf60d18557b925..2722daa8b5da9c01d43d9883626695e999e08247 100644 (file)
@@ -25,25 +25,32 @@ int main(int,char)
   deallog.attach(logfile);
   deallog.depth_console(0);
 
-  vector<Quadrature<1> *> gauss_quadratures(9);
-  gauss_quadratures[2]=new QGauss2<1>();
-  gauss_quadratures[3]=new QGauss3<1>();
-  gauss_quadratures[4]=new QGauss4<1>();
-  gauss_quadratures[5]=new QGauss5<1>();
-  gauss_quadratures[6]=new QGauss6<1>();
-  gauss_quadratures[7]=new QGauss7<1>();
-  gauss_quadratures[8]=new QGauss8<1>();
+  vector<Quadrature<1> *> quadratures(14);
+  quadratures[2]=new QGauss2<1>();
+  quadratures[3]=new QGauss3<1>();
+  quadratures[4]=new QGauss4<1>();
+  quadratures[5]=new QGauss5<1>();
+  quadratures[6]=new QGauss6<1>();
+  quadratures[7]=new QGauss7<1>();
+  quadratures[8]=new QGauss8<1>();
+  quadratures[9] = new QMidpoint<1>();
+  quadratures[10] = new QTrapez<1>();
+  quadratures[11] = new QSimpson<1>();
+  quadratures[12] = new QMilne<1>();
+  quadratures[13] = new QWeddle<1>();
   
-  for (unsigned int n=2; n<9; ++n)
+  for (unsigned int n=2; n<14; ++n)
     {
-      Quadrature<1> *quadrature=gauss_quadratures[n];
+      Quadrature<1> *quadrature=quadratures[n];
       const vector<Point<1> > &points=quadrature->get_points();
       const vector<double> &weights=quadrature->get_weights();
 
-      deallog << "Gauss" << n;
+      deallog << "Quadrature no." << n;
       
       unsigned int i=0;
-      double quadrature_int=0, exact_int=0;
+      double quadrature_int=0;
+      double exact_int=0;
+      double err = 0;
       do
        {
          ++i;
@@ -54,9 +61,12 @@ int main(int,char)
 
                                           // the exact integral is 1/(i+1)
          exact_int=1./(i+1);
+         err = fabs(quadrature_int-exact_int);
        }
-      while (fabs(quadrature_int-exact_int)<1e-15);
+      while (err<1e-15);
 
+                                      // Uncomment here for testing
+//      deallog << " (Error " << err << ")";
       deallog << " is exact for polynomials of degree " << i-1 << endl;
     }
 }
index 163e8b69371905b3caa4c682a75c78d0f08f7653..493bf982f9d78e6cb1789e45fb2dd779008c148d 100644 (file)
@@ -1,8 +1,13 @@
 
-DEAL::Gauss2 is exact for polynomials of degree 3
-DEAL::Gauss3 is exact for polynomials of degree 5
-DEAL::Gauss4 is exact for polynomials of degree 7
-DEAL::Gauss5 is exact for polynomials of degree 9
-DEAL::Gauss6 is exact for polynomials of degree 11
-DEAL::Gauss7 is exact for polynomials of degree 13
-DEAL::Gauss8 is exact for polynomials of degree 0
+DEAL::Quadrature no.2 is exact for polynomials of degree 3
+DEAL::Quadrature no.3 is exact for polynomials of degree 5
+DEAL::Quadrature no.4 is exact for polynomials of degree 7
+DEAL::Quadrature no.5 is exact for polynomials of degree 9
+DEAL::Quadrature no.6 is exact for polynomials of degree 11
+DEAL::Quadrature no.7 is exact for polynomials of degree 13
+DEAL::Quadrature no.8 is exact for polynomials of degree 0
+DEAL::Quadrature no.9 is exact for polynomials of degree 1
+DEAL::Quadrature no.10 is exact for polynomials of degree 1
+DEAL::Quadrature no.11 is exact for polynomials of degree 3
+DEAL::Quadrature no.12 is exact for polynomials of degree 5
+DEAL::Quadrature no.13 is exact for polynomials of degree 7

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.