]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add a bunch of tests.
authorWolfgang Bangerth <bangerth@colostate.edu>
Mon, 31 Oct 2016 22:06:02 +0000 (16:06 -0600)
committerWolfgang Bangerth <bangerth@colostate.edu>
Wed, 2 Nov 2016 22:27:35 +0000 (16:27 -0600)
12 files changed:
tests/fe/fe_enriched_step-36b.cc
tests/numerics/data_out_postprocessor_01-new.cc [new file with mode: 0644]
tests/numerics/data_out_postprocessor_01-new.output [new file with mode: 0644]
tests/numerics/data_out_postprocessor_01.cc
tests/numerics/data_out_postprocessor_scalar_01-new.cc [new file with mode: 0644]
tests/numerics/data_out_postprocessor_scalar_01-new.output [new file with mode: 0644]
tests/numerics/data_out_postprocessor_scalar_01.cc
tests/numerics/data_out_postprocessor_vector_01-new.cc [new file with mode: 0644]
tests/numerics/data_out_postprocessor_vector_01-new.output [new file with mode: 0644]
tests/numerics/data_out_postprocessor_vector_01.cc
tests/numerics/point_value_history_02.cc
tests/numerics/point_value_history_03.cc

index 4a92b81d87b57829a3a09abb02ddc0f47009c329..fdaf06a91b438ea9e37fbfd61c9fb6e08a791245 100644 (file)
@@ -702,9 +702,9 @@ namespace Step36
 
     virtual
     void
-    compute_derived_quantities_vector (const std::vector<Vector<double> >              &uh,
-                                       const std::vector<std::vector<Tensor<1,dim> > > &duh,
-                                       const std::vector<std::vector<Tensor<2,dim> > > &dduh,
+    compute_derived_quantities_vector (const std::vector<Vector<double> >              &solution_values,
+                                       const std::vector<std::vector<Tensor<1,dim> > > &solution_gradients,
+                                       const std::vector<std::vector<Tensor<2,dim> > > &solution_hessians,
                                        const std::vector<Point<dim> >                  &normals,
                                        const std::vector<Point<dim> >                  &evaluation_points,
                                        std::vector<Vector<double> >                    &computed_quantities) const;
@@ -724,23 +724,23 @@ namespace Step36
   template <int dim>
   void
   Postprocessor<dim>::
-  compute_derived_quantities_vector (const std::vector<Vector<double> >              &uh,
-                                     const std::vector<std::vector<Tensor<1,dim> > > &/*duh*/,
-                                     const std::vector<std::vector<Tensor<2,dim> > > &/*dduh*/,
+  compute_derived_quantities_vector (const std::vector<Vector<double> >              &solution_values,
+                                     const std::vector<std::vector<Tensor<1,dim> > > &/*solution_gradients*/,
+                                     const std::vector<std::vector<Tensor<2,dim> > > &/*solution_hessians*/,
                                      const std::vector<Point<dim> >                  &/*normals*/,
                                      const std::vector<Point<dim> >                  &evaluation_points,
                                      std::vector<Vector<double> >                    &computed_quantities) const
   {
-    const unsigned int n_quadrature_points = uh.size();
+    const unsigned int n_quadrature_points = solution_values.size();
     Assert (computed_quantities.size() == n_quadrature_points,  ExcInternalError());
     for (unsigned int q=0; q<n_quadrature_points; ++q)
       {
-        Assert(uh[q].size() == 2, ExcDimensionMismatch (uh[q].size(), 2)); // FESystem with 2 components
+        Assert(solution_values[q].size() == 2, ExcDimensionMismatch (solution_values[q].size(), 2)); // FESystem with 2 components
 
         computed_quantities[q](0)
-          = (uh[q](0)
+          = (solution_values[q](0)
              +
-             uh[q](1) * enrichment.value(evaluation_points[q])); // for FE_Nothing uh[q](1) will be zero
+             solution_values[q](1) * enrichment.value(evaluation_points[q])); // for FE_Nothing solution_values[q](1) will be zero
       }
   }
 
diff --git a/tests/numerics/data_out_postprocessor_01-new.cc b/tests/numerics/data_out_postprocessor_01-new.cc
new file mode 100644 (file)
index 0000000..228a735
--- /dev/null
@@ -0,0 +1,205 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2000 - 2016 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+// tests DataPostprocessor: create a FE field that has two components of
+// the kind cos(something) and sin(something) and then have a postprocessor
+// that computes the sum of squares. should always be equal to one
+
+
+#include "../tests.h"
+#include <deal.II/grid/tria.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/dofs/dof_accessor.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/base/function.h>
+#include <deal.II/numerics/vector_tools.h>
+#include <deal.II/numerics/matrix_tools.h>
+#include <deal.II/lac/vector.h>
+
+#include <deal.II/numerics/data_out.h>
+#include <deal.II/numerics/data_postprocessor.h>
+#include <fstream>
+
+#include <deal.II/base/logstream.h>
+
+
+std::ofstream logfile("output");
+
+
+template <int dim>
+class LaplaceProblem
+{
+public:
+  LaplaceProblem ();
+  void run ();
+
+private:
+  void make_grid_and_dofs ();
+  void solve ();
+  void output_results () const;
+
+  Triangulation<dim>   triangulation;
+  FESystem<dim>            fe;
+  DoFHandler<dim>      dof_handler;
+
+  Vector<double>       solution;
+};
+
+
+template <int dim>
+LaplaceProblem<dim>::LaplaceProblem ()
+  :
+  fe (FE_Q<dim>(1),2),
+  dof_handler (triangulation)
+{}
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::make_grid_and_dofs ()
+{
+  GridGenerator::hyper_cube (triangulation, 0, 1);
+  triangulation.refine_global (1);
+  triangulation.begin_active()->set_refine_flag ();
+  triangulation.execute_coarsening_and_refinement ();
+
+  dof_handler.distribute_dofs (fe);
+  solution.reinit (dof_handler.n_dofs());
+}
+
+
+
+template <int dim>
+class SinesAndCosines : public Function<dim>
+{
+public:
+  SinesAndCosines ()
+    :
+    Function<dim> (2)
+  {}
+
+  double value (const Point<dim> &p,
+                const unsigned int component) const
+  {
+    switch (component)
+      {
+      case 0:
+        return std::sin (p.norm());
+      case 1:
+        return std::cos (p.norm());
+      default:
+        Assert (false, ExcNotImplemented());
+        return 0;
+      }
+  }
+};
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::solve ()
+{
+  // dummy solve. just insert some
+  // values as mentioned at the top
+  // of the file
+  VectorTools::interpolate (dof_handler,
+                            SinesAndCosines<dim>(),
+                            solution);
+}
+
+
+template <int dim>
+class MyPostprocessor : public DataPostprocessor<dim>
+{
+public:
+  virtual std::vector<std::string> get_names () const
+  {
+    return std::vector<std::string>(1,"magnitude");
+  }
+
+  virtual
+  std::vector<DataComponentInterpretation::DataComponentInterpretation>
+  get_data_component_interpretation () const
+  {
+    return
+      std::vector<DataComponentInterpretation::DataComponentInterpretation>
+      (1,DataComponentInterpretation::component_is_scalar);
+  }
+
+  virtual UpdateFlags get_needed_update_flags () const
+  {
+    return update_values;
+  }
+
+  virtual
+  void
+  compute_derived_quantities_vector (const DataPostprocessorInputs::Vector<dim> &input_data,
+                                     std::vector<Vector<double> >                    &computed_quantities) const
+  {
+    for (unsigned int q=0; q<input_data.solution_values.size(); ++q)
+      {
+        AssertThrow (computed_quantities[q].size() == 1,
+                     ExcInternalError());
+
+        computed_quantities[q](0) = input_data.solution_values[q](0)*input_data.solution_values[q](0) + input_data.solution_values[q](1)*input_data.solution_values[q](1);
+        AssertThrow (std::fabs(computed_quantities[q](0)-1) < 1e-12,
+                     ExcInternalError());
+      }
+  }
+};
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::output_results () const
+{
+  MyPostprocessor<dim> p;
+  DataOut<dim> data_out;
+  data_out.attach_dof_handler (dof_handler);
+  data_out.add_data_vector (solution, p);
+  data_out.build_patches ();
+  data_out.write_gnuplot (logfile);
+}
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::run ()
+{
+  make_grid_and_dofs();
+  solve ();
+  output_results ();
+}
+
+
+
+int main ()
+{
+  logfile << std::setprecision(2);
+  deallog << std::setprecision(2);
+
+  LaplaceProblem<2> laplace_problem_2d;
+  laplace_problem_2d.run ();
+
+  LaplaceProblem<3> laplace_problem_3d;
+  laplace_problem_3d.run ();
+
+  return 0;
+}
diff --git a/tests/numerics/data_out_postprocessor_01-new.output b/tests/numerics/data_out_postprocessor_01-new.output
new file mode 100644 (file)
index 0000000..5df4e5c
--- /dev/null
@@ -0,0 +1,783 @@
+# This file was generated by the deal.II library.
+
+
+#
+# For a description of the GNUPLOT format see the GNUPLOT manual.
+#
+# <x> <y> <magnitude> 
+0.5 0 1 
+1 0 1 
+
+0.5 0.5 1 
+1 0.5 1 
+
+
+0 0.5 1 
+0.5 0.5 1 
+
+0 1 1 
+0.5 1 1 
+
+
+0.5 0.5 1 
+1 0.5 1 
+
+0.5 1 1 
+1 1 1 
+
+
+0 0 1 
+0.25 0 1 
+
+0 0.25 1 
+0.25 0.25 1 
+
+
+0.25 0 1 
+0.5 0 1 
+
+0.25 0.25 1 
+0.5 0.25 1 
+
+
+0 0.25 1 
+0.25 0.25 1 
+
+0 0.5 1 
+0.25 0.5 1 
+
+
+0.25 0.25 1 
+0.5 0.25 1 
+
+0.25 0.5 1 
+0.5 0.5 1 
+
+
+# This file was generated by the deal.II library.
+
+
+#
+# For a description of the GNUPLOT format see the GNUPLOT manual.
+#
+# <x> <y> <z> <magnitude> 
+0.5 0 0 1
+1 0 0 1
+
+
+0.5 0 0 1
+0.5 0.5 0 1
+
+
+0.5 0 0 1
+0.5 0 0.5 1
+
+
+1 0 0 1
+1 0.5 0 1
+
+
+1 0 0 1
+1 0 0.5 1
+
+
+0.5 0.5 0 1
+1 0.5 0 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.5 1
+
+
+1 0.5 0 1
+1 0.5 0.5 1
+
+
+0.5 0 0.5 1
+1 0 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0.5 0.5 1
+
+
+1 0 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0 0.5 0 1
+0.5 0.5 0 1
+
+
+0 0.5 0 1
+0 1 0 1
+
+
+0 0.5 0 1
+0 0.5 0.5 1
+
+
+0.5 0.5 0 1
+0.5 1 0 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.5 1
+
+
+0 1 0 1
+0.5 1 0 1
+
+
+0 1 0 1
+0 1 0.5 1
+
+
+0.5 1 0 1
+0.5 1 0.5 1
+
+
+0 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0 1 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+0 1 0.5 1
+0.5 1 0.5 1
+
+
+0.5 0.5 0 1
+1 0.5 0 1
+
+
+0.5 0.5 0 1
+0.5 1 0 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.5 1
+
+
+1 0.5 0 1
+1 1 0 1
+
+
+1 0.5 0 1
+1 0.5 0.5 1
+
+
+0.5 1 0 1
+1 1 0 1
+
+
+0.5 1 0 1
+0.5 1 0.5 1
+
+
+1 1 0 1
+1 1 0.5 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+1 0.5 0.5 1
+1 1 0.5 1
+
+
+0.5 1 0.5 1
+1 1 0.5 1
+
+
+0 0 0.5 1
+0.5 0 0.5 1
+
+
+0 0 0.5 1
+0 0.5 0.5 1
+
+
+0 0 0.5 1
+0 0 1 1
+
+
+0.5 0 0.5 1
+0.5 0.5 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0 1 1
+
+
+0 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0 0.5 1 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+0 0 1 1
+0.5 0 1 1
+
+
+0 0 1 1
+0 0.5 1 1
+
+
+0.5 0 1 1
+0.5 0.5 1 1
+
+
+0 0.5 1 1
+0.5 0.5 1 1
+
+
+0.5 0 0.5 1
+1 0 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0.5 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0 1 1
+
+
+1 0 0.5 1
+1 0.5 0.5 1
+
+
+1 0 0.5 1
+1 0 1 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+1 0.5 0.5 1
+1 0.5 1 1
+
+
+0.5 0 1 1
+1 0 1 1
+
+
+0.5 0 1 1
+0.5 0.5 1 1
+
+
+1 0 1 1
+1 0.5 1 1
+
+
+0.5 0.5 1 1
+1 0.5 1 1
+
+
+0 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0 1 0.5 1
+
+
+0 0.5 0.5 1
+0 0.5 1 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+0 1 0.5 1
+0.5 1 0.5 1
+
+
+0 1 0.5 1
+0 1 1 1
+
+
+0.5 1 0.5 1
+0.5 1 1 1
+
+
+0 0.5 1 1
+0.5 0.5 1 1
+
+
+0 0.5 1 1
+0 1 1 1
+
+
+0.5 0.5 1 1
+0.5 1 1 1
+
+
+0 1 1 1
+0.5 1 1 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+1 0.5 0.5 1
+1 1 0.5 1
+
+
+1 0.5 0.5 1
+1 0.5 1 1
+
+
+0.5 1 0.5 1
+1 1 0.5 1
+
+
+0.5 1 0.5 1
+0.5 1 1 1
+
+
+1 1 0.5 1
+1 1 1 1
+
+
+0.5 0.5 1 1
+1 0.5 1 1
+
+
+0.5 0.5 1 1
+0.5 1 1 1
+
+
+1 0.5 1 1
+1 1 1 1
+
+
+0.5 1 1 1
+1 1 1 1
+
+
+0 0 0 1
+0.25 0 0 1
+
+
+0 0 0 1
+0 0.25 0 1
+
+
+0 0 0 1
+0 0 0.25 1
+
+
+0.25 0 0 1
+0.25 0.25 0 1
+
+
+0.25 0 0 1
+0.25 0 0.25 1
+
+
+0 0.25 0 1
+0.25 0.25 0 1
+
+
+0 0.25 0 1
+0 0.25 0.25 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0 0 0.25 1
+0.25 0 0.25 1
+
+
+0 0 0.25 1
+0 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0.25 0 0 1
+0.5 0 0 1
+
+
+0.25 0 0 1
+0.25 0.25 0 1
+
+
+0.25 0 0 1
+0.25 0 0.25 1
+
+
+0.5 0 0 1
+0.5 0.25 0 1
+
+
+0.5 0 0 1
+0.5 0 0.25 1
+
+
+0.25 0.25 0 1
+0.5 0.25 0 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0.5 0.25 0 1
+0.5 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.5 0 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0.5 0 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0 0.25 0 1
+0.25 0.25 0 1
+
+
+0 0.25 0 1
+0 0.5 0 1
+
+
+0 0.25 0 1
+0 0.25 0.25 1
+
+
+0.25 0.25 0 1
+0.25 0.5 0 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0 0.5 0 1
+0.25 0.5 0 1
+
+
+0 0.5 0 1
+0 0.5 0.25 1
+
+
+0.25 0.5 0 1
+0.25 0.5 0.25 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0 0.5 0.25 1
+0.25 0.5 0.25 1
+
+
+0.25 0.25 0 1
+0.5 0.25 0 1
+
+
+0.25 0.25 0 1
+0.25 0.5 0 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0.5 0.25 0 1
+0.5 0.5 0 1
+
+
+0.5 0.25 0 1
+0.5 0.25 0.25 1
+
+
+0.25 0.5 0 1
+0.5 0.5 0 1
+
+
+0.25 0.5 0 1
+0.25 0.5 0.25 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0.5 0.25 0.25 1
+0.5 0.5 0.25 1
+
+
+0.25 0.5 0.25 1
+0.5 0.5 0.25 1
+
+
+0 0 0.25 1
+0.25 0 0.25 1
+
+
+0 0 0.25 1
+0 0.25 0.25 1
+
+
+0 0 0.25 1
+0 0 0.5 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0 0.5 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0 0.25 0.5 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0 0 0.5 1
+0.25 0 0.5 1
+
+
+0 0 0.5 1
+0 0.25 0.5 1
+
+
+0.25 0 0.5 1
+0.25 0.25 0.5 1
+
+
+0 0.25 0.5 1
+0.25 0.25 0.5 1
+
+
+0.25 0 0.25 1
+0.5 0 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0 0.5 1
+
+
+0.5 0 0.25 1
+0.5 0.25 0.25 1
+
+
+0.5 0 0.25 1
+0.5 0 0.5 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0.5 0.25 0.25 1
+0.5 0.25 0.5 1
+
+
+0.25 0 0.5 1
+0.5 0 0.5 1
+
+
+0.25 0 0.5 1
+0.25 0.25 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0.25 0.5 1
+
+
+0.25 0.25 0.5 1
+0.5 0.25 0.5 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0 0.5 0.25 1
+
+
+0 0.25 0.25 1
+0 0.25 0.5 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0 0.5 0.25 1
+0.25 0.5 0.25 1
+
+
+0 0.5 0.25 1
+0 0.5 0.5 1
+
+
+0.25 0.5 0.25 1
+0.25 0.5 0.5 1
+
+
+0 0.25 0.5 1
+0.25 0.25 0.5 1
+
+
+0 0.25 0.5 1
+0 0.5 0.5 1
+
+
+0.25 0.25 0.5 1
+0.25 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0.25 0.5 0.5 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0.5 0.25 0.25 1
+0.5 0.5 0.25 1
+
+
+0.5 0.25 0.25 1
+0.5 0.25 0.5 1
+
+
+0.25 0.5 0.25 1
+0.5 0.5 0.25 1
+
+
+0.25 0.5 0.25 1
+0.25 0.5 0.5 1
+
+
+0.5 0.5 0.25 1
+0.5 0.5 0.5 1
+
+
+0.25 0.25 0.5 1
+0.5 0.25 0.5 1
+
+
+0.25 0.25 0.5 1
+0.25 0.5 0.5 1
+
+
+0.5 0.25 0.5 1
+0.5 0.5 0.5 1
+
+
+0.25 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
index 0b50f4a938ca1ff1fdac597ffd3c470f6ad9fe4c..ed79a15f0cc6ce5738be28af51509d5e656c6935 100644 (file)
@@ -150,19 +150,19 @@ public:
 
   virtual
   void
-  compute_derived_quantities_vector (const std::vector<Vector<double> >              &uh,
+  compute_derived_quantities_vector (const std::vector<Vector<double> >              &solution_values,
                                      const std::vector<std::vector<Tensor<1,dim> > > &,
                                      const std::vector<std::vector<Tensor<2,dim> > > &,
                                      const std::vector<Point<dim> > &,
                                      const std::vector<Point<dim> > &,
                                      std::vector<Vector<double> >                    &computed_quantities) const
   {
-    for (unsigned int q=0; q<uh.size(); ++q)
+    for (unsigned int q=0; q<solution_values.size(); ++q)
       {
         AssertThrow (computed_quantities[q].size() == 1,
                      ExcInternalError());
 
-        computed_quantities[q](0) = uh[q](0)*uh[q](0) + uh[q](1)*uh[q](1);
+        computed_quantities[q](0) = solution_values[q](0)*solution_values[q](0) + solution_values[q](1)*solution_values[q](1);
         AssertThrow (std::fabs(computed_quantities[q](0)-1) < 1e-12,
                      ExcInternalError());
       }
diff --git a/tests/numerics/data_out_postprocessor_scalar_01-new.cc b/tests/numerics/data_out_postprocessor_scalar_01-new.cc
new file mode 100644 (file)
index 0000000..cd6e43f
--- /dev/null
@@ -0,0 +1,194 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2000 - 2016 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+// tests DataPostprocessor: create a FE field that has two components of
+// the kind cos(something) and sin(something) and then have a postprocessor
+// that computes the sum of squares. should always be equal to one
+//
+// this test uses the shortcut class DataPostprocessorScalar to make
+// writing postprocessors simpler
+
+
+#include "../tests.h"
+#include <deal.II/grid/tria.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/dofs/dof_accessor.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/base/function.h>
+#include <deal.II/numerics/vector_tools.h>
+#include <deal.II/numerics/matrix_tools.h>
+#include <deal.II/lac/vector.h>
+
+#include <deal.II/numerics/data_out.h>
+#include <deal.II/numerics/data_postprocessor.h>
+#include <fstream>
+
+#include <deal.II/base/logstream.h>
+
+
+std::ofstream logfile("output");
+
+
+template <int dim>
+class LaplaceProblem
+{
+public:
+  LaplaceProblem ();
+  void run ();
+
+private:
+  void make_grid_and_dofs ();
+  void solve ();
+  void output_results () const;
+
+  Triangulation<dim>   triangulation;
+  FESystem<dim>            fe;
+  DoFHandler<dim>      dof_handler;
+
+  Vector<double>       solution;
+};
+
+
+template <int dim>
+LaplaceProblem<dim>::LaplaceProblem ()
+  :
+  fe (FE_Q<dim>(1),2),
+  dof_handler (triangulation)
+{}
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::make_grid_and_dofs ()
+{
+  GridGenerator::hyper_cube (triangulation, 0, 1);
+  triangulation.refine_global (1);
+  triangulation.begin_active()->set_refine_flag ();
+  triangulation.execute_coarsening_and_refinement ();
+
+  dof_handler.distribute_dofs (fe);
+  solution.reinit (dof_handler.n_dofs());
+}
+
+
+
+template <int dim>
+class SinesAndCosines : public Function<dim>
+{
+public:
+  SinesAndCosines ()
+    :
+    Function<dim> (2)
+  {}
+
+  double value (const Point<dim> &p,
+                const unsigned int component) const
+  {
+    switch (component)
+      {
+      case 0:
+        return std::sin (p.norm());
+      case 1:
+        return std::cos (p.norm());
+      default:
+        Assert (false, ExcNotImplemented());
+        return 0;
+      }
+  }
+};
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::solve ()
+{
+  // dummy solve. just insert some
+  // values as mentioned at the top
+  // of the file
+  VectorTools::interpolate (dof_handler,
+                            SinesAndCosines<dim>(),
+                            solution);
+}
+
+
+template <int dim>
+class MyPostprocessor : public DataPostprocessorScalar<dim>
+{
+public:
+  MyPostprocessor ()
+    :
+    DataPostprocessorScalar<dim> ("magnitude", update_values)
+  {}
+
+  virtual
+  void
+  compute_derived_quantities_vector (const DataPostprocessorInputs::Vector<dim> &input_data,
+                                     std::vector<Vector<double> >                    &computed_quantities) const
+  {
+    for (unsigned int q=0; q<input_data.solution_values.size(); ++q)
+      {
+        Assert (computed_quantities[q].size() == 1,
+                ExcInternalError());
+
+        computed_quantities[q](0) = input_data.solution_values[q](0)*input_data.solution_values[q](0) + input_data.solution_values[q](1)*input_data.solution_values[q](1);
+        AssertThrow (std::fabs(computed_quantities[q](0)-1) < 1e-12,
+                     ExcInternalError());
+      }
+  }
+};
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::output_results () const
+{
+  MyPostprocessor<dim> p;
+  DataOut<dim> data_out;
+  data_out.attach_dof_handler (dof_handler);
+  data_out.add_data_vector (solution, p);
+  data_out.build_patches ();
+  data_out.write_gnuplot (logfile);
+}
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::run ()
+{
+  make_grid_and_dofs();
+  solve ();
+  output_results ();
+}
+
+
+
+int main ()
+{
+  logfile << std::setprecision(2);
+  deallog << std::setprecision(2);
+
+  LaplaceProblem<2> laplace_problem_2d;
+  laplace_problem_2d.run ();
+
+  LaplaceProblem<3> laplace_problem_3d;
+  laplace_problem_3d.run ();
+
+  return 0;
+}
diff --git a/tests/numerics/data_out_postprocessor_scalar_01-new.output b/tests/numerics/data_out_postprocessor_scalar_01-new.output
new file mode 100644 (file)
index 0000000..5df4e5c
--- /dev/null
@@ -0,0 +1,783 @@
+# This file was generated by the deal.II library.
+
+
+#
+# For a description of the GNUPLOT format see the GNUPLOT manual.
+#
+# <x> <y> <magnitude> 
+0.5 0 1 
+1 0 1 
+
+0.5 0.5 1 
+1 0.5 1 
+
+
+0 0.5 1 
+0.5 0.5 1 
+
+0 1 1 
+0.5 1 1 
+
+
+0.5 0.5 1 
+1 0.5 1 
+
+0.5 1 1 
+1 1 1 
+
+
+0 0 1 
+0.25 0 1 
+
+0 0.25 1 
+0.25 0.25 1 
+
+
+0.25 0 1 
+0.5 0 1 
+
+0.25 0.25 1 
+0.5 0.25 1 
+
+
+0 0.25 1 
+0.25 0.25 1 
+
+0 0.5 1 
+0.25 0.5 1 
+
+
+0.25 0.25 1 
+0.5 0.25 1 
+
+0.25 0.5 1 
+0.5 0.5 1 
+
+
+# This file was generated by the deal.II library.
+
+
+#
+# For a description of the GNUPLOT format see the GNUPLOT manual.
+#
+# <x> <y> <z> <magnitude> 
+0.5 0 0 1
+1 0 0 1
+
+
+0.5 0 0 1
+0.5 0.5 0 1
+
+
+0.5 0 0 1
+0.5 0 0.5 1
+
+
+1 0 0 1
+1 0.5 0 1
+
+
+1 0 0 1
+1 0 0.5 1
+
+
+0.5 0.5 0 1
+1 0.5 0 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.5 1
+
+
+1 0.5 0 1
+1 0.5 0.5 1
+
+
+0.5 0 0.5 1
+1 0 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0.5 0.5 1
+
+
+1 0 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0 0.5 0 1
+0.5 0.5 0 1
+
+
+0 0.5 0 1
+0 1 0 1
+
+
+0 0.5 0 1
+0 0.5 0.5 1
+
+
+0.5 0.5 0 1
+0.5 1 0 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.5 1
+
+
+0 1 0 1
+0.5 1 0 1
+
+
+0 1 0 1
+0 1 0.5 1
+
+
+0.5 1 0 1
+0.5 1 0.5 1
+
+
+0 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0 1 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+0 1 0.5 1
+0.5 1 0.5 1
+
+
+0.5 0.5 0 1
+1 0.5 0 1
+
+
+0.5 0.5 0 1
+0.5 1 0 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.5 1
+
+
+1 0.5 0 1
+1 1 0 1
+
+
+1 0.5 0 1
+1 0.5 0.5 1
+
+
+0.5 1 0 1
+1 1 0 1
+
+
+0.5 1 0 1
+0.5 1 0.5 1
+
+
+1 1 0 1
+1 1 0.5 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+1 0.5 0.5 1
+1 1 0.5 1
+
+
+0.5 1 0.5 1
+1 1 0.5 1
+
+
+0 0 0.5 1
+0.5 0 0.5 1
+
+
+0 0 0.5 1
+0 0.5 0.5 1
+
+
+0 0 0.5 1
+0 0 1 1
+
+
+0.5 0 0.5 1
+0.5 0.5 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0 1 1
+
+
+0 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0 0.5 1 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+0 0 1 1
+0.5 0 1 1
+
+
+0 0 1 1
+0 0.5 1 1
+
+
+0.5 0 1 1
+0.5 0.5 1 1
+
+
+0 0.5 1 1
+0.5 0.5 1 1
+
+
+0.5 0 0.5 1
+1 0 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0.5 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0 1 1
+
+
+1 0 0.5 1
+1 0.5 0.5 1
+
+
+1 0 0.5 1
+1 0 1 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+1 0.5 0.5 1
+1 0.5 1 1
+
+
+0.5 0 1 1
+1 0 1 1
+
+
+0.5 0 1 1
+0.5 0.5 1 1
+
+
+1 0 1 1
+1 0.5 1 1
+
+
+0.5 0.5 1 1
+1 0.5 1 1
+
+
+0 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0 1 0.5 1
+
+
+0 0.5 0.5 1
+0 0.5 1 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+0 1 0.5 1
+0.5 1 0.5 1
+
+
+0 1 0.5 1
+0 1 1 1
+
+
+0.5 1 0.5 1
+0.5 1 1 1
+
+
+0 0.5 1 1
+0.5 0.5 1 1
+
+
+0 0.5 1 1
+0 1 1 1
+
+
+0.5 0.5 1 1
+0.5 1 1 1
+
+
+0 1 1 1
+0.5 1 1 1
+
+
+0.5 0.5 0.5 1
+1 0.5 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 1 0.5 1
+
+
+0.5 0.5 0.5 1
+0.5 0.5 1 1
+
+
+1 0.5 0.5 1
+1 1 0.5 1
+
+
+1 0.5 0.5 1
+1 0.5 1 1
+
+
+0.5 1 0.5 1
+1 1 0.5 1
+
+
+0.5 1 0.5 1
+0.5 1 1 1
+
+
+1 1 0.5 1
+1 1 1 1
+
+
+0.5 0.5 1 1
+1 0.5 1 1
+
+
+0.5 0.5 1 1
+0.5 1 1 1
+
+
+1 0.5 1 1
+1 1 1 1
+
+
+0.5 1 1 1
+1 1 1 1
+
+
+0 0 0 1
+0.25 0 0 1
+
+
+0 0 0 1
+0 0.25 0 1
+
+
+0 0 0 1
+0 0 0.25 1
+
+
+0.25 0 0 1
+0.25 0.25 0 1
+
+
+0.25 0 0 1
+0.25 0 0.25 1
+
+
+0 0.25 0 1
+0.25 0.25 0 1
+
+
+0 0.25 0 1
+0 0.25 0.25 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0 0 0.25 1
+0.25 0 0.25 1
+
+
+0 0 0.25 1
+0 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0.25 0 0 1
+0.5 0 0 1
+
+
+0.25 0 0 1
+0.25 0.25 0 1
+
+
+0.25 0 0 1
+0.25 0 0.25 1
+
+
+0.5 0 0 1
+0.5 0.25 0 1
+
+
+0.5 0 0 1
+0.5 0 0.25 1
+
+
+0.25 0.25 0 1
+0.5 0.25 0 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0.5 0.25 0 1
+0.5 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.5 0 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0.5 0 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0 0.25 0 1
+0.25 0.25 0 1
+
+
+0 0.25 0 1
+0 0.5 0 1
+
+
+0 0.25 0 1
+0 0.25 0.25 1
+
+
+0.25 0.25 0 1
+0.25 0.5 0 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0 0.5 0 1
+0.25 0.5 0 1
+
+
+0 0.5 0 1
+0 0.5 0.25 1
+
+
+0.25 0.5 0 1
+0.25 0.5 0.25 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0 0.5 0.25 1
+0.25 0.5 0.25 1
+
+
+0.25 0.25 0 1
+0.5 0.25 0 1
+
+
+0.25 0.25 0 1
+0.25 0.5 0 1
+
+
+0.25 0.25 0 1
+0.25 0.25 0.25 1
+
+
+0.5 0.25 0 1
+0.5 0.5 0 1
+
+
+0.5 0.25 0 1
+0.5 0.25 0.25 1
+
+
+0.25 0.5 0 1
+0.5 0.5 0 1
+
+
+0.25 0.5 0 1
+0.25 0.5 0.25 1
+
+
+0.5 0.5 0 1
+0.5 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0.5 0.25 0.25 1
+0.5 0.5 0.25 1
+
+
+0.25 0.5 0.25 1
+0.5 0.5 0.25 1
+
+
+0 0 0.25 1
+0.25 0 0.25 1
+
+
+0 0 0.25 1
+0 0.25 0.25 1
+
+
+0 0 0.25 1
+0 0 0.5 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0 0.5 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0 0.25 0.5 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0 0 0.5 1
+0.25 0 0.5 1
+
+
+0 0 0.5 1
+0 0.25 0.5 1
+
+
+0.25 0 0.5 1
+0.25 0.25 0.5 1
+
+
+0 0.25 0.5 1
+0.25 0.25 0.5 1
+
+
+0.25 0 0.25 1
+0.5 0 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0.25 0.25 1
+
+
+0.25 0 0.25 1
+0.25 0 0.5 1
+
+
+0.5 0 0.25 1
+0.5 0.25 0.25 1
+
+
+0.5 0 0.25 1
+0.5 0 0.5 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0.5 0.25 0.25 1
+0.5 0.25 0.5 1
+
+
+0.25 0 0.5 1
+0.5 0 0.5 1
+
+
+0.25 0 0.5 1
+0.25 0.25 0.5 1
+
+
+0.5 0 0.5 1
+0.5 0.25 0.5 1
+
+
+0.25 0.25 0.5 1
+0.5 0.25 0.5 1
+
+
+0 0.25 0.25 1
+0.25 0.25 0.25 1
+
+
+0 0.25 0.25 1
+0 0.5 0.25 1
+
+
+0 0.25 0.25 1
+0 0.25 0.5 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0 0.5 0.25 1
+0.25 0.5 0.25 1
+
+
+0 0.5 0.25 1
+0 0.5 0.5 1
+
+
+0.25 0.5 0.25 1
+0.25 0.5 0.5 1
+
+
+0 0.25 0.5 1
+0.25 0.25 0.5 1
+
+
+0 0.25 0.5 1
+0 0.5 0.5 1
+
+
+0.25 0.25 0.5 1
+0.25 0.5 0.5 1
+
+
+0 0.5 0.5 1
+0.25 0.5 0.5 1
+
+
+0.25 0.25 0.25 1
+0.5 0.25 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.5 0.25 1
+
+
+0.25 0.25 0.25 1
+0.25 0.25 0.5 1
+
+
+0.5 0.25 0.25 1
+0.5 0.5 0.25 1
+
+
+0.5 0.25 0.25 1
+0.5 0.25 0.5 1
+
+
+0.25 0.5 0.25 1
+0.5 0.5 0.25 1
+
+
+0.25 0.5 0.25 1
+0.25 0.5 0.5 1
+
+
+0.5 0.5 0.25 1
+0.5 0.5 0.5 1
+
+
+0.25 0.25 0.5 1
+0.5 0.25 0.5 1
+
+
+0.25 0.25 0.5 1
+0.25 0.5 0.5 1
+
+
+0.5 0.25 0.5 1
+0.5 0.5 0.5 1
+
+
+0.25 0.5 0.5 1
+0.5 0.5 0.5 1
+
+
index d0be151916f7ff30d9504a94cb134643a465f8fa..c9342ca9f2cd2d5434a5843853700560ac8bba7f 100644 (file)
@@ -139,19 +139,19 @@ public:
 
   virtual
   void
-  compute_derived_quantities_vector (const std::vector<Vector<double> >              &uh,
+  compute_derived_quantities_vector (const std::vector<Vector<double> >              &solution_values,
                                      const std::vector<std::vector<Tensor<1,dim> > > &,
                                      const std::vector<std::vector<Tensor<2,dim> > > &,
                                      const std::vector<Point<dim> > &,
                                      const std::vector<Point<dim> > &,
                                      std::vector<Vector<double> >                    &computed_quantities) const
   {
-    for (unsigned int q=0; q<uh.size(); ++q)
+    for (unsigned int q=0; q<solution_values.size(); ++q)
       {
         Assert (computed_quantities[q].size() == 1,
                 ExcInternalError());
 
-        computed_quantities[q](0) = uh[q](0)*uh[q](0) + uh[q](1)*uh[q](1);
+        computed_quantities[q](0) = solution_values[q](0)*solution_values[q](0) + solution_values[q](1)*solution_values[q](1);
         AssertThrow (std::fabs(computed_quantities[q](0)-1) < 1e-12,
                      ExcInternalError());
       }
diff --git a/tests/numerics/data_out_postprocessor_vector_01-new.cc b/tests/numerics/data_out_postprocessor_vector_01-new.cc
new file mode 100644 (file)
index 0000000..1dce522
--- /dev/null
@@ -0,0 +1,195 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2000 - 2016 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+// tests DataPostprocessor: create a FE field that has two components of
+// the kind cos(something) and sin(something) and then have a postprocessor
+// that computes the sum of squares. should always be equal to one
+//
+// this test uses the shortcut class DataPostprocessorVector to make
+// writing postprocessors simpler
+
+
+#include "../tests.h"
+#include <deal.II/grid/tria.h>
+#include <deal.II/dofs/dof_handler.h>
+#include <deal.II/grid/grid_generator.h>
+#include <deal.II/grid/tria_accessor.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/dofs/dof_accessor.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/base/function.h>
+#include <deal.II/numerics/vector_tools.h>
+#include <deal.II/numerics/matrix_tools.h>
+#include <deal.II/lac/vector.h>
+
+#include <deal.II/numerics/data_out.h>
+#include <deal.II/numerics/data_postprocessor.h>
+#include <fstream>
+
+#include <deal.II/base/logstream.h>
+
+
+std::ofstream logfile("output");
+
+
+template <int dim>
+class LaplaceProblem
+{
+public:
+  LaplaceProblem ();
+  void run ();
+
+private:
+  void make_grid_and_dofs ();
+  void solve ();
+  void output_results () const;
+
+  Triangulation<dim>   triangulation;
+  FESystem<dim>            fe;
+  DoFHandler<dim>      dof_handler;
+
+  Vector<double>       solution;
+};
+
+
+template <int dim>
+LaplaceProblem<dim>::LaplaceProblem ()
+  :
+  fe (FE_Q<dim>(1),2),
+  dof_handler (triangulation)
+{}
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::make_grid_and_dofs ()
+{
+  GridGenerator::hyper_cube (triangulation, 0, 1);
+  triangulation.refine_global (1);
+  triangulation.begin_active()->set_refine_flag ();
+  triangulation.execute_coarsening_and_refinement ();
+
+  dof_handler.distribute_dofs (fe);
+  solution.reinit (dof_handler.n_dofs());
+}
+
+
+
+template <int dim>
+class SinesAndCosines : public Function<dim>
+{
+public:
+  SinesAndCosines ()
+    :
+    Function<dim> (2)
+  {}
+
+  double value (const Point<dim> &p,
+                const unsigned int component) const
+  {
+    switch (component)
+      {
+      case 0:
+        return std::sin (p.norm());
+      case 1:
+        return std::cos (p.norm());
+      default:
+        Assert (false, ExcNotImplemented());
+        return 0;
+      }
+  }
+};
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::solve ()
+{
+  // dummy solve. just insert some
+  // values as mentioned at the top
+  // of the file
+  VectorTools::interpolate (dof_handler,
+                            SinesAndCosines<dim>(),
+                            solution);
+}
+
+
+template <int dim>
+class MyPostprocessor : public DataPostprocessorVector<dim>
+{
+public:
+  MyPostprocessor ()
+    :
+    DataPostprocessorVector<dim> ("magnitude_times_d", update_values)
+  {}
+
+  virtual
+  void
+  compute_derived_quantities_vector (const DataPostprocessorInputs::Vector<dim> &input_data,
+                                     std::vector<Vector<double> >                    &computed_quantities) const
+  {
+    for (unsigned int q=0; q<input_data.solution_values.size(); ++q)
+      {
+        Assert (computed_quantities[q].size() == dim,
+                ExcInternalError());
+
+        for (unsigned int d=0; d<dim; ++d)
+          computed_quantities[q](d) = input_data.solution_values[q](0)*input_data.solution_values[q](0) + input_data.solution_values[q](1)*input_data.solution_values[q](1);
+        AssertThrow (std::fabs(computed_quantities[q](0)-1) < 1e-12,
+                     ExcInternalError());
+      }
+  }
+};
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::output_results () const
+{
+  MyPostprocessor<dim> p;
+  DataOut<dim> data_out;
+  data_out.attach_dof_handler (dof_handler);
+  data_out.add_data_vector (solution, p);
+  data_out.build_patches ();
+  data_out.write_gnuplot (logfile);
+}
+
+
+
+template <int dim>
+void LaplaceProblem<dim>::run ()
+{
+  make_grid_and_dofs();
+  solve ();
+  output_results ();
+}
+
+
+
+int main ()
+{
+  logfile << std::setprecision(2);
+  deallog << std::setprecision(2);
+
+  LaplaceProblem<2> laplace_problem_2d;
+  laplace_problem_2d.run ();
+
+  LaplaceProblem<3> laplace_problem_3d;
+  laplace_problem_3d.run ();
+
+  return 0;
+}
diff --git a/tests/numerics/data_out_postprocessor_vector_01-new.output b/tests/numerics/data_out_postprocessor_vector_01-new.output
new file mode 100644 (file)
index 0000000..6e914ec
--- /dev/null
@@ -0,0 +1,783 @@
+# This file was generated by the deal.II library.
+
+
+#
+# For a description of the GNUPLOT format see the GNUPLOT manual.
+#
+# <x> <y> <magnitude_times_d> <magnitude_times_d> 
+0.5 0 1 1 
+1 0 1 1 
+
+0.5 0.5 1 1 
+1 0.5 1 1 
+
+
+0 0.5 1 1 
+0.5 0.5 1 1 
+
+0 1 1 1 
+0.5 1 1 1 
+
+
+0.5 0.5 1 1 
+1 0.5 1 1 
+
+0.5 1 1 1 
+1 1 1 1 
+
+
+0 0 1 1 
+0.25 0 1 1 
+
+0 0.25 1 1 
+0.25 0.25 1 1 
+
+
+0.25 0 1 1 
+0.5 0 1 1 
+
+0.25 0.25 1 1 
+0.5 0.25 1 1 
+
+
+0 0.25 1 1 
+0.25 0.25 1 1 
+
+0 0.5 1 1 
+0.25 0.5 1 1 
+
+
+0.25 0.25 1 1 
+0.5 0.25 1 1 
+
+0.25 0.5 1 1 
+0.5 0.5 1 1 
+
+
+# This file was generated by the deal.II library.
+
+
+#
+# For a description of the GNUPLOT format see the GNUPLOT manual.
+#
+# <x> <y> <z> <magnitude_times_d> <magnitude_times_d> <magnitude_times_d> 
+0.5 0 0 1 1 1
+1 0 0 1 1 1
+
+
+0.5 0 0 1 1 1
+0.5 0.5 0 1 1 1
+
+
+0.5 0 0 1 1 1
+0.5 0 0.5 1 1 1
+
+
+1 0 0 1 1 1
+1 0.5 0 1 1 1
+
+
+1 0 0 1 1 1
+1 0 0.5 1 1 1
+
+
+0.5 0.5 0 1 1 1
+1 0.5 0 1 1 1
+
+
+0.5 0.5 0 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+1 0.5 0 1 1 1
+1 0.5 0.5 1 1 1
+
+
+0.5 0 0.5 1 1 1
+1 0 0.5 1 1 1
+
+
+0.5 0 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+1 0 0.5 1 1 1
+1 0.5 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+1 0.5 0.5 1 1 1
+
+
+0 0.5 0 1 1 1
+0.5 0.5 0 1 1 1
+
+
+0 0.5 0 1 1 1
+0 1 0 1 1 1
+
+
+0 0.5 0 1 1 1
+0 0.5 0.5 1 1 1
+
+
+0.5 0.5 0 1 1 1
+0.5 1 0 1 1 1
+
+
+0.5 0.5 0 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0 1 0 1 1 1
+0.5 1 0 1 1 1
+
+
+0 1 0 1 1 1
+0 1 0.5 1 1 1
+
+
+0.5 1 0 1 1 1
+0.5 1 0.5 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0 1 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 1 0.5 1 1 1
+
+
+0 1 0.5 1 1 1
+0.5 1 0.5 1 1 1
+
+
+0.5 0.5 0 1 1 1
+1 0.5 0 1 1 1
+
+
+0.5 0.5 0 1 1 1
+0.5 1 0 1 1 1
+
+
+0.5 0.5 0 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+1 0.5 0 1 1 1
+1 1 0 1 1 1
+
+
+1 0.5 0 1 1 1
+1 0.5 0.5 1 1 1
+
+
+0.5 1 0 1 1 1
+1 1 0 1 1 1
+
+
+0.5 1 0 1 1 1
+0.5 1 0.5 1 1 1
+
+
+1 1 0 1 1 1
+1 1 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+1 0.5 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 1 0.5 1 1 1
+
+
+1 0.5 0.5 1 1 1
+1 1 0.5 1 1 1
+
+
+0.5 1 0.5 1 1 1
+1 1 0.5 1 1 1
+
+
+0 0 0.5 1 1 1
+0.5 0 0.5 1 1 1
+
+
+0 0 0.5 1 1 1
+0 0.5 0.5 1 1 1
+
+
+0 0 0.5 1 1 1
+0 0 1 1 1 1
+
+
+0.5 0 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0.5 0 0.5 1 1 1
+0.5 0 1 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0 0.5 1 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 0.5 1 1 1 1
+
+
+0 0 1 1 1 1
+0.5 0 1 1 1 1
+
+
+0 0 1 1 1 1
+0 0.5 1 1 1 1
+
+
+0.5 0 1 1 1 1
+0.5 0.5 1 1 1 1
+
+
+0 0.5 1 1 1 1
+0.5 0.5 1 1 1 1
+
+
+0.5 0 0.5 1 1 1
+1 0 0.5 1 1 1
+
+
+0.5 0 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0.5 0 0.5 1 1 1
+0.5 0 1 1 1 1
+
+
+1 0 0.5 1 1 1
+1 0.5 0.5 1 1 1
+
+
+1 0 0.5 1 1 1
+1 0 1 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+1 0.5 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 0.5 1 1 1 1
+
+
+1 0.5 0.5 1 1 1
+1 0.5 1 1 1 1
+
+
+0.5 0 1 1 1 1
+1 0 1 1 1 1
+
+
+0.5 0 1 1 1 1
+0.5 0.5 1 1 1 1
+
+
+1 0 1 1 1 1
+1 0.5 1 1 1 1
+
+
+0.5 0.5 1 1 1 1
+1 0.5 1 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0 1 0.5 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0 0.5 1 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 1 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 0.5 1 1 1 1
+
+
+0 1 0.5 1 1 1
+0.5 1 0.5 1 1 1
+
+
+0 1 0.5 1 1 1
+0 1 1 1 1 1
+
+
+0.5 1 0.5 1 1 1
+0.5 1 1 1 1 1
+
+
+0 0.5 1 1 1 1
+0.5 0.5 1 1 1 1
+
+
+0 0.5 1 1 1 1
+0 1 1 1 1 1
+
+
+0.5 0.5 1 1 1 1
+0.5 1 1 1 1 1
+
+
+0 1 1 1 1 1
+0.5 1 1 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+1 0.5 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 1 0.5 1 1 1
+
+
+0.5 0.5 0.5 1 1 1
+0.5 0.5 1 1 1 1
+
+
+1 0.5 0.5 1 1 1
+1 1 0.5 1 1 1
+
+
+1 0.5 0.5 1 1 1
+1 0.5 1 1 1 1
+
+
+0.5 1 0.5 1 1 1
+1 1 0.5 1 1 1
+
+
+0.5 1 0.5 1 1 1
+0.5 1 1 1 1 1
+
+
+1 1 0.5 1 1 1
+1 1 1 1 1 1
+
+
+0.5 0.5 1 1 1 1
+1 0.5 1 1 1 1
+
+
+0.5 0.5 1 1 1 1
+0.5 1 1 1 1 1
+
+
+1 0.5 1 1 1 1
+1 1 1 1 1 1
+
+
+0.5 1 1 1 1 1
+1 1 1 1 1 1
+
+
+0 0 0 1 1 1
+0.25 0 0 1 1 1
+
+
+0 0 0 1 1 1
+0 0.25 0 1 1 1
+
+
+0 0 0 1 1 1
+0 0 0.25 1 1 1
+
+
+0.25 0 0 1 1 1
+0.25 0.25 0 1 1 1
+
+
+0.25 0 0 1 1 1
+0.25 0 0.25 1 1 1
+
+
+0 0.25 0 1 1 1
+0.25 0.25 0 1 1 1
+
+
+0 0.25 0 1 1 1
+0 0.25 0.25 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0 0 0.25 1 1 1
+0.25 0 0.25 1 1 1
+
+
+0 0 0.25 1 1 1
+0 0.25 0.25 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0.25 0 0 1 1 1
+0.5 0 0 1 1 1
+
+
+0.25 0 0 1 1 1
+0.25 0.25 0 1 1 1
+
+
+0.25 0 0 1 1 1
+0.25 0 0.25 1 1 1
+
+
+0.5 0 0 1 1 1
+0.5 0.25 0 1 1 1
+
+
+0.5 0 0 1 1 1
+0.5 0 0.25 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.5 0.25 0 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0.5 0.25 0 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.5 0 0.25 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0.5 0 0.25 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0 0.25 0 1 1 1
+0.25 0.25 0 1 1 1
+
+
+0 0.25 0 1 1 1
+0 0.5 0 1 1 1
+
+
+0 0.25 0 1 1 1
+0 0.25 0.25 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.25 0.5 0 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0 0.5 0 1 1 1
+0.25 0.5 0 1 1 1
+
+
+0 0.5 0 1 1 1
+0 0.5 0.25 1 1 1
+
+
+0.25 0.5 0 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0 0.5 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0 0.5 0.25 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.5 0.25 0 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.25 0.5 0 1 1 1
+
+
+0.25 0.25 0 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0.5 0.25 0 1 1 1
+0.5 0.5 0 1 1 1
+
+
+0.5 0.25 0 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0.25 0.5 0 1 1 1
+0.5 0.5 0 1 1 1
+
+
+0.25 0.5 0 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0.5 0.5 0 1 1 1
+0.5 0.5 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0.5 0.25 0.25 1 1 1
+0.5 0.5 0.25 1 1 1
+
+
+0.25 0.5 0.25 1 1 1
+0.5 0.5 0.25 1 1 1
+
+
+0 0 0.25 1 1 1
+0.25 0 0.25 1 1 1
+
+
+0 0 0.25 1 1 1
+0 0.25 0.25 1 1 1
+
+
+0 0 0.25 1 1 1
+0 0 0.5 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.25 0 0.5 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0 0.25 0.5 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0 0 0.5 1 1 1
+0.25 0 0.5 1 1 1
+
+
+0 0 0.5 1 1 1
+0 0.25 0.5 1 1 1
+
+
+0.25 0 0.5 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0 0.25 0.5 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.5 0 0.25 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0.25 0 0.25 1 1 1
+0.25 0 0.5 1 1 1
+
+
+0.5 0 0.25 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0.5 0 0.25 1 1 1
+0.5 0 0.5 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0.5 0.25 0.25 1 1 1
+0.5 0.25 0.5 1 1 1
+
+
+0.25 0 0.5 1 1 1
+0.5 0 0.5 1 1 1
+
+
+0.25 0 0.5 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0.5 0 0.5 1 1 1
+0.5 0.25 0.5 1 1 1
+
+
+0.25 0.25 0.5 1 1 1
+0.5 0.25 0.5 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0.25 0.25 0.25 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0 0.5 0.25 1 1 1
+
+
+0 0.25 0.25 1 1 1
+0 0.25 0.5 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0 0.5 0.25 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0 0.5 0.25 1 1 1
+0 0.5 0.5 1 1 1
+
+
+0.25 0.5 0.25 1 1 1
+0.25 0.5 0.5 1 1 1
+
+
+0 0.25 0.5 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0 0.25 0.5 1 1 1
+0 0.5 0.5 1 1 1
+
+
+0.25 0.25 0.5 1 1 1
+0.25 0.5 0.5 1 1 1
+
+
+0 0.5 0.5 1 1 1
+0.25 0.5 0.5 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.5 0.25 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.5 0.25 1 1 1
+
+
+0.25 0.25 0.25 1 1 1
+0.25 0.25 0.5 1 1 1
+
+
+0.5 0.25 0.25 1 1 1
+0.5 0.5 0.25 1 1 1
+
+
+0.5 0.25 0.25 1 1 1
+0.5 0.25 0.5 1 1 1
+
+
+0.25 0.5 0.25 1 1 1
+0.5 0.5 0.25 1 1 1
+
+
+0.25 0.5 0.25 1 1 1
+0.25 0.5 0.5 1 1 1
+
+
+0.5 0.5 0.25 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0.25 0.25 0.5 1 1 1
+0.5 0.25 0.5 1 1 1
+
+
+0.25 0.25 0.5 1 1 1
+0.25 0.5 0.5 1 1 1
+
+
+0.5 0.25 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
+0.25 0.5 0.5 1 1 1
+0.5 0.5 0.5 1 1 1
+
+
index 754db2aad7c11a233eae9fd8ae56b7e8d728e2ca..84af679c0df7c81e48eeb9a3380a34586b904c95 100644 (file)
@@ -139,20 +139,20 @@ public:
 
   virtual
   void
-  compute_derived_quantities_vector (const std::vector<Vector<double> >              &uh,
+  compute_derived_quantities_vector (const std::vector<Vector<double> >              &solution_values,
                                      const std::vector<std::vector<Tensor<1,dim> > > &,
                                      const std::vector<std::vector<Tensor<2,dim> > > &,
                                      const std::vector<Point<dim> > &,
                                      const std::vector<Point<dim> > &,
                                      std::vector<Vector<double> >                    &computed_quantities) const
   {
-    for (unsigned int q=0; q<uh.size(); ++q)
+    for (unsigned int q=0; q<solution_values.size(); ++q)
       {
         Assert (computed_quantities[q].size() == dim,
                 ExcInternalError());
 
         for (unsigned int d=0; d<dim; ++d)
-          computed_quantities[q](d) = uh[q](0)*uh[q](0) + uh[q](1)*uh[q](1);
+          computed_quantities[q](d) = solution_values[q](0)*solution_values[q](0) + solution_values[q](1)*solution_values[q](1);
         AssertThrow (std::fabs(computed_quantities[q](0)-1) < 1e-12,
                      ExcInternalError());
       }
index 999f4692641f5c9a02d9f040892936e08bfcb715..948718800d2c371154ad6e3483ea547c7bf97cd3 100644 (file)
@@ -107,27 +107,27 @@ Postprocess<dim>::n_output_variables () const
 template <int dim>
 void
 Postprocess<dim>::compute_derived_quantities_vector (
-  const std::vector< Vector< double > >                  &uh,
-  const std::vector< std::vector< Tensor< 1, dim > > >   &duh,
-  const std::vector< std::vector< Tensor< 2, dim > > >   &dduh,
+  const std::vector< Vector< double > >                  &solution_values,
+  const std::vector< std::vector< Tensor< 1, dim > > >   &solution_gradients,
+  const std::vector< std::vector< Tensor< 2, dim > > >   &solution_hessians,
   const std::vector< Point< dim > >                     & /* normals */,
   const std::vector< Point< dim > >                     & /* locations */,
   std::vector< Vector< double > >                        &computed_quantities
 ) const
 {
-  Assert(computed_quantities.size() == uh.size(),
-         ExcDimensionMismatch (computed_quantities.size(), uh.size()));
+  Assert(computed_quantities.size() == solution_values.size(),
+         ExcDimensionMismatch (computed_quantities.size(), solution_values.size()));
 
   for (unsigned int i=0; i<computed_quantities.size(); i++)
     {
       Assert(computed_quantities[i].size() == 4,
              ExcDimensionMismatch (computed_quantities[i].size(), 3));
-      Assert(uh[i].size() == dim + 1, ExcDimensionMismatch (uh[i].size(), dim + 1));
+      Assert(solution_values[i].size() == dim + 1, ExcDimensionMismatch (solution_values[i].size(), dim + 1));
 
-      computed_quantities[i](0) = duh[i][0].norm(); // norm of x gradient
-      computed_quantities[i](1) = dduh[i][1].norm(); // norm of y hessian
-      computed_quantities[i](2) = duh[i][0].norm() + dduh[i][1].norm(); // norm of y hessian
-      computed_quantities[i](3) = uh[i].l2_norm();
+      computed_quantities[i](0) = solution_gradients[i][0].norm(); // norm of x gradient
+      computed_quantities[i](1) = solution_hessians[i][1].norm(); // norm of y hessian
+      computed_quantities[i](2) = solution_gradients[i][0].norm() + solution_hessians[i][1].norm(); // norm of y hessian
+      computed_quantities[i](3) = solution_values[i].l2_norm();
     }
 }
 
index 0c20e0ff5825d8726c5f05316f3451789d4e0dcf..7303f7608eac8cc54023137dccd2800deb120d54 100644 (file)
@@ -105,24 +105,24 @@ Postprocess<dim>::n_output_variables () const
 template <int dim>
 void
 Postprocess<dim>::compute_derived_quantities_scalar (
-  const std::vector< double >                  &uh,
-  const std::vector< Tensor< 1, dim > >   &duh,
-  const std::vector< Tensor< 2, dim > >   &dduh,
+  const std::vector< double >                  &solution_values,
+  const std::vector< Tensor< 1, dim > >   &solution_gradients,
+  const std::vector< Tensor< 2, dim > >   &solution_hessians,
   const std::vector< Point< dim > >                     & /* normals */,
   const std::vector< Point< dim > >                     & /* locations */,
   std::vector< Vector< double > >                        &computed_quantities
 ) const
 {
-  Assert(computed_quantities.size() == uh.size(),
-         ExcDimensionMismatch (computed_quantities.size(), uh.size()));
+  Assert(computed_quantities.size() == solution_values.size(),
+         ExcDimensionMismatch (computed_quantities.size(), solution_values.size()));
 
   for (unsigned int i=0; i<computed_quantities.size(); i++)
     {
       Assert(computed_quantities[i].size() == 2,
              ExcDimensionMismatch (computed_quantities[i].size(), 2));
 
-      computed_quantities[i](0) = duh[i][0]; // norm of x gradient
-      computed_quantities[i](1) = dduh[i][0].norm(); // norm of x hessian
+      computed_quantities[i](0) = solution_gradients[i][0]; // norm of x gradient
+      computed_quantities[i](1) = solution_hessians[i][0].norm(); // norm of x hessian
     }
 }
 

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.