]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
New test.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Sep 2010 14:56:34 +0000 (14:56 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Sep 2010 14:56:34 +0000 (14:56 +0000)
git-svn-id: https://svn.dealii.org/trunk@22053 0785d39b-7218-0410-832d-ea1e28bc413d

tests/deal.II/fe_values_view_10_single_01.cc [new file with mode: 0644]
tests/deal.II/fe_values_view_10_single_01/cmp/generic [new file with mode: 0644]

diff --git a/tests/deal.II/fe_values_view_10_single_01.cc b/tests/deal.II/fe_values_view_10_single_01.cc
new file mode 100644 (file)
index 0000000..5413dfa
--- /dev/null
@@ -0,0 +1,111 @@
+//----------------------------------------------------------------------
+//    $Id$
+//    Version: $Name$ 
+//
+//    Copyright (C) 2007, 2008, 2010 by the deal.II authors
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//----------------------------------------------------------------------
+
+
+// like _10, but with only a single non-primitive element. this test exists in
+// order to find out why at the time of writing the test the branch
+// implementing distributed meshes produced different output for the _10 test
+//
+// this test uses the FE_RaviartThomas as the single non-primitive element
+
+#include "../tests.h"
+#include <base/logstream.h>
+#include <base/function.h>
+#include <base/quadrature_lib.h>
+#include <lac/vector.h>
+#include <grid/grid_generator.h>
+#include <grid/tria_boundary_lib.h>
+#include <dofs/dof_handler.h>
+#include <fe/fe_q.h>
+#include <fe/fe_dgq.h>
+#include <fe/fe_nedelec.h>
+#include <fe/fe_raviart_thomas.h>
+#include <fe/fe_system.h>
+#include <fe/fe_values.h>
+#include <fe/mapping_q1.h>
+
+#include <fstream>
+
+
+
+template<int dim>
+void test (const Triangulation<dim>& tr,
+          const FiniteElement<dim>& fe)
+{
+  deallog << "FE=" << fe.get_name()
+         << std::endl;
+
+  DoFHandler<dim> dof(tr);
+  dof.distribute_dofs(fe);
+
+  Vector<double> fe_function(dof.n_dofs());
+  for (unsigned int i=0; i<dof.n_dofs(); ++i)
+    fe_function(i) = i+1;
+  
+  const QGauss<dim> quadrature(2);
+  FEValues<dim> fe_values (fe, quadrature,
+                          update_values | update_gradients | update_hessians);
+  fe_values.reinit (dof.begin_active());
+
+  std::vector<Tensor<2,dim> > scalar_values (quadrature.n_quadrature_points);
+  std::vector<std::vector<Tensor<2,dim> > >
+    vector_values (quadrature.n_quadrature_points,
+                  std::vector<Tensor<2,dim> >(fe.n_components()));
+
+  fe_values.get_function_hessians (fe_function, vector_values);
+  
+  for (unsigned int c=0; c<fe.n_components(); ++c)
+    {
+      FEValuesExtractors::Scalar single_component (c);
+      fe_values[single_component].get_function_hessians (fe_function,
+                                                        scalar_values);
+      deallog << "component=" << c << std::endl;
+      
+      for (unsigned int q=0; q<fe_values.n_quadrature_points; ++q)
+       {
+         deallog << scalar_values[q] << std::endl;
+         Assert ((scalar_values[q] - vector_values[q][c]).norm()
+                 <= 1e-12 * scalar_values[q].norm(),
+                 ExcInternalError());
+       }
+    }
+}
+
+
+
+template<int dim>
+void test_hyper_sphere()
+{
+  Triangulation<dim> tr;
+  GridGenerator::hyper_ball(tr);
+
+  static const HyperBallBoundary<dim> boundary;
+  tr.set_boundary (0, boundary);
+
+  FE_RaviartThomas<dim> fe(1);
+  test(tr, fe);
+}
+
+
+int main()
+{
+  std::ofstream logfile ("fe_values_view_10_single_01/output");
+  deallog << std::setprecision (3);
+
+  deallog.attach(logfile);
+  deallog.depth_console (0);
+  deallog.threshold_double(1.e-7);
+
+  test_hyper_sphere<2>();
+  test_hyper_sphere<3>();
+}
diff --git a/tests/deal.II/fe_values_view_10_single_01/cmp/generic b/tests/deal.II/fe_values_view_10_single_01/cmp/generic
new file mode 100644 (file)
index 0000000..26d0e78
--- /dev/null
@@ -0,0 +1,40 @@
+
+DEAL::FE=FE_RaviartThomas<2>(1)
+DEAL::component=0
+DEAL::-22.7 595. 582. -646.
+DEAL::-22.7 -530. -617. -425.
+DEAL::-949. 1.90e+03 1.76e+03 -1.73e+03
+DEAL::-949. -1.73e+03 -1.39e+03 -877.
+DEAL::component=1
+DEAL::1.97e-09 188. 147. -148.
+DEAL::-2.42e-09 188. 147. -204.
+DEAL::-2.92e-10 174. -23.5 33.7
+DEAL::0.00 174. -23.5 -967.
+DEAL::FE=FE_RaviartThomas<3>(1)
+DEAL::component=0
+DEAL::1.05e-06 -1.50e+03 -752. -1.50e+03 -1.01e-07 1.24e+04 -752. 1.24e+04 2.78e-07
+DEAL::4.29e-07 1.50e+03 752. 1.50e+03 1.38e-08 1.32e+04 752. 1.32e+04 2.06e-07
+DEAL::3.01e+03 -1.50e+03 2.12e+04 -1.50e+03 9.59e-08 1.24e+04 2.12e+04 1.24e+04 2.37e-06
+DEAL::3.01e+03 1.50e+03 -1.94e+04 1.50e+03 1.13e-07 1.32e+04 -1.94e+04 1.32e+04 -2.69e-07
+DEAL::1.50e+03 2.04e+04 -752. 2.04e+04 -2.08e-08 1.24e+04 -752. 1.24e+04 1.62e-08
+DEAL::1.50e+03 -1.87e+04 752. -1.87e+04 6.40e-07 1.32e+04 752. 1.32e+04 1.80e-13
+DEAL::-3.76e+04 2.04e+04 2.12e+04 2.04e+04 -5.68e-07 1.24e+04 2.12e+04 1.24e+04 -5.32e-07
+DEAL::-3.76e+04 -1.87e+04 -1.94e+04 -1.87e+04 2.52e-08 1.32e+04 -1.94e+04 1.32e+04 -5.63e-07
+DEAL::component=1
+DEAL::-6.69e-08 -1.88e+03 1.27e+04 -1.88e+03 4.09e-07 -376. 1.27e+04 -376. -2.10e-08
+DEAL::-2.50e-07 -1.88e+03 1.27e+04 -1.88e+03 3.76e+03 1.63e+04 1.27e+04 1.63e+04 2.17e-06
+DEAL::-2.23e-07 1.88e+03 1.36e+04 1.88e+03 8.38e-07 376. 1.36e+04 376. 4.79e-07
+DEAL::2.52e-07 1.88e+03 1.36e+04 1.88e+03 3.76e+03 -1.46e+04 1.36e+04 -1.46e+04 -8.66e-07
+DEAL::-8.02e-09 1.48e+04 1.27e+04 1.48e+04 752. -376. 1.27e+04 -376. 2.94e-07
+DEAL::-2.14e-08 1.48e+04 1.27e+04 1.48e+04 -2.71e+04 1.63e+04 1.27e+04 1.63e+04 4.27e-13
+DEAL::-1.23e-06 -1.30e+04 1.36e+04 -1.30e+04 752. 376. 1.36e+04 376. -2.52e-08
+DEAL::0.00 -1.30e+04 1.36e+04 -1.30e+04 -2.71e+04 -1.46e+04 1.36e+04 -1.46e+04 0.00
+DEAL::component=2
+DEAL::-1.98e-07 1.31e+04 -1.50e+03 1.31e+04 -9.88e-08 -752. -1.50e+03 -752. 6.45e-07
+DEAL::1.26e-07 1.31e+04 -1.50e+03 1.31e+04 1.61e-06 1.06e+04 -1.50e+03 1.06e+04 3.01e+03
+DEAL::1.60e-06 1.31e+04 9.89e+03 1.31e+04 -1.37e-07 -752. 9.89e+03 -752. 1.50e+03
+DEAL::-1.30e-07 1.31e+04 9.89e+03 1.31e+04 -1.96e-06 1.06e+04 9.89e+03 1.06e+04 -1.65e+04
+DEAL::-1.10e-07 1.40e+04 1.50e+03 1.40e+04 -3.61e-07 752. 1.50e+03 752. 1.37e-06
+DEAL::0.00 1.40e+04 1.50e+03 1.40e+04 1.46e-06 -8.91e+03 1.50e+03 -8.91e+03 3.01e+03
+DEAL::-7.07e-07 1.40e+04 -8.16e+03 1.40e+04 -2.86e-07 752. -8.16e+03 752. 1.50e+03
+DEAL::0.00 1.40e+04 -8.16e+03 1.40e+04 2.37e-07 -8.91e+03 -8.16e+03 -8.91e+03 -1.65e+04

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.