]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Tests: remove fail category 15599/head
authorMatthias Maier <tamiko@43-1.org>
Sun, 2 Jul 2023 22:20:52 +0000 (17:20 -0500)
committerMatthias Maier <tamiko@43-1.org>
Sun, 2 Jul 2023 22:20:52 +0000 (17:20 -0500)
49 files changed:
tests/fail/abf_approximation_01.cc [deleted file]
tests/fail/arclength_boundary_02.cc [deleted file]
tests/fail/arclength_boundary_02.output [deleted file]
tests/fail/circular_01.cc [deleted file]
tests/fail/fe_nothing_04.cc [deleted file]
tests/fail/hp-step-14.cc [deleted file]
tests/fail/hp-step-15.cc [deleted file]
tests/fail/hp_constraints_q_08.cc [deleted file]
tests/fail/hp_constraints_q_system_08.cc [deleted file]
tests/fail/hp_constraints_q_system_x_08.cc [deleted file]
tests/fail/hp_constraints_rt_01.cc [deleted file]
tests/fail/hp_constraints_rt_02.cc [deleted file]
tests/fail/hp_constraints_rt_03.cc [deleted file]
tests/fail/hp_constraints_rt_04.cc [deleted file]
tests/fail/hp_constraints_rt_05.cc [deleted file]
tests/fail/hp_constraints_rt_06.cc [deleted file]
tests/fail/injection_dgp.cc [deleted file]
tests/fail/injection_dgp_nonparametric.cc [deleted file]
tests/fail/injection_nedelec.cc [deleted file]
tests/fail/injection_q_hierarchical.cc [deleted file]
tests/fail/injection_rt.cc [deleted file]
tests/fail/project_abf_01.cc [deleted file]
tests/fail/project_abf_02.cc [deleted file]
tests/fail/project_abf_03.cc [deleted file]
tests/fail/project_abf_04.cc [deleted file]
tests/fail/project_abf_05.cc [deleted file]
tests/fail/project_dgp_nonparametric_01.cc [deleted file]
tests/fail/project_dgp_nonparametric_02.cc [deleted file]
tests/fail/project_dgp_nonparametric_03.cc [deleted file]
tests/fail/project_dgp_nonparametric_04.cc [deleted file]
tests/fail/project_dgp_nonparametric_05.cc [deleted file]
tests/fail/project_q_hierarchical_03.cc [deleted file]
tests/fail/project_q_hierarchical_03.output [deleted file]
tests/fail/project_rt_03.cc [deleted file]
tests/fail/rt/rt.gpl [deleted file]
tests/fail/rt_4.cc [deleted file]
tests/fail/rt_6.cc [deleted file]
tests/fail/rt_crash_01.cc [deleted file]
tests/fail/rt_distorted_01.cc [deleted file]
tests/fail/rt_distorted_02.cc [deleted file]
tests/fail/scalapack_15_b.cc [deleted file]
tests/fail/scalapack_15_b.mpirun=1.output [deleted file]
tests/fail/scalapack_15_b.mpirun=10.output [deleted file]
tests/fail/scalapack_15_b.mpirun=4.output [deleted file]
tests/fail/scalapack_15_b.mpirun=5.output [deleted file]
tests/fail/step-15.cc [deleted file]
tests/fail/step-15.output [deleted file]
tests/fail/vectors_boundary_rhs_hp_02.cc [deleted file]
tests/fail/vectors_rhs_hp_02.cc [deleted file]

diff --git a/tests/fail/abf_approximation_01.cc b/tests/fail/abf_approximation_01.cc
deleted file mode 100644 (file)
index 11db1de..0000000
+++ /dev/null
@@ -1,531 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2003 - 2023 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-/*
- * check the projection error for a given polynomial. results should
- * be within rounding error if the polynomial is of low-enough order
- * to be represented by the ansatz space
- *
- * Like rt_approximation_01, but for ABF elements
- */
-
-
-
-#include "../tests.h"
-
-#define PRECISION 2
-
-
-char buf[1000];
-
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/numbers.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe.h>
-#include <deal.II/fe/fe_abf.h>
-#include <deal.II/fe/fe_dgq.h>
-#include <deal.II/fe/fe_q.h>
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_system.h>
-#include <deal.II/fe/fe_values.h>
-#include <deal.II/fe/mapping_q.h>
-#include <deal.II/fe/mapping_q1_eulerian.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_out.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/precondition.h>
-#include <deal.II/lac/solver_cg.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/sparsity_pattern.h>
-#include <deal.II/lac/vector.h>
-#include <deal.II/lac/vector_memory.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/matrix_tools.h>
-#include <deal.II/numerics/vector_tools.h>
-
-
-
-template <int dim>
-class TestMap1 : public Function<dim>
-{
-public:
-  TestMap1(const unsigned int n_components)
-    : Function<dim>(n_components)
-  {}
-
-  virtual ~TestMap1()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-
-template <int dim>
-double
-TestMap1<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  // u = x^2, v = y^2, dudx = 2 x, dvdy = 2 y, div u = 2x + 2y
-  // I.e. \int div u = 2 (for unit square)
-
-  if (component == 0)
-    return (p(0) * p(0));
-  if (component == 1)
-    return (p(1) * p(1));
-
-  return (0);
-}
-
-
-template <int dim>
-void
-TestMap1<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-
-  // Just fill the vector with the appropriate components
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-
-///-----------------------------------------------------------------------
-
-template <int dim>
-class TestDef1 : public Function<dim>
-{
-private:
-  const double phi;
-
-public:
-  TestDef1(const unsigned int n_components, const double ph)
-    : Function<dim>(n_components)
-    , phi(ph)
-  {}
-
-  virtual ~TestDef1()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-
-template <int dim>
-double
-TestDef1<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  Point<2> center;
-  center(0)    = 0.5;
-  center(1)    = 0.5;
-  double rad   = p.distance(center),
-         phi_p = atan2(p(0) - center(0), p(1) - center(1));
-
-  if (component == 0)
-    return rad * (sin(phi + phi_p) - sin(phi_p));
-  else
-    return rad * (cos(phi + phi_p) - cos(phi_p));
-}
-
-
-template <int dim>
-void
-TestDef1<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-///-----------------------------------------------------------------------
-
-
-template <int dim>
-class TestDef2 : public Function<dim>
-{
-private:
-  const double scale;
-
-public:
-  TestDef2(const unsigned int n_components, const double sc)
-    : Function<dim>(n_components)
-    , scale(sc)
-  {}
-
-  virtual ~TestDef2()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-template <int dim>
-double
-TestDef2<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  double x = p(0), y = p(1);
-
-  if (component == 0)
-    return scale * x;
-  else
-    return scale * y;
-}
-
-
-template <int dim>
-void
-TestDef2<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-///-----------------------------------------------------------------------
-// testDef3 implements parallelograms ...
-
-
-template <int dim>
-class TestDef3 : public Function<dim>
-{
-private:
-  const double scale;
-
-public:
-  TestDef3(const unsigned int n_components, const double sc)
-    : Function<dim>(n_components)
-    , scale(sc)
-  {}
-
-  virtual ~TestDef3()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-template <int dim>
-double
-TestDef3<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  double y = p(1);
-
-  if (component == 0)
-    return scale * y;
-  else
-    return 0;
-}
-
-
-template <int dim>
-void
-TestDef3<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-// Wrapper class for polynomials.
-
-template <int dim>
-class TestPoly : public Function<dim>
-{
-private:
-  std::vector<Polynomials::Polynomial<double>> polys;
-
-public:
-  TestPoly(unsigned int deg)
-    : Function<dim>(2)
-  {
-    std::vector<double> coeff(deg, 0.0);
-    for (unsigned int p = 0; p < 4; ++p)
-      {
-        for (unsigned int i = 0; i < deg; ++i)
-          {
-            double c = ((double)Testing::rand()) / ((double)RAND_MAX + 1);
-            coeff[i] = c;
-          }
-        polys.push_back(Polynomials::Polynomial<double>(coeff));
-      }
-  }
-
-  virtual ~TestPoly()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-template <int dim>
-double
-TestPoly<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  double x = p(0), y = p(1);
-
-  // Ugly hack, but should do the job ...
-  if (component == 0)
-    return polys[0].value(x) + polys[1].value(y);
-  else
-    return polys[2].value(x) + polys[3].value(y);
-}
-
-
-template <int dim>
-void
-TestPoly<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-
-/*
- * Check the value of the derivative field.
- */
-
-double
-TestProjection(Mapping<2> &mapping, DoFHandler<2> *dof_handler)
-{
-  Vector<double> solution;
-  solution.reinit(dof_handler->n_dofs());
-
-  // Create and Project test function to H_div space and evaluate the error
-  // If the error is in the range of machine precision, this polynomial
-  // degree can obviously be represented by projected field.
-
-  for (unsigned int deg = 1; deg < 4; ++deg)
-    {
-      TestPoly<2> pol(deg);
-
-      // Project solution onto RT FE field
-      AffineConstraints<double> hn_constraints;
-      hn_constraints.clear();
-      DoFTools::make_hanging_node_constraints(*dof_handler, hn_constraints);
-      hn_constraints.close();
-      VectorTools::project(
-        mapping, *dof_handler, hn_constraints, QGauss<2>(6), pol, solution);
-
-      // Now evaluate error ...
-      // Use a high order quadrature.
-      QGauss<2>   quad(6);
-      FEValues<2> fe_values(mapping,
-                            dof_handler->get_fe(),
-                            quad,
-                            UpdateFlags(update_values |
-                                        update_quadrature_points |
-                                        update_gradients | update_JxW_values |
-                                        update_contravariant_transformation));
-
-      const unsigned int n_q_points   = quad.size();
-      const unsigned int n_components = dof_handler->get_fe().n_components();
-
-      // Cell iterators
-      DoFHandler<2>::active_cell_iterator cell = dof_handler->begin_active(),
-                                          endc = dof_handler->end();
-
-      double err_u = 0, err_v = 0;
-
-      for (; cell != endc; ++cell)
-        {
-          fe_values.reinit(cell);
-
-          // Get values from solution vector (For Trap.Rule)
-          std::vector<Vector<double>> this_value(n_q_points,
-                                                 Vector<double>(n_components));
-          fe_values.get_function_values(solution, this_value);
-
-          for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-            {
-              double   u = this_value[q_point](0), v = this_value[q_point](1);
-              Point<2> p = fe_values.quadrature_point(q_point);
-
-              double u_ex = pol.value(p, 0), v_ex = pol.value(p, 1);
-
-              double JxW = fe_values.JxW(q_point);
-
-              err_u += (u - u_ex) * (u - u_ex) * JxW;
-              err_v += (v - v_ex) * (v - v_ex) * JxW;
-            }
-        }
-
-      sprintf(buf, "Deg %i  ErrU %e  ErrV %e\n", deg, err_u, err_v);
-      deallog << buf;
-    }
-
-
-  // Test the core functionality
-  DataOut<2> *data_out = new DataOut<2>;
-  data_out->attach_dof_handler(*dof_handler);
-  data_out->add_data_vector(solution, "solution");
-  data_out->build_patches(mapping, 4);
-
-  data_out->write_gnuplot(deallog.get_file_stream());
-
-  delete data_out;
-
-  return (0.0);
-}
-
-
-int
-main()
-{
-  initlog();
-  deallog.get_file_stream().precision(PRECISION);
-  deallog.get_file_stream().setf(std::ios::fixed);
-
-  Triangulation<2> tria_test;
-  DoFHandler<2> *  dof_handler, *dof_handler_def;
-  Point<2>         p1(0, 0), p2(1, 1);
-
-  GridGenerator::hyper_rectangle(tria_test, p1, p2);
-  //  tria_test.refine_global (1);
-  //  GridTools::distort_random (0.4, tria_test);
-
-  // Create a DoFHandler for the ABF space
-  FE_ABF<2> fe(0);
-  dof_handler = new DoFHandler<2>(tria_test);
-  dof_handler->distribute_dofs(fe);
-
-  QGauss<2> quad_temp(6);
-  sprintf(buf,
-          "DoFs per Quad: %i per Line %i per Vert %i\n",
-          fe.dofs_per_quad,
-          fe.dofs_per_line,
-          fe.dofs_per_vertex);
-  deallog << buf;
-  sprintf(buf, "QPoints %i\n", quad_temp.size());
-  deallog << buf;
-
-  // Create an deformation object for the Eulerian mapping
-  FESystem<2> fe_def(FE_Q<2>(1), 2);
-  dof_handler_def = new DoFHandler<2>(tria_test);
-  dof_handler_def->distribute_dofs(fe_def);
-
-  // Alloc some DoFs
-  Vector<double> solution, solution_q, deformation;
-  solution.reinit(dof_handler->n_dofs());
-  solution_q.reinit(dof_handler->n_dofs());
-  deformation.reinit(dof_handler_def->n_dofs());
-
-  AffineConstraints<double> hn_constraints_def;
-  hn_constraints_def.clear();
-  DoFTools::make_hanging_node_constraints(*dof_handler_def, hn_constraints_def);
-  hn_constraints_def.close();
-
-  {
-    MappingQ1Eulerian<2> mapping_euler(deformation, *dof_handler_def);
-
-    // Try rotating the elements
-    for (double rotat = 0; rotat < 2 * numbers::PI; rotat += 0.25 * numbers::PI)
-      {
-        // Rotate element
-        VectorTools::project(*dof_handler_def,
-                             hn_constraints_def,
-                             QGauss<2>(6),
-                             TestDef1<2>(2, rotat),
-                             deformation);
-        sprintf(buf, "phi = %e\n", rotat);
-        deallog << buf;
-        TestProjection(mapping_euler, dof_handler);
-      }
-
-    // Try resizing the elements
-    for (double scale = -0.75; scale < 4.0; scale += 0.25)
-      {
-        VectorTools::project(*dof_handler_def,
-                             hn_constraints_def,
-                             QGauss<2>(6),
-                             TestDef2<2>(2, scale),
-                             deformation);
-        sprintf(buf, "Scale = %e\n", scale);
-        deallog << buf;
-        TestProjection(mapping_euler, dof_handler);
-      }
-
-    // Try paralellogramming the elements
-    for (double scale = -1.0; scale < 1.0; scale += 0.25)
-      {
-        VectorTools::project(*dof_handler_def,
-                             hn_constraints_def,
-                             QGauss<2>(6),
-                             TestDef3<2>(2, scale),
-                             deformation);
-        sprintf(buf, "Scale = %e\n", scale);
-        deallog << buf;
-        TestProjection(mapping_euler, dof_handler);
-      }
-
-    // Try arbitrary deformation ...
-    for (unsigned int i = 0; i < deformation.size(); ++i)
-      {
-        double c       = ((double)Testing::rand()) / ((double)RAND_MAX + 1);
-        deformation(i) = 0.35 * (c - 0.5);
-      }
-
-    sprintf(buf, "Arbitrary\n");
-    deallog << buf;
-    TestProjection(mapping_euler, dof_handler);
-  }
-
-  delete (dof_handler);
-  delete (dof_handler_def);
-
-  return (0);
-}
diff --git a/tests/fail/arclength_boundary_02.cc b/tests/fail/arclength_boundary_02.cc
deleted file mode 100644 (file)
index dfdc67e..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2014 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_out.h>
-#include <deal.II/grid/tria.h>
-
-#include <deal.II/opencascade/manifold_lib.h>
-#include <deal.II/opencascade/utilities.h>
-
-#include <Standard_Stream.hxx>
-#include <TopTools.hxx>
-#include <TopoDS_Shape.hxx>
-
-#include "../tests.h"
-
-// Create a Triangulation, interpolate its boundary points to a smooth
-// BSpline, and use that as an arlength Boundary Descriptor.
-
-using namespace OpenCASCADE;
-
-int
-main()
-{
-  std::ofstream logfile("output");
-
-  // Create a bspline passign through the points
-  std::vector<Point<2>> pts;
-  pts.push_back(Point<2>(0, 0));
-  pts.push_back(Point<2>(0, 1));
-  pts.push_back(Point<2>(1, 1));
-  pts.push_back(Point<2>(1, 0));
-
-  TopoDS_Edge edge = interpolation_curve(pts, Tensor<1, 2>(), true);
-  ArclengthProjectionLineManifold<2, 2> manifold(edge);
-
-  Triangulation<2> tria;
-  GridGenerator::hyper_cube(tria);
-
-  tria.set_all_manifold_ids_on_boundary(1);
-  tria.begin_active()->face(2)->set_manifold_id(numbers::flat_manifold_id);
-  tria.set_manifold(1, manifold);
-
-  tria.refine_global(3);
-  GridOut gridout;
-  gridout.write_msh(tria, logfile);
-
-  return 0;
-}
diff --git a/tests/fail/arclength_boundary_02.output b/tests/fail/arclength_boundary_02.output
deleted file mode 100644 (file)
index fea54f2..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-$NOD
-81
-1  0 0 0
-2  1 0 0
-3  0 1 0
-4  1 1 0
-5  0.5 0 0
-6  -0.251337 0.515857 0
-7  1.16406 0.505545 0
-8  0.504074 1.14672 0
-9  0.4896 0.521016 0
-10  0.25 0 0
-11  0.75 0 0
-12  -0.158882 0.242372 0
-13  -0.20277 0.796991 0
-14  1.11495 0.242077 0
-15  1.13535 0.7715 0
-16  0.242844 1.10455 0
-17  0.767092 1.12113 0
-18  0.4948 0.260508 0
-19  0.496837 0.833869 0
-20  0.119131 0.518436 0
-21  0.826831 0.51328 0
-22  0.180414 0.257274 0
-23  0.79253 0.255303 0
-24  0.174797 0.80468 0
-25  0.79798 0.801633 0
-26  0.125 0 0
-27  0.375 0 0
-28  0.625 0 0
-29  0.875 0 0
-30  -0.08483 0.11767 0
-31  -0.217128 0.375124 0
-32  -0.249712 0.660431 0
-33  -0.114709 0.911629 0
-34  1.06551 0.117217 0
-35  1.1481 0.372213 0
-36  1.16089 0.639761 0
-37  1.08298 0.894921 0
-38  0.117841 1.06055 0
-39  0.372227 1.13328 0
-40  0.636548 1.14359 0
-41  0.891132 1.07494 0
-42  0.4974 0.130254 0
-43  0.4922 0.390762 0
-44  0.493218 0.677443 0
-45  0.500456 0.990296 0
-46  -0.0661032 0.517147 0
-47  0.304365 0.519726 0
-48  0.658215 0.517148 0
-49  0.995446 0.509412 0
-50  0.215207 0.128637 0
-51  0.149773 0.387855 0
-52  0.0107661 0.249823 0
-53  0.337607 0.258891 0
-54  0.771265 0.127652 0
-55  0.80968 0.384292 0
-56  0.643665 0.257905 0
-57  0.953738 0.24869 0
-58  0.146964 0.661558 0
-59  0.208821 0.954615 0
-60  -0.0139862 0.800836 0
-61  0.335817 0.819275 0
-62  0.812405 0.657456 0
-63  0.782536 0.961381 0
-64  0.647409 0.817751 0
-65  0.966663 0.786567 0
-66  0.0672094 0.124472 0
-67  0.356303 0.129445 0
-68  -0.033678 0.381489 0
-69  0.320986 0.389308 0
-70  0.634332 0.128953 0
-71  0.915373 0.123867 0
-72  0.65094 0.387527 0
-73  0.978892 0.378252 0
-74  -0.0513737 0.660995 0
-75  0.320091 0.6695 0
-76  0.0516048 0.929231 0
-77  0.354022 0.976278 0
-78  0.652812 0.667449 0
-79  0.986646 0.648609 0
-80  0.641978 0.980671 0
-81  0.927966 0.926509 0
-$ENDNOD
-$ELM
-64
-1 3 0 0 4 1 26 66 30 
-2 3 0 0 4 26 10 50 66 
-3 3 0 0 4 30 66 52 12 
-4 3 0 0 4 66 50 22 52 
-5 3 0 0 4 10 27 67 50 
-6 3 0 0 4 27 5 42 67 
-7 3 0 0 4 50 67 53 22 
-8 3 0 0 4 67 42 18 53 
-9 3 0 0 4 12 52 68 31 
-10 3 0 0 4 52 22 51 68 
-11 3 0 0 4 31 68 46 6 
-12 3 0 0 4 68 51 20 46 
-13 3 0 0 4 22 53 69 51 
-14 3 0 0 4 53 18 43 69 
-15 3 0 0 4 51 69 47 20 
-16 3 0 0 4 69 43 9 47 
-17 3 0 0 4 5 28 70 42 
-18 3 0 0 4 28 11 54 70 
-19 3 0 0 4 42 70 56 18 
-20 3 0 0 4 70 54 23 56 
-21 3 0 0 4 11 29 71 54 
-22 3 0 0 4 29 2 34 71 
-23 3 0 0 4 54 71 57 23 
-24 3 0 0 4 71 34 14 57 
-25 3 0 0 4 18 56 72 43 
-26 3 0 0 4 56 23 55 72 
-27 3 0 0 4 43 72 48 9 
-28 3 0 0 4 72 55 21 48 
-29 3 0 0 4 23 57 73 55 
-30 3 0 0 4 57 14 35 73 
-31 3 0 0 4 55 73 49 21 
-32 3 0 0 4 73 35 7 49 
-33 3 0 0 4 6 46 74 32 
-34 3 0 0 4 46 20 58 74 
-35 3 0 0 4 32 74 60 13 
-36 3 0 0 4 74 58 24 60 
-37 3 0 0 4 20 47 75 58 
-38 3 0 0 4 47 9 44 75 
-39 3 0 0 4 58 75 61 24 
-40 3 0 0 4 75 44 19 61 
-41 3 0 0 4 13 60 76 33 
-42 3 0 0 4 60 24 59 76 
-43 3 0 0 4 33 76 38 3 
-44 3 0 0 4 76 59 16 38 
-45 3 0 0 4 24 61 77 59 
-46 3 0 0 4 61 19 45 77 
-47 3 0 0 4 59 77 39 16 
-48 3 0 0 4 77 45 8 39 
-49 3 0 0 4 9 48 78 44 
-50 3 0 0 4 48 21 62 78 
-51 3 0 0 4 44 78 64 19 
-52 3 0 0 4 78 62 25 64 
-53 3 0 0 4 21 49 79 62 
-54 3 0 0 4 49 7 36 79 
-55 3 0 0 4 62 79 65 25 
-56 3 0 0 4 79 36 15 65 
-57 3 0 0 4 19 64 80 45 
-58 3 0 0 4 64 25 63 80 
-59 3 0 0 4 45 80 40 8 
-60 3 0 0 4 80 63 17 40 
-61 3 0 0 4 25 65 81 63 
-62 3 0 0 4 65 15 37 81 
-63 3 0 0 4 63 81 41 17 
-64 3 0 0 4 81 37 4 41 
-$ENDELM
diff --git a/tests/fail/circular_01.cc b/tests/fail/circular_01.cc
deleted file mode 100644 (file)
index fa068ea..0000000
+++ /dev/null
@@ -1,888 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2021 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// a modified version of step-27 that crashes due to circular constraints
-
-char logname[] = "output";
-
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/quadrature_lib.h>
-#include <deal.II/base/timer.h>
-#include <deal.II/base/utilities.h>
-
-#include <deal.II/dofs/dof_accessor.h>
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe_q.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_out.h>
-#include <deal.II/grid/grid_refinement.h>
-#include <deal.II/grid/manifold_lib.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/hp/fe_values.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/dynamic_sparsity_pattern.h>
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/precondition.h>
-#include <deal.II/lac/solver_cg.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/error_estimator.h>
-#include <deal.II/numerics/matrix_tools.h>
-#include <deal.II/numerics/vector_tools.h>
-
-#include <complex>
-#include <iostream>
-
-#include "../tests.h"
-
-// Finally, this is as in previous
-// programs:
-
-template <int dim>
-class LaplaceProblem
-{
-public:
-  LaplaceProblem();
-  ~LaplaceProblem();
-
-  void
-  run();
-
-private:
-  void
-  setup_system();
-  void
-  assemble_system();
-  void
-  solve();
-  void
-  create_coarse_grid();
-  void
-  refine_grid();
-  void
-  estimate_smoothness(Vector<float> &smoothness_indicators) const;
-  void
-  output_results(const unsigned int cycle) const;
-
-  Triangulation<dim> triangulation;
-
-  DoFHandler<dim>          dof_handler;
-  hp::FECollection<dim>    fe_collection;
-  hp::QCollection<dim>     quadrature_collection;
-  hp::QCollection<dim - 1> face_quadrature_collection;
-
-  AffineConstraints<double> hanging_node_constraints;
-
-  SparsityPattern      sparsity_pattern;
-  SparseMatrix<double> system_matrix;
-
-  Vector<double> solution;
-  Vector<double> system_rhs;
-
-  Timer distr, condense, hang, assemble, solver;
-};
-
-
-
-template <int dim>
-class RightHandSide : public Function<dim>
-{
-public:
-  RightHandSide()
-    : Function<dim>()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component) const;
-};
-
-
-template <int dim>
-double
-RightHandSide<dim>::value(const Point<dim> &p,
-                          const unsigned int /*component*/) const
-{
-  double product = 1;
-  for (unsigned int d = 0; d < dim; ++d)
-    product *= (p[d] + 1);
-  return product;
-}
-
-
-
-template <int dim>
-LaplaceProblem<dim>::LaplaceProblem()
-  : dof_handler(triangulation)
-{
-  for (unsigned int degree = 2; degree < (dim == 2 ? 8 : 5); ++degree)
-    {
-      fe_collection.push_back(FE_Q<dim>(degree));
-      quadrature_collection.push_back(QGauss<dim>(degree + 2));
-      face_quadrature_collection.push_back(QGauss<dim - 1>(degree + 2));
-    }
-}
-
-
-template <int dim>
-LaplaceProblem<dim>::~LaplaceProblem()
-{
-  dof_handler.clear();
-}
-
-template <int dim>
-void
-LaplaceProblem<dim>::setup_system()
-{
-  distr.reset();
-  distr.start();
-  dof_handler.distribute_dofs(fe_collection);
-  distr.stop();
-
-  solution.reinit(dof_handler.n_dofs());
-  system_rhs.reinit(dof_handler.n_dofs());
-
-  hanging_node_constraints.clear();
-  hang.reset();
-  hang.start();
-  DoFTools::make_hanging_node_constraints(dof_handler,
-                                          hanging_node_constraints);
-
-  hanging_node_constraints.close();
-  hang.stop();
-
-  if (dim < 3)
-    {
-      sparsity_pattern.reinit(dof_handler.n_dofs(),
-                              dof_handler.n_dofs(),
-                              dof_handler.max_couplings_between_dofs());
-      DoFTools::make_sparsity_pattern(dof_handler, sparsity_pattern);
-
-      condense.reset();
-      condense.start();
-      hanging_node_constraints.condense(sparsity_pattern);
-      condense.stop();
-      sparsity_pattern.compress();
-    }
-  else
-    {
-      DynamicSparsityPattern csp(dof_handler.n_dofs(), dof_handler.n_dofs());
-      DoFTools::make_sparsity_pattern(dof_handler, csp);
-
-      condense.reset();
-      condense.start();
-      hanging_node_constraints.condense(csp);
-      condense.stop();
-
-      sparsity_pattern.copy_from(csp);
-    }
-
-  system_matrix.reinit(sparsity_pattern);
-}
-
-template <int dim>
-void
-LaplaceProblem<dim>::assemble_system()
-{
-  hp::FEValues<dim> hp_fe_values(fe_collection,
-                                 quadrature_collection,
-                                 update_values | update_gradients |
-                                   update_quadrature_points |
-                                   update_JxW_values);
-
-  const RightHandSide<dim> rhs_function;
-
-  typename DoFHandler<dim>::active_cell_iterator cell =
-                                                   dof_handler.begin_active(),
-                                                 endc = dof_handler.end();
-  for (; cell != endc; ++cell)
-    {
-      const unsigned int dofs_per_cell = cell->get_fe().dofs_per_cell;
-      FullMatrix<double> cell_matrix(dofs_per_cell, dofs_per_cell);
-      Vector<double>     cell_rhs(dofs_per_cell);
-
-      std::vector<types::global_dof_index> local_dof_indices(dofs_per_cell);
-
-      cell_matrix = 0;
-      cell_rhs    = 0;
-
-      hp_fe_values.reinit(cell);
-
-      const FEValues<dim> &fe_values = hp_fe_values.get_present_fe_values();
-
-      std::vector<double> rhs_values(fe_values.n_quadrature_points);
-      rhs_function.value_list(fe_values.get_quadrature_points(), rhs_values);
-
-      for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points;
-           ++q_point)
-        for (unsigned int i = 0; i < dofs_per_cell; ++i)
-          {
-            for (unsigned int j = 0; j < dofs_per_cell; ++j)
-              cell_matrix(i, j) +=
-                (fe_values.shape_grad(i, q_point) *
-                 fe_values.shape_grad(j, q_point) * fe_values.JxW(q_point));
-
-            cell_rhs(i) += (fe_values.shape_value(i, q_point) *
-                            rhs_values[q_point] * fe_values.JxW(q_point));
-          }
-
-      cell->get_dof_indices(local_dof_indices);
-      for (unsigned int i = 0; i < dofs_per_cell; ++i)
-        {
-          for (unsigned int j = 0; j < dofs_per_cell; ++j)
-            system_matrix.add(local_dof_indices[i],
-                              local_dof_indices[j],
-                              cell_matrix(i, j));
-
-          system_rhs(local_dof_indices[i]) += cell_rhs(i);
-        }
-    }
-
-  condense.start();
-  hanging_node_constraints.condense(system_matrix);
-  hanging_node_constraints.condense(system_rhs);
-  condense.stop();
-  std::map<types::global_dof_index, double> boundary_values;
-  VectorTools::interpolate_boundary_values(dof_handler,
-                                           0,
-                                           Functions::ZeroFunction<dim>(),
-                                           boundary_values);
-  MatrixTools::apply_boundary_values(boundary_values,
-                                     system_matrix,
-                                     solution,
-                                     system_rhs);
-}
-
-template <int dim>
-void
-LaplaceProblem<dim>::solve()
-{
-  SolverControl solver_control(system_rhs.size(), 1e-8 * system_rhs.l2_norm());
-  SolverCG<>    cg(solver_control);
-
-  PreconditionSSOR<> preconditioner;
-  preconditioner.initialize(system_matrix, 1.2);
-
-  cg.solve(system_matrix, solution, system_rhs, preconditioner);
-
-  hanging_node_constraints.distribute(solution);
-}
-
-
-unsigned int
-int_pow(const unsigned int x, const unsigned int n)
-{
-  unsigned int p = 1;
-  for (unsigned int i = 0; i < n; ++i)
-    p *= x;
-  return p;
-}
-
-
-template <int dim>
-void
-LaplaceProblem<dim>::estimate_smoothness(
-  Vector<float> &smoothness_indicators) const
-{
-  const unsigned int N = (dim == 2 ? 7 : 4);
-
-  // form all the Fourier vectors
-  // that we want to
-  // consider. exclude k=0 to avoid
-  // problems with |k|^{-mu} and also
-  // logarithms of |k|
-  std::vector<Tensor<1, dim>> k_vectors;
-  std::vector<unsigned int>   k_vectors_magnitude;
-  switch (dim)
-    {
-      case 2:
-        {
-          for (unsigned int i = 0; i < N; ++i)
-            for (unsigned int j = 0; j < N; ++j)
-              if (!((i == 0) && (j == 0)) && (i * i + j * j < N * N))
-                {
-                  k_vectors.push_back(
-                    Point<dim>(numbers::PI * i, numbers::PI * j));
-                  k_vectors_magnitude.push_back(i * i + j * j);
-                }
-
-          break;
-        }
-
-      case 3:
-        {
-          for (unsigned int i = 0; i < N; ++i)
-            for (unsigned int j = 0; j < N; ++j)
-              for (unsigned int k = 0; k < N; ++k)
-                if (!((i == 0) && (j == 0) && (k == 0)) &&
-                    (i * i + j * j + k * k < N * N))
-                  {
-                    k_vectors.push_back(Point<dim>(numbers::PI * i,
-                                                   numbers::PI * j,
-                                                   numbers::PI * k));
-                    k_vectors_magnitude.push_back(i * i + j * j + k * k);
-                  }
-
-          break;
-        }
-
-      default:
-        Assert(false, ExcNotImplemented());
-    }
-
-  const unsigned      n_fourier_modes = k_vectors.size();
-  std::vector<double> ln_k(n_fourier_modes);
-  for (unsigned int i = 0; i < n_fourier_modes; ++i)
-    ln_k[i] = std::log(k_vectors[i].norm());
-
-
-  // assemble the matrices that do
-  // the Fourier transforms for each
-  // of the finite elements we deal
-  // with. note that these matrices
-  // are complex-valued, so we can't
-  // use FullMatrix
-  QGauss<1>      base_quadrature(2);
-  QIterated<dim> quadrature(base_quadrature, N);
-
-  std::vector<Table<2, std::complex<double>>> fourier_transform_matrices(
-    fe_collection.size());
-  for (unsigned int fe = 0; fe < fe_collection.size(); ++fe)
-    {
-      fourier_transform_matrices[fe].reinit(n_fourier_modes,
-                                            fe_collection[fe].dofs_per_cell);
-
-      for (unsigned int k = 0; k < n_fourier_modes; ++k)
-        for (unsigned int i = 0; i < fe_collection[fe].dofs_per_cell; ++i)
-          {
-            std::complex<double> sum = 0;
-            for (unsigned int q = 0; q < quadrature.size(); ++q)
-              {
-                const Point<dim> x_q = quadrature.point(q);
-                sum +=
-                  std::exp(std::complex<double>(0, 1) * (k_vectors[k] * x_q)) *
-                  fe_collection[fe].shape_value(i, x_q) * quadrature.weight(q);
-              }
-            fourier_transform_matrices[fe](k, i) =
-              sum / std::pow(2 * numbers::PI, 1. * dim / 2);
-          }
-    }
-
-  // the next thing is to loop over
-  // all cells and do our work there,
-  // i.e. to locally do the Fourier
-  // transform and estimate the decay
-  // coefficient
-  std::vector<std::complex<double>> fourier_coefficients(n_fourier_modes);
-  Vector<double>                    local_dof_values;
-
-  typename DoFHandler<dim>::active_cell_iterator cell =
-                                                   dof_handler.begin_active(),
-                                                 endc = dof_handler.end();
-  for (unsigned int index = 0; cell != endc; ++cell, ++index)
-    {
-      local_dof_values.reinit(cell->get_fe().dofs_per_cell);
-      cell->get_dof_values(solution, local_dof_values);
-
-      // first compute the Fourier
-      // transform of the local
-      // solution
-      std::fill(fourier_coefficients.begin(), fourier_coefficients.end(), 0);
-      for (unsigned int f = 0; f < n_fourier_modes; ++f)
-        for (unsigned int i = 0; i < cell->get_fe().dofs_per_cell; ++i)
-          fourier_coefficients[f] +=
-            fourier_transform_matrices[cell->active_fe_index()](f, i) *
-            local_dof_values(i);
-
-      // enter the Fourier
-      // coefficients into a map with
-      // the k-magnitudes, to make
-      // sure that we get only the
-      // largest magnitude for each
-      // value of |k|
-      std::map<unsigned int, double> k_to_max_U_map;
-      for (unsigned int f = 0; f < n_fourier_modes; ++f)
-        if ((k_to_max_U_map.find(k_vectors_magnitude[f]) ==
-             k_to_max_U_map.end()) ||
-            (k_to_max_U_map[k_vectors_magnitude[f]] <
-             std::abs(fourier_coefficients[f])))
-          k_to_max_U_map[k_vectors_magnitude[f]] =
-            std::abs(fourier_coefficients[f]);
-
-      // now we have to calculate the
-      // various contributions to the
-      // formula for mu. we'll only
-      // take those fourier
-      // coefficients with the
-      // largest value for a given
-      // |k|
-      double sum_1 = 0, sum_ln_k = 0, sum_ln_k_square = 0, sum_ln_U = 0,
-             sum_ln_U_ln_k = 0;
-      for (unsigned int f = 0; f < n_fourier_modes; ++f)
-        if (k_to_max_U_map[k_vectors_magnitude[f]] ==
-            std::abs(fourier_coefficients[f]))
-          {
-            sum_1 += 1;
-            sum_ln_k += ln_k[f];
-            sum_ln_k_square += ln_k[f] * ln_k[f];
-            sum_ln_U += std::log(std::abs(fourier_coefficients[f]));
-            sum_ln_U_ln_k +=
-              std::log(std::abs(fourier_coefficients[f])) * ln_k[f];
-          }
-
-      const double mu = (1. / (sum_1 * sum_ln_k_square - sum_ln_k * sum_ln_k) *
-                         (sum_ln_k * sum_ln_U - sum_1 * sum_ln_U_ln_k));
-
-      smoothness_indicators(index) = mu - 1. * dim / 2;
-    }
-}
-
-
-
-template <int dim>
-void
-LaplaceProblem<dim>::refine_grid()
-{
-  Vector<float> estimated_error_per_cell(triangulation.n_active_cells());
-  KellyErrorEstimator<dim>::estimate(
-    dof_handler,
-    face_quadrature_collection,
-    std::map<types::boundary_id, const Function<dim> *>(),
-    solution,
-    estimated_error_per_cell);
-
-  Vector<float> smoothness_indicators(triangulation.n_active_cells());
-  estimate_smoothness(smoothness_indicators);
-
-  GridRefinement::refine_and_coarsen_fixed_number(triangulation,
-                                                  estimated_error_per_cell,
-                                                  0.3,
-                                                  0.03);
-
-  float max_smoothness = 0,
-        min_smoothness = smoothness_indicators.linfty_norm();
-  {
-    typename DoFHandler<dim>::active_cell_iterator cell =
-                                                     dof_handler.begin_active(),
-                                                   endc = dof_handler.end();
-    for (unsigned int index = 0; cell != endc; ++cell, ++index)
-      if (cell->refine_flag_set())
-        {
-          max_smoothness =
-            std::max(max_smoothness, smoothness_indicators(index));
-          min_smoothness =
-            std::min(min_smoothness, smoothness_indicators(index));
-        }
-  }
-  const float cutoff_smoothness = (max_smoothness + min_smoothness) / 2;
-  {
-    typename DoFHandler<dim>::active_cell_iterator cell =
-                                                     dof_handler.begin_active(),
-                                                   endc = dof_handler.end();
-    for (unsigned int index = 0; cell != endc; ++cell, ++index)
-      if (cell->refine_flag_set() &&
-          (smoothness_indicators(index) > cutoff_smoothness) &&
-          !(cell->active_fe_index() == fe_collection.size() - 1))
-        {
-          cell->clear_refine_flag();
-          cell->set_active_fe_index(
-            std::min(cell->active_fe_index() + 1, fe_collection.size() - 1));
-        }
-  }
-
-  triangulation.execute_coarsening_and_refinement();
-}
-
-
-
-template <int dim>
-void
-LaplaceProblem<dim>::output_results(const unsigned int cycle) const
-{
-  Assert(cycle < 10, ExcNotImplemented());
-
-  {
-    const std::string filename =
-      "grid-" + Utilities::int_to_string(cycle, 2) + ".eps";
-    std::ofstream output(filename.c_str());
-
-    GridOut grid_out;
-    grid_out.write_eps(triangulation, output);
-  }
-
-  {
-    Vector<float> smoothness_indicators(triangulation.n_active_cells());
-    estimate_smoothness(smoothness_indicators);
-
-    Vector<double> smoothness_field(dof_handler.n_dofs());
-    DoFTools::distribute_cell_to_dof_vector(dof_handler,
-                                            smoothness_indicators,
-                                            smoothness_field);
-
-    Vector<float> fe_indices(triangulation.n_active_cells());
-    {
-      typename DoFHandler<dim>::active_cell_iterator cell = dof_handler
-                                                              .begin_active(),
-                                                     endc = dof_handler.end();
-      for (unsigned int index = 0; cell != endc; ++cell, ++index)
-        {
-          fe_indices(index) = cell->active_fe_index();
-          //    smoothness_indicators(index) *= std::sqrt(cell->diameter());
-        }
-    }
-
-    const std::string filename =
-      "solution-" + Utilities::int_to_string(cycle, 2) + ".vtk";
-    DataOut<dim> data_out;
-
-    data_out.attach_dof_handler(dof_handler);
-    data_out.add_data_vector(solution, "solution");
-    data_out.add_data_vector(smoothness_indicators, "smoothness1");
-    data_out.add_data_vector(smoothness_field, "smoothness2");
-    data_out.add_data_vector(fe_indices, "fe_index");
-    data_out.build_patches();
-
-    std::ofstream output(filename.c_str());
-    data_out.write_vtk(output);
-  }
-}
-
-
-template <>
-void
-LaplaceProblem<2>::create_coarse_grid()
-{
-  const unsigned int dim = 2;
-
-  static const Point<2> vertices_1[] = {
-    Point<2>(-1., -1.),      Point<2>(-1. / 2, -1.),
-    Point<2>(0., -1.),       Point<2>(+1. / 2, -1.),
-    Point<2>(+1, -1.),
-
-    Point<2>(-1., -1. / 2.), Point<2>(-1. / 2, -1. / 2.),
-    Point<2>(0., -1. / 2.),  Point<2>(+1. / 2, -1. / 2.),
-    Point<2>(+1, -1. / 2.),
-
-    Point<2>(-1., 0.),       Point<2>(-1. / 2, 0.),
-    Point<2>(+1. / 2, 0.),   Point<2>(+1, 0.),
-
-    Point<2>(-1., 1. / 2.),  Point<2>(-1. / 2, 1. / 2.),
-    Point<2>(0., 1. / 2.),   Point<2>(+1. / 2, 1. / 2.),
-    Point<2>(+1, 1. / 2.),
-
-    Point<2>(-1., 1.),       Point<2>(-1. / 2, 1.),
-    Point<2>(0., 1.),        Point<2>(+1. / 2, 1.),
-    Point<2>(+1, 1.)};
-  const unsigned int n_vertices = sizeof(vertices_1) / sizeof(vertices_1[0]);
-  const std::vector<Point<dim>> vertices(&vertices_1[0],
-                                         &vertices_1[n_vertices]);
-  static const int cell_vertices[][GeometryInfo<dim>::vertices_per_cell] = {
-    {0, 1, 5, 6},
-    {1, 2, 6, 7},
-    {2, 3, 7, 8},
-    {3, 4, 8, 9},
-    {5, 6, 10, 11},
-    {8, 9, 12, 13},
-    {10, 11, 14, 15},
-    {12, 13, 17, 18},
-    {14, 15, 19, 20},
-    {15, 16, 20, 21},
-    {16, 17, 21, 22},
-    {17, 18, 22, 23}};
-  const unsigned int n_cells = sizeof(cell_vertices) / sizeof(cell_vertices[0]);
-
-  std::vector<CellData<dim>> cells(n_cells, CellData<dim>());
-  for (unsigned int i = 0; i < n_cells; ++i)
-    {
-      for (const unsigned int j : GeometryInfo<dim>::vertex_indices())
-        cells[i].vertices[j] = cell_vertices[i][j];
-      cells[i].material_id = 0;
-    }
-
-  triangulation.create_triangulation(vertices, cells, SubCellData());
-  triangulation.refine_global(3);
-}
-
-
-
-template <>
-void
-LaplaceProblem<3>::create_coarse_grid()
-{
-  const unsigned int dim = 3;
-
-  static const Point<3> vertices_1[] = {
-    // points on the lower surface
-    Point<dim>(0, 0, -4),
-    Point<dim>(std::cos(0 * numbers::PI / 6),
-               std::sin(0 * numbers::PI / 6),
-               -4),
-    Point<dim>(std::cos(2 * numbers::PI / 6),
-               std::sin(2 * numbers::PI / 6),
-               -4),
-    Point<dim>(std::cos(4 * numbers::PI / 6),
-               std::sin(4 * numbers::PI / 6),
-               -4),
-    Point<dim>(std::cos(6 * numbers::PI / 6),
-               std::sin(6 * numbers::PI / 6),
-               -4),
-    Point<dim>(std::cos(8 * numbers::PI / 6),
-               std::sin(8 * numbers::PI / 6),
-               -4),
-    Point<dim>(std::cos(10 * numbers::PI / 6),
-               std::sin(10 * numbers::PI / 6),
-               -4),
-
-    // same points on the top
-    // of the stem, with
-    // indentation in the middle
-    Point<dim>(0, 0, 4 - std::sqrt(2.) / 2),
-    Point<dim>(std::cos(0 * numbers::PI / 6), std::sin(0 * numbers::PI / 6), 4),
-    Point<dim>(std::cos(2 * numbers::PI / 6), std::sin(2 * numbers::PI / 6), 4),
-    Point<dim>(std::cos(4 * numbers::PI / 6), std::sin(4 * numbers::PI / 6), 4),
-    Point<dim>(std::cos(6 * numbers::PI / 6), std::sin(6 * numbers::PI / 6), 4),
-    Point<dim>(std::cos(8 * numbers::PI / 6), std::sin(8 * numbers::PI / 6), 4),
-    Point<dim>(std::cos(10 * numbers::PI / 6),
-               std::sin(10 * numbers::PI / 6),
-               4),
-
-    // point at top of chevron
-    Point<dim>(0, 0, 4 + std::sqrt(2.) / 2),
-
-    // points at the top of the
-    // first extension
-    // points 15-18
-    Point<dim>(0, 0, 7) + Point<dim>(std::cos(2 * numbers::PI / 6),
-                                     std::sin(2 * numbers::PI / 6),
-                                     0) *
-                            4,
-    Point<dim>(std::cos(0 * numbers::PI / 6),
-               std::sin(0 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(2 * numbers::PI / 6),
-                 std::sin(2 * numbers::PI / 6),
-                 0) *
-        4,
-    Point<dim>(std::cos(2 * numbers::PI / 6),
-               std::sin(2 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(2 * numbers::PI / 6),
-                 std::sin(2 * numbers::PI / 6),
-                 0) *
-        4,
-    Point<dim>(std::cos(4 * numbers::PI / 6),
-               std::sin(4 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(2 * numbers::PI / 6),
-                 std::sin(2 * numbers::PI / 6),
-                 0) *
-        4,
-
-    // points at the top of the
-    // second extension
-    // points 19-22
-    Point<dim>(0, 0, 7) + Point<dim>(std::cos(6 * numbers::PI / 6),
-                                     std::sin(6 * numbers::PI / 6),
-                                     0) *
-                            4,
-    Point<dim>(std::cos(4 * numbers::PI / 6),
-               std::sin(4 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(6 * numbers::PI / 6),
-                 std::sin(6 * numbers::PI / 6),
-                 0) *
-        4,
-    Point<dim>(std::cos(6 * numbers::PI / 6),
-               std::sin(6 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(6 * numbers::PI / 6),
-                 std::sin(6 * numbers::PI / 6),
-                 0) *
-        4,
-    Point<dim>(std::cos(8 * numbers::PI / 6),
-               std::sin(8 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(6 * numbers::PI / 6),
-                 std::sin(6 * numbers::PI / 6),
-                 0) *
-        4,
-
-    // points at the top of the
-    // third extension
-    // points 23-26
-    Point<dim>(0, 0, 7) + Point<dim>(std::cos(10 * numbers::PI / 6),
-                                     std::sin(10 * numbers::PI / 6),
-                                     0) *
-                            4,
-    Point<dim>(std::cos(8 * numbers::PI / 6),
-               std::sin(8 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(10 * numbers::PI / 6),
-                 std::sin(10 * numbers::PI / 6),
-                 0) *
-        4,
-    Point<dim>(std::cos(10 * numbers::PI / 6),
-               std::sin(10 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(10 * numbers::PI / 6),
-                 std::sin(10 * numbers::PI / 6),
-                 0) *
-        4,
-    Point<dim>(std::cos(0 * numbers::PI / 6),
-               std::sin(0 * numbers::PI / 6),
-               7) +
-      Point<dim>(std::cos(10 * numbers::PI / 6),
-                 std::sin(10 * numbers::PI / 6),
-                 0) *
-        4,
-
-  };
-
-  const unsigned int n_vertices = sizeof(vertices_1) / sizeof(vertices_1[0]);
-  const std::vector<Point<dim>> vertices(&vertices_1[0],
-                                         &vertices_1[n_vertices]);
-  static const int cell_vertices[][GeometryInfo<dim>::vertices_per_cell] = {
-    // the three cells in the stem
-    {0, 2, 4, 3, 7, 9, 11, 10},
-    {6, 0, 5, 4, 13, 7, 12, 11},
-    {6, 1, 0, 2, 13, 8, 7, 9},
-    // the chevron at the center
-    {13, 8, 7, 9, 12, 14, 11, 10},
-    // first extension
-    {14, 8, 10, 9, 15, 16, 18, 17},
-    // second extension
-    {11, 12, 10, 14, 21, 22, 20, 19},
-    // third extension
-    {12, 13, 14, 8, 24, 25, 23, 26},
-  };
-  const unsigned int n_cells = sizeof(cell_vertices) / sizeof(cell_vertices[0]);
-
-  std::vector<CellData<dim>> cells(n_cells, CellData<dim>());
-  for (unsigned int i = 0; i < n_cells; ++i)
-    {
-      for (const unsigned int j : GeometryInfo<dim>::vertex_indices())
-        cells[i].vertices[j] = cell_vertices[i][j];
-      cells[i].material_id = 0;
-    }
-
-  triangulation.create_triangulation(vertices, cells, SubCellData());
-
-  for (Triangulation<dim>::active_cell_iterator cell =
-         triangulation.begin_active();
-       cell != triangulation.end();
-       ++cell)
-    for (const unsigned int f : GeometryInfo<dim>::face_indices())
-      if ((cell->face(f)->center()[2] != -4) &&
-          (cell->face(f)->center()[2] != 7) && (cell->face(f)->at_boundary()))
-        cell->face(f)->set_boundary_id(1);
-
-  triangulation.refine_global(1);
-}
-
-
-
-template <int dim>
-void
-LaplaceProblem<dim>::run()
-{
-  for (unsigned int cycle = 0; cycle < 30; ++cycle)
-    {
-      deallog << "Cycle " << cycle << ':' << std::endl;
-
-      if (cycle == 0)
-        create_coarse_grid();
-      else
-        refine_grid();
-
-
-      deallog << "   Number of active cells:       "
-              << triangulation.n_active_cells() << std::endl;
-
-      Timer all;
-      all.start();
-      setup_system();
-
-      deallog << "   Number of degrees of freedom: " << dof_handler.n_dofs()
-              << std::endl;
-      deallog << "   Number of constraints       : "
-              << hanging_node_constraints.n_constraints() << std::endl;
-
-      assemble.reset();
-      assemble.start();
-      assemble_system();
-      assemble.stop();
-
-
-      solver.reset();
-      solver.start();
-      solve();
-      solver.stop();
-
-      all.stop();
-    }
-}
-
-int
-main()
-{
-  std::ofstream logfile(logname);
-  logfile.precision(3);
-
-  deallog.attach(logfile);
-  try
-    {
-      LaplaceProblem<3> laplace_problem;
-      laplace_problem.run();
-    }
-  catch (const std::exception &exc)
-    {
-      std::cerr << std::endl
-                << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      std::cerr << "Exception on processing: " << std::endl
-                << exc.what() << std::endl
-                << "Aborting!" << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-
-      return 1;
-    }
-  catch (...)
-    {
-      std::cerr << std::endl
-                << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      std::cerr << "Unknown exception!" << std::endl
-                << "Aborting!" << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      return 1;
-    }
-
-  return 0;
-}
diff --git a/tests/fail/fe_nothing_04.cc b/tests/fail/fe_nothing_04.cc
deleted file mode 100644 (file)
index 920296a..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2009 - 2021 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// test that FE_Nothing works as intended
-
-
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_accessor.h>
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe_dgq.h>
-#include <deal.II/fe/fe_nothing.h>
-#include <deal.II/fe/fe_q.h>
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_system.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_refinement.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/hp/fe_collection.h>
-#include <deal.II/hp/fe_values.h>
-
-#include "../tests.h"
-
-
-
-template <int dim>
-void
-test()
-{
-  Triangulation<dim> triangulation;
-  GridGenerator::hyper_cube(triangulation, -0.5, 0.5);
-  triangulation.refine_global(4);
-
-  hp::FECollection<dim> fe_collection;
-
-  // test the behavior of the FE_Nothing element
-  // in multicomponent systems (for, e.g., solving
-  // Stokes' equations).
-
-  fe_collection.push_back(
-    FESystem<dim>(FE_RaviartThomas<dim>(0), 1, FE_DGQ<dim>(0), 1));
-
-  fe_collection.push_back(
-    FESystem<dim>(FE_Nothing<dim>(dim), 1, FE_Nothing<dim>(), 1));
-
-
-  DoFHandler<dim> dof_handler(triangulation);
-
-  // loop over cells, and set cells
-  // within a circle to be of type
-  // FE_Nothing, while outside the
-  // circle to be of type RT(0)/DG(0)
-
-  typename DoFHandler<dim>::active_cell_iterator cell =
-                                                   dof_handler.begin_active(),
-                                                 endc = dof_handler.end();
-
-  for (; cell != endc; ++cell)
-    {
-      Point<dim> center = cell->center();
-      if (std::sqrt(center.square()) < 0.25)
-        cell->set_active_fe_index(1);
-      else
-        cell->set_active_fe_index(0);
-    }
-
-  // attempt to distribute dofs
-
-  dof_handler.distribute_dofs(fe_collection);
-
-  deallog << "   Number of active cells:       "
-          << triangulation.n_active_cells() << std::endl
-          << "   Number of degrees of freedom: " << dof_handler.n_dofs()
-          << std::endl;
-}
-
-
-
-int
-main()
-{
-  initlog();
-  deallog << std::setprecision(2);
-
-  // test<1> ();
-  test<2>();
-  test<3>();
-
-  deallog << "OK" << std::endl;
-}
diff --git a/tests/fail/hp-step-14.cc b/tests/fail/hp-step-14.cc
deleted file mode 100644 (file)
index fe507ce..0000000
+++ /dev/null
@@ -1,2154 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2005 - 2022 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// a hp-ified version of step-14
-
-
-#include "../tests.h"
-
-std::ofstream logfile("step-14/output");
-
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/quadrature_lib.h>
-#include <deal.II/base/thread_management.h>
-
-#include <deal.II/dofs/dof_accessor.h>
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe_q.h>
-#include <deal.II/fe/fe_tools.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_out.h>
-#include <deal.II/grid/grid_refinement.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/hp/fe_values.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/precondition.h>
-#include <deal.II/lac/solver_cg.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/error_estimator.h>
-#include <deal.II/numerics/matrix_tools.h>
-#include <deal.II/numerics/vector_tools.h>
-
-#include <algorithm>
-#include <iostream>
-#include <list>
-#include <numeric>
-#include <sstream>
-
-
-namespace Evaluation
-{
-  template <int dim>
-  class EvaluationBase
-  {
-  public:
-    virtual ~EvaluationBase();
-
-    void
-    set_refinement_cycle(const unsigned int refinement_cycle);
-
-    virtual void
-    operator()(const DoFHandler<dim> &dof_handler,
-               const Vector<double> & solution) const = 0;
-
-  protected:
-    unsigned int refinement_cycle;
-  };
-
-
-  template <int dim>
-  EvaluationBase<dim>::~EvaluationBase()
-  {}
-
-
-
-  template <int dim>
-  void
-  EvaluationBase<dim>::set_refinement_cycle(const unsigned int step)
-  {
-    refinement_cycle = step;
-  }
-
-
-  template <int dim>
-  class PointValueEvaluation : public EvaluationBase<dim>
-  {
-  public:
-    PointValueEvaluation(const Point<dim> &evaluation_point);
-
-    virtual void
-    operator()(const DoFHandler<dim> &dof_handler,
-               const Vector<double> & solution) const;
-
-    DeclException1(ExcEvaluationPointNotFound,
-                   Point<dim>,
-                   << "The evaluation point " << arg1
-                   << " was not found among the vertices of the present grid.");
-
-  private:
-    const Point<dim> evaluation_point;
-  };
-
-
-  template <int dim>
-  PointValueEvaluation<dim>::PointValueEvaluation(
-    const Point<dim> &evaluation_point)
-    : evaluation_point(evaluation_point)
-  {}
-
-
-
-  template <int dim>
-  void
-  PointValueEvaluation<dim>::operator()(const DoFHandler<dim> &dof_handler,
-                                        const Vector<double> & solution) const
-  {
-    double point_value = 1e20;
-
-    typename DoFHandler<dim>::active_cell_iterator cell =
-                                                     dof_handler.begin_active(),
-                                                   endc = dof_handler.end();
-    bool evaluation_point_found                         = false;
-    for (; (cell != endc) && !evaluation_point_found; ++cell)
-      for (const unsigned int vertex : GeometryInfo<dim>::vertex_indices())
-        if (cell->vertex(vertex).distance(evaluation_point) <
-            cell->diameter() * 1e-8)
-          {
-            point_value = solution(cell->vertex_dof_index(vertex, 0));
-
-            evaluation_point_found = true;
-            break;
-          };
-
-    AssertThrow(evaluation_point_found,
-                ExcEvaluationPointNotFound(evaluation_point));
-
-    deallog << "   Point value=" << point_value << std::endl;
-  }
-
-
-
-  template <int dim>
-  class PointXDerivativeEvaluation : public EvaluationBase<dim>
-  {
-  public:
-    PointXDerivativeEvaluation(const Point<dim> &evaluation_point);
-
-    virtual void
-    operator()(const DoFHandler<dim> &dof_handler,
-               const Vector<double> & solution) const;
-
-    DeclException1(ExcEvaluationPointNotFound,
-                   Point<dim>,
-                   << "The evaluation point " << arg1
-                   << " was not found among the vertices of the present grid.");
-
-  private:
-    const Point<dim> evaluation_point;
-  };
-
-
-  template <int dim>
-  PointXDerivativeEvaluation<dim>::PointXDerivativeEvaluation(
-    const Point<dim> &evaluation_point)
-    : evaluation_point(evaluation_point)
-  {}
-
-
-  template <int dim>
-  void
-  PointXDerivativeEvaluation<dim>::operator()(
-    const DoFHandler<dim> &dof_handler,
-    const Vector<double> & solution) const
-  {
-    double point_derivative = 0;
-
-    QTrapezoid<dim>             vertex_quadrature;
-    hp::FEValues<dim>           fe_values(dof_handler.get_fe(),
-                                vertex_quadrature,
-                                update_gradients | update_quadrature_points);
-    std::vector<Tensor<1, dim>> solution_gradients(vertex_quadrature.size());
-
-    typename DoFHandler<dim>::active_cell_iterator cell =
-                                                     dof_handler.begin_active(),
-                                                   endc = dof_handler.end();
-    unsigned int evaluation_point_hits                  = 0;
-    for (; cell != endc; ++cell)
-      for (const unsigned int vertex : GeometryInfo<dim>::vertex_indices())
-        if (cell->vertex(vertex) == evaluation_point)
-          {
-            fe_values.reinit(cell);
-            fe_values.get_present_fe_values().get_function_gradients(
-              solution, solution_gradients);
-
-            unsigned int q_point = 0;
-            for (; q_point < solution_gradients.size(); ++q_point)
-              if (fe_values.get_present_fe_values().quadrature_point(q_point) ==
-                  evaluation_point)
-                break;
-
-            Assert(q_point < solution_gradients.size(), ExcInternalError());
-            point_derivative += solution_gradients[q_point][0];
-            ++evaluation_point_hits;
-
-            break;
-          };
-
-    AssertThrow(evaluation_point_hits > 0,
-                ExcEvaluationPointNotFound(evaluation_point));
-
-    point_derivative /= evaluation_point_hits;
-    deallog << "   Point x-derivative=" << point_derivative << std::endl;
-  }
-
-
-
-  template <int dim>
-  class GridOutput : public EvaluationBase<dim>
-  {
-  public:
-    GridOutput(const std::string &output_name_base);
-
-    virtual void
-    operator()(const DoFHandler<dim> &dof_handler,
-               const Vector<double> & solution) const;
-
-  private:
-    const std::string output_name_base;
-  };
-
-
-  template <int dim>
-  GridOutput<dim>::GridOutput(const std::string &output_name_base)
-    : output_name_base(output_name_base)
-  {}
-
-
-  template <int dim>
-  void
-  GridOutput<dim>::operator()(const DoFHandler<dim> &dof_handler,
-                              const Vector<double> & /*solution*/) const
-  {
-    std::ostringstream filename;
-    filename << output_name_base << '-' << this->refinement_cycle << ".eps"
-             << std::ends;
-
-    GridOut().write_eps(dof_handler.get_triangulation(),
-                        deallog.get_file_stream());
-  }
-} // namespace Evaluation
-
-
-
-namespace LaplaceSolver
-{
-  template <int dim>
-  class WeightedResidual;
-
-
-
-  template <int dim>
-  class Base
-  {
-  public:
-    Base(Triangulation<dim> &coarse_grid);
-    virtual ~Base();
-
-    virtual void
-    solve_problem() = 0;
-    virtual void
-    postprocess(const Evaluation::EvaluationBase<dim> &postprocessor) const = 0;
-    virtual void
-    refine_grid() = 0;
-    virtual unsigned int
-    n_dofs() const = 0;
-
-    virtual void
-    set_refinement_cycle(const unsigned int cycle);
-
-    virtual void
-    output_solution() const = 0;
-
-  protected:
-    const SmartPointer<Triangulation<dim>> triangulation;
-
-    unsigned int refinement_cycle;
-  };
-
-
-  template <int dim>
-  Base<dim>::Base(Triangulation<dim> &coarse_grid)
-    : triangulation(&coarse_grid)
-  {}
-
-
-  template <int dim>
-  Base<dim>::~Base()
-  {}
-
-
-
-  template <int dim>
-  void
-  Base<dim>::set_refinement_cycle(const unsigned int cycle)
-  {
-    refinement_cycle = cycle;
-  }
-
-
-
-  template <int dim>
-  class Solver : public virtual Base<dim>
-  {
-  public:
-    Solver(Triangulation<dim> &            triangulation,
-           const hp::FECollection<dim> &   fe,
-           const hp::QCollection<dim> &    quadrature,
-           const hp::QCollection<dim - 1> &face_quadrature,
-           const Function<dim> &           boundary_values);
-    virtual ~Solver();
-
-    virtual void
-    solve_problem();
-
-    virtual void
-    postprocess(const Evaluation::EvaluationBase<dim> &postprocessor) const;
-
-    virtual unsigned int
-    n_dofs() const;
-
-  protected:
-    const SmartPointer<const hp::FECollection<dim>>    fe;
-    const SmartPointer<const hp::QCollection<dim>>     quadrature;
-    const SmartPointer<const hp::QCollection<dim - 1>> face_quadrature;
-    DoFHandler<dim>                                    dof_handler;
-    Vector<double>                                     solution;
-    const SmartPointer<const Function<dim>>            boundary_values;
-
-    virtual void
-    assemble_rhs(Vector<double> &rhs) const = 0;
-
-  private:
-    struct LinearSystem
-    {
-      LinearSystem(const DoFHandler<dim> &dof_handler);
-
-      void
-      solve(Vector<double> &solution) const;
-
-      AffineConstraints<double> hanging_node_constraints;
-      SparsityPattern           sparsity_pattern;
-      SparseMatrix<double>      matrix;
-      Vector<double>            rhs;
-    };
-
-    void
-    assemble_linear_system(LinearSystem &linear_system);
-
-    void
-    assemble_matrix(
-      LinearSystem &                                        linear_system,
-      const typename DoFHandler<dim>::active_cell_iterator &begin_cell,
-      const typename DoFHandler<dim>::active_cell_iterator &end_cell,
-      Threads::Mutex &                                      mutex) const;
-  };
-
-
-
-  template <int dim>
-  Solver<dim>::Solver(Triangulation<dim> &            triangulation,
-                      const hp::FECollection<dim> &   fe,
-                      const hp::QCollection<dim> &    quadrature,
-                      const hp::QCollection<dim - 1> &face_quadrature,
-                      const Function<dim> &           boundary_values)
-    : Base<dim>(triangulation)
-    , fe(&fe)
-    , quadrature(&quadrature)
-    , face_quadrature(&face_quadrature)
-    , dof_handler(triangulation)
-    , boundary_values(&boundary_values)
-  {}
-
-
-  template <int dim>
-  Solver<dim>::~Solver()
-  {
-    dof_handler.clear();
-  }
-
-
-  template <int dim>
-  void
-  Solver<dim>::solve_problem()
-  {
-    dof_handler.distribute_dofs(*fe);
-    solution.reinit(dof_handler.n_dofs());
-
-    LinearSystem linear_system(dof_handler);
-    assemble_linear_system(linear_system);
-    linear_system.solve(solution);
-  }
-
-
-  template <int dim>
-  void
-  Solver<dim>::postprocess(
-    const Evaluation::EvaluationBase<dim> &postprocessor) const
-  {
-    postprocessor(dof_handler, solution);
-  }
-
-
-  template <int dim>
-  unsigned int
-  Solver<dim>::n_dofs() const
-  {
-    return dof_handler.n_dofs();
-  }
-
-
-  template <int dim>
-  void
-  Solver<dim>::assemble_linear_system(LinearSystem &linear_system)
-  {
-    using active_cell_iterator = typename DoFHandler<dim>::active_cell_iterator;
-
-
-    const unsigned int n_threads = MultithreadInfo::n_threads();
-    std::vector<std::pair<active_cell_iterator, active_cell_iterator>>
-      thread_ranges =
-        Threads::split_range<active_cell_iterator>(dof_handler.begin_active(),
-                                                   dof_handler.end(),
-                                                   n_threads);
-
-    Threads::Mutex           mutex;
-    std::vector<std::thread> threads;
-    for (unsigned int thread = 0; thread < n_threads; ++thread)
-      threads.emplace_back(&Solver<dim>::assemble_matrix,
-                           std::ref(*this),
-                           std::ref(linear_system),
-                           std::ref(thread_ranges[thread].first),
-                           std::ref(thread_ranges[thread].second),
-                           std::ref(mutex));
-
-    assemble_rhs(linear_system.rhs);
-    linear_system.hanging_node_constraints.condense(linear_system.rhs);
-
-    std::map<types::global_dof_index, double> boundary_value_map;
-    VectorTools::interpolate_boundary_values(dof_handler,
-                                             0,
-                                             *boundary_values,
-                                             boundary_value_map);
-
-    threads.join_all();
-    linear_system.hanging_node_constraints.condense(linear_system.matrix);
-
-    MatrixTools::apply_boundary_values(boundary_value_map,
-                                       linear_system.matrix,
-                                       solution,
-                                       linear_system.rhs);
-  }
-
-
-  template <int dim>
-  void
-  Solver<dim>::assemble_matrix(
-    LinearSystem &                                        linear_system,
-    const typename DoFHandler<dim>::active_cell_iterator &begin_cell,
-    const typename DoFHandler<dim>::active_cell_iterator &end_cell,
-    Threads::Mutex &                                      mutex) const
-  {
-    hp::FEValues<dim> fe_values(*fe,
-                                *quadrature,
-                                update_gradients | update_JxW_values);
-
-    const unsigned int dofs_per_cell = (*fe)[0].dofs_per_cell;
-    const unsigned int n_q_points    = (*quadrature)[0].size();
-
-    FullMatrix<double> cell_matrix(dofs_per_cell, dofs_per_cell);
-
-    std::vector<types::global_dof_index> local_dof_indices(dofs_per_cell);
-
-    for (typename DoFHandler<dim>::active_cell_iterator cell = begin_cell;
-         cell != end_cell;
-         ++cell)
-      {
-        cell_matrix = 0;
-
-        fe_values.reinit(cell);
-
-        for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-          for (unsigned int i = 0; i < dofs_per_cell; ++i)
-            for (unsigned int j = 0; j < dofs_per_cell; ++j)
-              cell_matrix(i, j) +=
-                (fe_values.get_present_fe_values().shape_grad(i, q_point) *
-                 fe_values.get_present_fe_values().shape_grad(j, q_point) *
-                 fe_values.get_present_fe_values().JxW(q_point));
-
-
-        cell->get_dof_indices(local_dof_indices);
-        std::lock_guard<std::mutex> lock(mutex);
-        for (unsigned int i = 0; i < dofs_per_cell; ++i)
-          for (unsigned int j = 0; j < dofs_per_cell; ++j)
-            linear_system.matrix.add(local_dof_indices[i],
-                                     local_dof_indices[j],
-                                     cell_matrix(i, j));
-      };
-  }
-
-
-  template <int dim>
-  Solver<dim>::LinearSystem::LinearSystem(const DoFHandler<dim> &dof_handler)
-
-  {
-    hanging_node_constraints.clear();
-
-    void (*mhnc_p)(const DoFHandler<dim> &, AffineConstraints<double> &) =
-      &DoFTools::make_hanging_node_constraints;
-
-    std::thread mhnc_thread(mhnc_p, dof_handler, hanging_node_constraints);
-
-    sparsity_pattern.reinit(dof_handler.n_dofs(),
-                            dof_handler.n_dofs(),
-                            dof_handler.max_couplings_between_dofs());
-    DoFTools::make_sparsity_pattern(dof_handler, sparsity_pattern);
-
-    mhnc_thread.join();
-    hanging_node_constraints.close();
-    hanging_node_constraints.condense(sparsity_pattern);
-
-    sparsity_pattern.compress();
-    matrix.reinit(sparsity_pattern);
-    rhs.reinit(dof_handler.n_dofs());
-  }
-
-
-
-  template <int dim>
-  void
-  Solver<dim>::LinearSystem::solve(Vector<double> &solution) const
-  {
-    SolverControl solver_control(5000, 1e-12);
-    SolverCG<>    cg(solver_control);
-
-    PreconditionSSOR<> preconditioner;
-    preconditioner.initialize(matrix, 1.2);
-
-    cg.solve(matrix, solution, rhs, preconditioner);
-
-    hanging_node_constraints.distribute(solution);
-  }
-
-
-
-  template <int dim>
-  class PrimalSolver : public Solver<dim>
-  {
-  public:
-    PrimalSolver(Triangulation<dim> &            triangulation,
-                 const hp::FECollection<dim> &   fe,
-                 const hp::QCollection<dim> &    quadrature,
-                 const hp::QCollection<dim - 1> &face_quadrature,
-                 const Function<dim> &           rhs_function,
-                 const Function<dim> &           boundary_values);
-
-    virtual void
-    solve_problem();
-
-    virtual unsigned int
-    n_dofs() const;
-
-    virtual void
-    postprocess(const Evaluation::EvaluationBase<dim> &postprocessor) const;
-
-    virtual void
-    output_solution() const;
-
-  protected:
-    const SmartPointer<const Function<dim>> rhs_function;
-    virtual void
-    assemble_rhs(Vector<double> &rhs) const;
-
-    friend class WeightedResidual<dim>;
-  };
-
-
-  template <int dim>
-  PrimalSolver<dim>::PrimalSolver(
-    Triangulation<dim> &            triangulation,
-    const hp::FECollection<dim> &   fe,
-    const hp::QCollection<dim> &    quadrature,
-    const hp::QCollection<dim - 1> &face_quadrature,
-    const Function<dim> &           rhs_function,
-    const Function<dim> &           boundary_values)
-    : Base<dim>(triangulation)
-    , Solver<dim>(triangulation,
-                  fe,
-                  quadrature,
-                  face_quadrature,
-                  boundary_values)
-    , rhs_function(&rhs_function)
-  {}
-
-
-  template <int dim>
-  void
-  PrimalSolver<dim>::solve_problem()
-  {
-    Solver<dim>::solve_problem();
-  }
-
-
-
-  template <int dim>
-  unsigned int
-  PrimalSolver<dim>::n_dofs() const
-  {
-    return Solver<dim>::n_dofs();
-  }
-
-
-  template <int dim>
-  void
-  PrimalSolver<dim>::postprocess(
-    const Evaluation::EvaluationBase<dim> &postprocessor) const
-  {
-    Solver<dim>::postprocess(postprocessor);
-  }
-
-
-  template <int dim>
-  void
-  PrimalSolver<dim>::output_solution() const
-  {
-    DataOut<dim> data_out;
-    data_out.attach_dof_handler(this->dof_handler);
-    data_out.add_data_vector(this->solution, "solution");
-    data_out.build_patches();
-
-    std::ostringstream filename;
-    filename << "solution-" << this->refinement_cycle << ".gnuplot"
-             << std::ends;
-    data_out.write(deallog.get_file_stream(), DataOut<dim>::gnuplot);
-  }
-
-
-
-  template <int dim>
-  void
-  PrimalSolver<dim>::assemble_rhs(Vector<double> &rhs) const
-  {
-    hp::FEValues<dim> fe_values(*this->fe,
-                                *this->quadrature,
-                                update_values | update_quadrature_points |
-                                  update_JxW_values);
-
-    const unsigned int dofs_per_cell = (*this->fe)[0].dofs_per_cell;
-    const unsigned int n_q_points    = (*this->quadrature)[0].size();
-
-    Vector<double>                       cell_rhs(dofs_per_cell);
-    std::vector<double>                  rhs_values(n_q_points);
-    std::vector<types::global_dof_index> local_dof_indices(dofs_per_cell);
-
-    typename DoFHandler<dim>::active_cell_iterator cell = this->dof_handler
-                                                            .begin_active(),
-                                                   endc =
-                                                     this->dof_handler.end();
-    for (; cell != endc; ++cell)
-      {
-        cell_rhs = 0;
-
-        fe_values.reinit(cell);
-
-        rhs_function->value_list(
-          fe_values.get_present_fe_values().get_quadrature_points(),
-          rhs_values);
-
-        for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-          for (unsigned int i = 0; i < dofs_per_cell; ++i)
-            cell_rhs(i) +=
-              (fe_values.get_present_fe_values().shape_value(i, q_point) *
-               rhs_values[q_point] *
-               fe_values.get_present_fe_values().JxW(q_point));
-
-        cell->get_dof_indices(local_dof_indices);
-        for (unsigned int i = 0; i < dofs_per_cell; ++i)
-          rhs(local_dof_indices[i]) += cell_rhs(i);
-      }
-  }
-
-
-
-  template <int dim>
-  class RefinementGlobal : public PrimalSolver<dim>
-  {
-  public:
-    RefinementGlobal(Triangulation<dim> &            coarse_grid,
-                     const hp::FECollection<dim> &   fe,
-                     const hp::QCollection<dim> &    quadrature,
-                     const hp::QCollection<dim - 1> &face_quadrature,
-                     const Function<dim> &           rhs_function,
-                     const Function<dim> &           boundary_values);
-
-    virtual void
-    refine_grid();
-  };
-
-
-
-  template <int dim>
-  RefinementGlobal<dim>::RefinementGlobal(
-    Triangulation<dim> &            coarse_grid,
-    const hp::FECollection<dim> &   fe,
-    const hp::QCollection<dim> &    quadrature,
-    const hp::QCollection<dim - 1> &face_quadrature,
-    const Function<dim> &           rhs_function,
-    const Function<dim> &           boundary_values)
-    : Base<dim>(coarse_grid)
-    , PrimalSolver<dim>(coarse_grid,
-                        fe,
-                        quadrature,
-                        face_quadrature,
-                        rhs_function,
-                        boundary_values)
-  {}
-
-
-
-  template <int dim>
-  void
-  RefinementGlobal<dim>::refine_grid()
-  {
-    this->triangulation->refine_global(1);
-  }
-
-
-
-  template <int dim>
-  class RefinementKelly : public PrimalSolver<dim>
-  {
-  public:
-    RefinementKelly(Triangulation<dim> &            coarse_grid,
-                    const hp::FECollection<dim> &   fe,
-                    const hp::QCollection<dim> &    quadrature,
-                    const hp::QCollection<dim - 1> &face_quadrature,
-                    const Function<dim> &           rhs_function,
-                    const Function<dim> &           boundary_values);
-
-    virtual void
-    refine_grid();
-  };
-
-
-
-  template <int dim>
-  RefinementKelly<dim>::RefinementKelly(
-    Triangulation<dim> &            coarse_grid,
-    const hp::FECollection<dim> &   fe,
-    const hp::QCollection<dim> &    quadrature,
-    const hp::QCollection<dim - 1> &face_quadrature,
-    const Function<dim> &           rhs_function,
-    const Function<dim> &           boundary_values)
-    : Base<dim>(coarse_grid)
-    , PrimalSolver<dim>(coarse_grid,
-                        fe,
-                        quadrature,
-                        face_quadrature,
-                        rhs_function,
-                        boundary_values)
-  {}
-
-
-
-  template <int dim>
-  void
-  RefinementKelly<dim>::refine_grid()
-  {
-    Vector<float> estimated_error_per_cell(
-      this->triangulation->n_active_cells());
-    KellyErrorEstimator<dim>::estimate(
-      this->dof_handler,
-      QGauss<dim - 1>(3),
-      std::map<types::boundary_id, const Function<dim> *>(),
-      this->solution,
-      estimated_error_per_cell);
-    GridRefinement::refine_and_coarsen_fixed_number(*this->triangulation,
-                                                    estimated_error_per_cell,
-                                                    0.3,
-                                                    0.03);
-    this->triangulation->execute_coarsening_and_refinement();
-  }
-
-
-
-  template <int dim>
-  class RefinementWeightedKelly : public PrimalSolver<dim>
-  {
-  public:
-    RefinementWeightedKelly(Triangulation<dim> &            coarse_grid,
-                            const hp::FECollection<dim> &   fe,
-                            const hp::QCollection<dim> &    quadrature,
-                            const hp::QCollection<dim - 1> &face_quadrature,
-                            const Function<dim> &           rhs_function,
-                            const Function<dim> &           boundary_values,
-                            const Function<dim> &           weighting_function);
-
-    virtual void
-    refine_grid();
-
-  private:
-    const SmartPointer<const Function<dim>> weighting_function;
-  };
-
-
-
-  template <int dim>
-  RefinementWeightedKelly<dim>::RefinementWeightedKelly(
-    Triangulation<dim> &            coarse_grid,
-    const hp::FECollection<dim> &   fe,
-    const hp::QCollection<dim> &    quadrature,
-    const hp::QCollection<dim - 1> &face_quadrature,
-    const Function<dim> &           rhs_function,
-    const Function<dim> &           boundary_values,
-    const Function<dim> &           weighting_function)
-    : Base<dim>(coarse_grid)
-    , PrimalSolver<dim>(coarse_grid,
-                        fe,
-                        quadrature,
-                        face_quadrature,
-                        rhs_function,
-                        boundary_values)
-    , weighting_function(&weighting_function)
-  {}
-
-
-
-  template <int dim>
-  void
-  RefinementWeightedKelly<dim>::refine_grid()
-  {
-    Vector<float> estimated_error(this->triangulation->n_active_cells());
-    KellyErrorEstimator<dim>::estimate(
-      this->dof_handler,
-      (*this->face_quadrature)[0],
-      std::map<types::boundary_id, const Function<dim> *>(),
-      this->solution,
-      estimated_error);
-
-    typename DoFHandler<dim>::active_cell_iterator cell = this->dof_handler
-                                                            .begin_active(),
-                                                   endc =
-                                                     this->dof_handler.end();
-    for (unsigned int cell_index = 0; cell != endc; ++cell, ++cell_index)
-      estimated_error(cell_index) *= weighting_function->value(cell->center());
-
-    GridRefinement::refine_and_coarsen_fixed_number(*this->triangulation,
-                                                    estimated_error,
-                                                    0.3,
-                                                    0.03);
-    this->triangulation->execute_coarsening_and_refinement();
-  }
-
-} // namespace LaplaceSolver
-
-
-namespace Data
-{
-  template <int dim>
-  struct SetUpBase : public Subscriptor
-  {
-    virtual const Function<dim> &
-    get_boundary_values() const = 0;
-
-    virtual const Function<dim> &
-    get_right_hand_side() const = 0;
-
-    virtual void
-    create_coarse_grid(Triangulation<dim> &coarse_grid) const = 0;
-  };
-
-
-  template <class Traits, int dim>
-  struct SetUp : public SetUpBase<dim>
-  {
-    SetUp()
-    {}
-
-    virtual const Function<dim> &
-    get_boundary_values() const;
-
-    virtual const Function<dim> &
-    get_right_hand_side() const;
-
-
-    virtual void
-    create_coarse_grid(Triangulation<dim> &coarse_grid) const;
-
-  private:
-    static const typename Traits::BoundaryValues boundary_values;
-    static const typename Traits::RightHandSide  right_hand_side;
-  };
-
-  template <class Traits, int dim>
-  const typename Traits::BoundaryValues SetUp<Traits, dim>::boundary_values;
-  template <class Traits, int dim>
-  const typename Traits::RightHandSide SetUp<Traits, dim>::right_hand_side;
-
-  template <class Traits, int dim>
-  const Function<dim> &
-  SetUp<Traits, dim>::get_boundary_values() const
-  {
-    return boundary_values;
-  }
-
-
-  template <class Traits, int dim>
-  const Function<dim> &
-  SetUp<Traits, dim>::get_right_hand_side() const
-  {
-    return right_hand_side;
-  }
-
-
-  template <class Traits, int dim>
-  void
-  SetUp<Traits, dim>::create_coarse_grid(Triangulation<dim> &coarse_grid) const
-  {
-    Traits::create_coarse_grid(coarse_grid);
-  }
-
-
-
-  template <int dim>
-  struct CurvedRidges
-  {
-    class BoundaryValues : public Function<dim>
-    {
-    public:
-      BoundaryValues()
-        : Function<dim>()
-      {}
-
-      virtual double
-      value(const Point<dim> &p, const unsigned int component) const;
-    };
-
-
-    class RightHandSide : public Function<dim>
-    {
-    public:
-      RightHandSide()
-        : Function<dim>()
-      {}
-
-      virtual double
-      value(const Point<dim> &p, const unsigned int component) const;
-    };
-
-    static void
-    create_coarse_grid(Triangulation<dim> &coarse_grid);
-  };
-
-
-  template <int dim>
-  double
-  CurvedRidges<dim>::BoundaryValues::value(
-    const Point<dim> &p,
-    const unsigned int /*component*/) const
-  {
-    double q = p(0);
-    for (unsigned int i = 1; i < dim; ++i)
-      q += std::sin(10 * p(i) + 5 * p(0) * p(0));
-    const double exponential = std::exp(q);
-    return exponential;
-  }
-
-
-
-  template <int dim>
-  double
-  CurvedRidges<dim>::RightHandSide::value(
-    const Point<dim> &p,
-    const unsigned int /*component*/) const
-  {
-    double q = p(0);
-    for (unsigned int i = 1; i < dim; ++i)
-      q += std::sin(10 * p(i) + 5 * p(0) * p(0));
-    const double u  = std::exp(q);
-    double       t1 = 1, t2 = 0, t3 = 0;
-    for (unsigned int i = 1; i < dim; ++i)
-      {
-        t1 += std::cos(10 * p(i) + 5 * p(0) * p(0)) * 10 * p(0);
-        t2 += 10 * std::cos(10 * p(i) + 5 * p(0) * p(0)) -
-              100 * std::sin(10 * p(i) + 5 * p(0) * p(0)) * p(0) * p(0);
-        t3 += 100 * std::cos(10 * p(i) + 5 * p(0) * p(0)) *
-                std::cos(10 * p(i) + 5 * p(0) * p(0)) -
-              100 * std::sin(10 * p(i) + 5 * p(0) * p(0));
-      };
-    t1 = t1 * t1;
-
-    return -u * (t1 + t2 + t3);
-  }
-
-
-  template <int dim>
-  void
-  CurvedRidges<dim>::create_coarse_grid(Triangulation<dim> &coarse_grid)
-  {
-    GridGenerator::hyper_cube(coarse_grid, -1, 1);
-    coarse_grid.refine_global(2);
-  }
-
-
-
-  template <int dim>
-  struct Exercise_2_3
-  {
-    using BoundaryValues = Functions::ZeroFunction<dim>;
-
-    class RightHandSide : public Functions::ConstantFunction<dim>
-    {
-    public:
-      RightHandSide()
-        : Functions::ConstantFunction<dim>(1.)
-      {}
-    };
-
-    static void
-    create_coarse_grid(Triangulation<dim> &coarse_grid);
-  };
-
-
-  template <>
-  void
-  Exercise_2_3<2>::create_coarse_grid(Triangulation<2> &coarse_grid)
-  {
-    const unsigned int dim = 2;
-
-    static const Point<2> vertices_1[] = {
-      Point<2>(-1., -1.),      Point<2>(-1. / 2, -1.),
-      Point<2>(0., -1.),       Point<2>(+1. / 2, -1.),
-      Point<2>(+1, -1.),
-
-      Point<2>(-1., -1. / 2.), Point<2>(-1. / 2, -1. / 2.),
-      Point<2>(0., -1. / 2.),  Point<2>(+1. / 2, -1. / 2.),
-      Point<2>(+1, -1. / 2.),
-
-      Point<2>(-1., 0.),       Point<2>(-1. / 2, 0.),
-      Point<2>(+1. / 2, 0.),   Point<2>(+1, 0.),
-
-      Point<2>(-1., 1. / 2.),  Point<2>(-1. / 2, 1. / 2.),
-      Point<2>(0., 1. / 2.),   Point<2>(+1. / 2, 1. / 2.),
-      Point<2>(+1, 1. / 2.),
-
-      Point<2>(-1., 1.),       Point<2>(-1. / 2, 1.),
-      Point<2>(0., 1.),        Point<2>(+1. / 2, 1.),
-      Point<2>(+1, 1.)};
-    const unsigned int n_vertices = sizeof(vertices_1) / sizeof(vertices_1[0]);
-
-    const std::vector<Point<dim>> vertices(&vertices_1[0],
-                                           &vertices_1[n_vertices]);
-
-    static const int cell_vertices[][GeometryInfo<dim>::vertices_per_cell] = {
-      {0, 1, 5, 6},
-      {1, 2, 6, 7},
-      {2, 3, 7, 8},
-      {3, 4, 8, 9},
-      {5, 6, 10, 11},
-      {8, 9, 12, 13},
-      {10, 11, 14, 15},
-      {12, 13, 17, 18},
-      {14, 15, 19, 20},
-      {15, 16, 20, 21},
-      {16, 17, 21, 22},
-      {17, 18, 22, 23}};
-    const unsigned int n_cells =
-      sizeof(cell_vertices) / sizeof(cell_vertices[0]);
-
-    std::vector<CellData<dim>> cells(n_cells, CellData<dim>());
-    for (unsigned int i = 0; i < n_cells; ++i)
-      {
-        for (const unsigned int j : GeometryInfo<dim>::vertex_indices())
-          cells[i].vertices[j] = cell_vertices[i][j];
-        cells[i].material_id = 0;
-      };
-
-    coarse_grid.create_triangulation(vertices, cells, SubCellData());
-
-    coarse_grid.refine_global(1);
-  }
-} // namespace Data
-
-
-
-namespace DualFunctional
-{
-  template <int dim>
-  class DualFunctionalBase : public Subscriptor
-  {
-  public:
-    virtual void
-    assemble_rhs(const DoFHandler<dim> &dof_handler,
-                 Vector<double> &       rhs) const = 0;
-  };
-
-
-
-  template <int dim>
-  class PointValueEvaluation : public DualFunctionalBase<dim>
-  {
-  public:
-    PointValueEvaluation(const Point<dim> &evaluation_point);
-
-    virtual void
-    assemble_rhs(const DoFHandler<dim> &dof_handler, Vector<double> &rhs) const;
-
-
-    DeclException1(ExcEvaluationPointNotFound,
-                   Point<dim>,
-                   << "The evaluation point " << arg1
-                   << " was not found among the vertices of the present grid.");
-
-  protected:
-    const Point<dim> evaluation_point;
-  };
-
-
-  template <int dim>
-  PointValueEvaluation<dim>::PointValueEvaluation(
-    const Point<dim> &evaluation_point)
-    : evaluation_point(evaluation_point)
-  {}
-
-
-  template <int dim>
-  void
-  PointValueEvaluation<dim>::assemble_rhs(const DoFHandler<dim> &dof_handler,
-
-                                          Vector<double> &rhs) const
-  {
-    rhs.reinit(dof_handler.n_dofs());
-
-    typename DoFHandler<dim>::active_cell_iterator cell =
-                                                     dof_handler.begin_active(),
-                                                   endc = dof_handler.end();
-    for (; cell != endc; ++cell)
-      for (const unsigned int vertex : GeometryInfo<dim>::vertex_indices())
-        if (cell->vertex(vertex).distance(evaluation_point) <
-            cell->diameter() * 1e-8)
-          {
-            rhs(cell->vertex_dof_index(vertex, 0)) = 1;
-            return;
-          };
-
-    AssertThrow(false, ExcEvaluationPointNotFound(evaluation_point));
-  }
-
-
-
-  template <int dim>
-  class PointXDerivativeEvaluation : public DualFunctionalBase<dim>
-  {
-  public:
-    PointXDerivativeEvaluation(const Point<dim> &evaluation_point);
-
-    virtual void
-    assemble_rhs(const DoFHandler<dim> &dof_handler, Vector<double> &rhs) const;
-
-
-    DeclException1(ExcEvaluationPointNotFound,
-                   Point<dim>,
-                   << "The evaluation point " << arg1
-                   << " was not found among the vertices of the present grid.");
-
-  protected:
-    const Point<dim> evaluation_point;
-  };
-
-
-  template <int dim>
-  PointXDerivativeEvaluation<dim>::PointXDerivativeEvaluation(
-    const Point<dim> &evaluation_point)
-    : evaluation_point(evaluation_point)
-  {}
-
-
-  template <int dim>
-  void
-  PointXDerivativeEvaluation<dim>::assemble_rhs(
-    const DoFHandler<dim> &dof_handler,
-    Vector<double> &       rhs) const
-  {
-    rhs.reinit(dof_handler.n_dofs());
-
-    QGauss<dim>        quadrature(4);
-    hp::FEValues<dim>  fe_values(dof_handler.get_fe(),
-                                quadrature,
-                                update_gradients | update_quadrature_points |
-                                  update_JxW_values);
-    const unsigned int n_q_points =
-      fe_values.get_present_fe_values().n_quadrature_points;
-    const unsigned int dofs_per_cell = dof_handler.get_fe().dofs_per_cell;
-
-    Vector<double>                       cell_rhs(dofs_per_cell);
-    std::vector<types::global_dof_index> local_dof_indices(dofs_per_cell);
-
-    double total_volume = 0;
-
-    typename DoFHandler<dim>::active_cell_iterator cell =
-                                                     dof_handler.begin_active(),
-                                                   endc = dof_handler.end();
-    for (; cell != endc; ++cell)
-      if (cell->center().distance(evaluation_point) <= cell->diameter())
-        {
-          fe_values.reinit(cell);
-          cell_rhs = 0;
-
-          for (unsigned int q = 0; q < n_q_points; ++q)
-            {
-              for (unsigned int i = 0; i < dofs_per_cell; ++i)
-                cell_rhs(i) +=
-                  fe_values.get_present_fe_values().shape_grad(i, q)[0] *
-                  fe_values.get_present_fe_values().JxW(q);
-              total_volume += fe_values.get_present_fe_values().JxW(q);
-            };
-
-          cell->get_dof_indices(local_dof_indices);
-          for (unsigned int i = 0; i < dofs_per_cell; ++i)
-            rhs(local_dof_indices[i]) += cell_rhs(i);
-        };
-
-    AssertThrow(total_volume > 0, ExcEvaluationPointNotFound(evaluation_point));
-
-    rhs /= total_volume;
-  }
-
-
-} // namespace DualFunctional
-
-
-namespace LaplaceSolver
-{
-  template <int dim>
-  class DualSolver : public Solver<dim>
-  {
-  public:
-    DualSolver(Triangulation<dim> &                           triangulation,
-               const hp::FECollection<dim> &                  fe,
-               const hp::QCollection<dim> &                   quadrature,
-               const hp::QCollection<dim - 1> &               face_quadrature,
-               const DualFunctional::DualFunctionalBase<dim> &dual_functional);
-
-    virtual void
-    solve_problem();
-
-    virtual unsigned int
-    n_dofs() const;
-
-    virtual void
-    postprocess(const Evaluation::EvaluationBase<dim> &postprocessor) const;
-
-  protected:
-    const SmartPointer<const DualFunctional::DualFunctionalBase<dim>>
-      dual_functional;
-    virtual void
-    assemble_rhs(Vector<double> &rhs) const;
-
-    static const Functions::ZeroFunction<dim> boundary_values;
-
-    friend class WeightedResidual<dim>;
-  };
-
-  template <int dim>
-  const Functions::ZeroFunction<dim> DualSolver<dim>::boundary_values;
-
-  template <int dim>
-  DualSolver<dim>::DualSolver(
-    Triangulation<dim> &                           triangulation,
-    const hp::FECollection<dim> &                  fe,
-    const hp::QCollection<dim> &                   quadrature,
-    const hp::QCollection<dim - 1> &               face_quadrature,
-    const DualFunctional::DualFunctionalBase<dim> &dual_functional)
-    : Base<dim>(triangulation)
-    , Solver<dim>(triangulation,
-                  fe,
-                  quadrature,
-                  face_quadrature,
-                  boundary_values)
-    , dual_functional(&dual_functional)
-  {}
-
-
-  template <int dim>
-  void
-  DualSolver<dim>::solve_problem()
-  {
-    Solver<dim>::solve_problem();
-  }
-
-
-
-  template <int dim>
-  unsigned int
-  DualSolver<dim>::n_dofs() const
-  {
-    return Solver<dim>::n_dofs();
-  }
-
-
-  template <int dim>
-  void
-  DualSolver<dim>::postprocess(
-    const Evaluation::EvaluationBase<dim> &postprocessor) const
-  {
-    Solver<dim>::postprocess(postprocessor);
-  }
-
-
-
-  template <int dim>
-  void
-  DualSolver<dim>::assemble_rhs(Vector<double> &rhs) const
-  {
-    dual_functional->assemble_rhs(this->dof_handler, rhs);
-  }
-
-
-
-  template <int dim>
-  class WeightedResidual : public PrimalSolver<dim>, public DualSolver<dim>
-  {
-  public:
-    WeightedResidual(
-      Triangulation<dim> &                           coarse_grid,
-      const hp::FECollection<dim> &                  primal_fe,
-      const hp::FECollection<dim> &                  dual_fe,
-      const hp::QCollection<dim> &                   quadrature,
-      const hp::QCollection<dim - 1> &               face_quadrature,
-      const Function<dim> &                          rhs_function,
-      const Function<dim> &                          boundary_values,
-      const DualFunctional::DualFunctionalBase<dim> &dual_functional);
-
-    virtual void
-    solve_problem();
-
-    virtual void
-    postprocess(const Evaluation::EvaluationBase<dim> &postprocessor) const;
-
-    virtual unsigned int
-    n_dofs() const;
-
-    virtual void
-    refine_grid();
-
-    virtual void
-    output_solution() const;
-
-  private:
-    void
-    solve_primal_problem();
-    void
-    solve_dual_problem();
-
-    using active_cell_iterator = typename DoFHandler<dim>::active_cell_iterator;
-
-
-    using FaceIntegrals =
-      typename std::map<typename DoFHandler<dim>::face_iterator, double>;
-
-
-
-    struct CellData
-    {
-      hp::FEValues<dim>                       fe_values;
-      const SmartPointer<const Function<dim>> right_hand_side;
-
-      std::vector<double>                  cell_residual;
-      std::vector<double>                  rhs_values;
-      std::vector<double>                  dual_weights;
-      typename std::vector<Tensor<2, dim>> cell_grad_grads;
-      CellData(const hp::FECollection<dim> &fe,
-               const hp::QCollection<dim> & quadrature,
-               const Function<dim> &        right_hand_side);
-    };
-
-    struct FaceData
-    {
-      hp::FEFaceValues<dim>    fe_face_values_cell;
-      hp::FEFaceValues<dim>    fe_face_values_neighbor;
-      hp::FESubfaceValues<dim> fe_subface_values_cell;
-
-      std::vector<double>                  jump_residual;
-      std::vector<double>                  dual_weights;
-      typename std::vector<Tensor<1, dim>> cell_grads;
-      typename std::vector<Tensor<1, dim>> neighbor_grads;
-      FaceData(const hp::FECollection<dim> &   fe,
-               const hp::QCollection<dim - 1> &face_quadrature);
-    };
-
-
-
-    void
-    estimate_error(Vector<float> &error_indicators) const;
-
-    void
-    estimate_some(const Vector<double> &primal_solution,
-                  const Vector<double> &dual_weights,
-                  const unsigned int    n_threads,
-                  const unsigned int    this_thread,
-                  Vector<float> &       error_indicators,
-                  FaceIntegrals &       face_integrals) const;
-
-    void
-    integrate_over_cell(const active_cell_iterator &cell,
-                        const unsigned int          cell_index,
-                        const Vector<double> &      primal_solution,
-                        const Vector<double> &      dual_weights,
-                        CellData &                  cell_data,
-                        Vector<float> &             error_indicators) const;
-
-    void
-    integrate_over_regular_face(const active_cell_iterator &cell,
-                                const unsigned int          face_no,
-                                const Vector<double> &      primal_solution,
-                                const Vector<double> &      dual_weights,
-                                FaceData &                  face_data,
-                                FaceIntegrals &face_integrals) const;
-    void
-    integrate_over_irregular_face(const active_cell_iterator &cell,
-                                  const unsigned int          face_no,
-                                  const Vector<double> &      primal_solution,
-                                  const Vector<double> &      dual_weights,
-                                  FaceData &                  face_data,
-                                  FaceIntegrals &face_integrals) const;
-  };
-
-
-
-  template <int dim>
-  WeightedResidual<dim>::CellData::CellData(
-    const hp::FECollection<dim> &fe,
-    const hp::QCollection<dim> & quadrature,
-    const Function<dim> &        right_hand_side)
-    : fe_values(fe,
-                quadrature,
-                update_values | update_hessians | update_quadrature_points |
-                  update_JxW_values)
-    , right_hand_side(&right_hand_side)
-  {
-    const unsigned int n_q_points = quadrature[0].size();
-
-    cell_residual.resize(n_q_points);
-    rhs_values.resize(n_q_points);
-    dual_weights.resize(n_q_points);
-    cell_grad_grads.resize(n_q_points);
-  }
-
-
-
-  template <int dim>
-  WeightedResidual<dim>::FaceData::FaceData(
-    const hp::FECollection<dim> &   fe,
-    const hp::QCollection<dim - 1> &face_quadrature)
-    : fe_face_values_cell(fe,
-                          face_quadrature,
-                          update_values | update_gradients | update_JxW_values |
-                            update_normal_vectors)
-    , fe_face_values_neighbor(fe,
-                              face_quadrature,
-                              update_values | update_gradients |
-                                update_JxW_values | update_normal_vectors)
-    , fe_subface_values_cell(fe, face_quadrature, update_gradients)
-  {
-    const unsigned int n_face_q_points = face_quadrature[0].size();
-
-    jump_residual.resize(n_face_q_points);
-    dual_weights.resize(n_face_q_points);
-    cell_grads.resize(n_face_q_points);
-    neighbor_grads.resize(n_face_q_points);
-  }
-
-
-
-  template <int dim>
-  WeightedResidual<dim>::WeightedResidual(
-    Triangulation<dim> &                           coarse_grid,
-    const hp::FECollection<dim> &                  primal_fe,
-    const hp::FECollection<dim> &                  dual_fe,
-    const hp::QCollection<dim> &                   quadrature,
-    const hp::QCollection<dim - 1> &               face_quadrature,
-    const Function<dim> &                          rhs_function,
-    const Function<dim> &                          bv,
-    const DualFunctional::DualFunctionalBase<dim> &dual_functional)
-    : Base<dim>(coarse_grid)
-    , PrimalSolver<dim>(coarse_grid,
-                        primal_fe,
-                        quadrature,
-                        face_quadrature,
-                        rhs_function,
-                        bv)
-    , DualSolver<dim>(coarse_grid,
-                      dual_fe,
-                      quadrature,
-                      face_quadrature,
-                      dual_functional)
-  {}
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::solve_problem()
-  {
-    std::vector<std::thread> threads;
-    threads.emplace_back(&WeightedResidual<dim>::solve_primal_problem, *this);
-    threads.emplace_back(&WeightedResidual<dim>::solve_dual_problem, *this);
-    threads[0].join();
-    threads[1].join();
-  }
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::solve_primal_problem()
-  {
-    PrimalSolver<dim>::solve_problem();
-  }
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::solve_dual_problem()
-  {
-    DualSolver<dim>::solve_problem();
-  }
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::postprocess(
-    const Evaluation::EvaluationBase<dim> &postprocessor) const
-  {
-    PrimalSolver<dim>::postprocess(postprocessor);
-  }
-
-
-  template <int dim>
-  unsigned int
-  WeightedResidual<dim>::n_dofs() const
-  {
-    return PrimalSolver<dim>::n_dofs();
-  }
-
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::refine_grid()
-  {
-    Vector<float> error_indicators(this->triangulation->n_active_cells());
-    estimate_error(error_indicators);
-
-    for (Vector<float>::iterator i = error_indicators.begin();
-         i != error_indicators.end();
-         ++i)
-      *i = std::fabs(*i);
-
-    GridRefinement::refine_and_coarsen_fixed_fraction(*this->triangulation,
-                                                      error_indicators,
-                                                      0.8,
-                                                      0.02);
-    this->triangulation->execute_coarsening_and_refinement();
-  }
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::output_solution() const
-  {
-    const PrimalSolver<dim> &primal_solver = *this;
-    const DualSolver<dim> &  dual_solver   = *this;
-
-    AffineConstraints<double> primal_hanging_node_constraints;
-    DoFTools::make_hanging_node_constraints(primal_solver.dof_handler,
-                                            primal_hanging_node_constraints);
-    primal_hanging_node_constraints.close();
-    Vector<double> dual_solution(primal_solver.dof_handler.n_dofs());
-    FETools::interpolate(dual_solver.dof_handler,
-                         dual_solver.solution,
-                         primal_solver.dof_handler,
-                         primal_hanging_node_constraints,
-                         dual_solution);
-
-    DataOut<dim> data_out;
-    data_out.attach_dof_handler(primal_solver.dof_handler);
-
-    data_out.add_data_vector(primal_solver.solution, "primal_solution");
-    data_out.add_data_vector(dual_solution, "dual_solution");
-
-    data_out.build_patches();
-
-    std::ostringstream filename;
-    filename << "solution-" << this->refinement_cycle << ".gnuplot"
-             << std::ends;
-    data_out.write(deallog.get_file_stream(), DataOut<dim>::gnuplot);
-  }
-
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::estimate_error(Vector<float> &error_indicators) const
-  {
-    const PrimalSolver<dim> &primal_solver = *this;
-    const DualSolver<dim> &  dual_solver   = *this;
-
-    AffineConstraints<double> dual_hanging_node_constraints;
-    DoFTools::make_hanging_node_constraints(dual_solver.dof_handler,
-                                            dual_hanging_node_constraints);
-    dual_hanging_node_constraints.close();
-    Vector<double> primal_solution(dual_solver.dof_handler.n_dofs());
-    FETools::interpolate(primal_solver.dof_handler,
-                         primal_solver.solution,
-                         dual_solver.dof_handler,
-                         dual_hanging_node_constraints,
-                         primal_solution);
-
-    AffineConstraints<double> primal_hanging_node_constraints;
-    DoFTools::make_hanging_node_constraints(primal_solver.dof_handler,
-                                            primal_hanging_node_constraints);
-    primal_hanging_node_constraints.close();
-    Vector<double> dual_weights(dual_solver.dof_handler.n_dofs());
-    FETools::interpolation_difference(dual_solver.dof_handler,
-                                      dual_hanging_node_constraints,
-                                      dual_solver.solution,
-                                      primal_solver.dof_handler,
-                                      primal_hanging_node_constraints,
-                                      dual_weights);
-
-
-    FaceIntegrals face_integrals;
-    for (active_cell_iterator cell = dual_solver.dof_handler.begin_active();
-         cell != dual_solver.dof_handler.end();
-         ++cell)
-      for (const unsigned int face_no : GeometryInfo<dim>::face_indices())
-        face_integrals[cell->face(face_no)] = -1e20;
-
-    error_indicators.reinit(
-      dual_solver.dof_handler.get_triangulation().n_active_cells());
-
-    const unsigned int       n_threads = MultithreadInfo::n_threads();
-    std::vector<std::thread> threads;
-    for (unsigned int i = 0; i < n_threads; ++i)
-      threads.emplace_back(&WeightedResidual<dim>::estimate_some,
-                           *this,
-                           primal_solution,
-                           dual_weights,
-                           n_threads,
-                           i,
-                           error_indicators,
-                           face_integrals);
-    for (auto &thread : threads)
-      thread.join();
-
-    unsigned int present_cell = 0;
-    for (active_cell_iterator cell = dual_solver.dof_handler.begin_active();
-         cell != dual_solver.dof_handler.end();
-         ++cell, ++present_cell)
-      for (const unsigned int face_no : GeometryInfo<dim>::face_indices())
-        {
-          Assert(face_integrals.find(cell->face(face_no)) !=
-                   face_integrals.end(),
-                 ExcInternalError());
-          error_indicators(present_cell) -=
-            0.5 * face_integrals[cell->face(face_no)];
-        };
-    deallog << "   Estimated error="
-            << std::accumulate(error_indicators.begin(),
-                               error_indicators.end(),
-                               0.)
-            << std::endl;
-  }
-
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::estimate_some(const Vector<double> &primal_solution,
-                                       const Vector<double> &dual_weights,
-                                       const unsigned int    n_threads,
-                                       const unsigned int    this_thread,
-                                       Vector<float> &       error_indicators,
-                                       FaceIntegrals &face_integrals) const
-  {
-    const PrimalSolver<dim> &primal_solver = *this;
-    const DualSolver<dim> &  dual_solver   = *this;
-
-    CellData cell_data(*dual_solver.fe,
-                       *dual_solver.quadrature,
-                       *primal_solver.rhs_function);
-    FaceData face_data(*dual_solver.fe, *dual_solver.face_quadrature);
-
-    active_cell_iterator cell = dual_solver.dof_handler.begin_active();
-    for (unsigned int t = 0;
-         (t < this_thread) && (cell != dual_solver.dof_handler.end());
-         ++t, ++cell)
-      ;
-
-    if (cell == dual_solver.dof_handler.end())
-      return;
-
-    for (unsigned int cell_index = this_thread; true;)
-      {
-        integrate_over_cell(cell,
-                            cell_index,
-                            primal_solution,
-                            dual_weights,
-                            cell_data,
-                            error_indicators);
-
-        for (const unsigned int face_no : GeometryInfo<dim>::face_indices())
-          {
-            if (cell->face(face_no)->at_boundary())
-              {
-                face_integrals[cell->face(face_no)] = 0;
-                continue;
-              };
-
-            if ((cell->neighbor(face_no)->has_children() == false) &&
-                (cell->neighbor(face_no)->level() == cell->level()) &&
-                (cell->neighbor(face_no)->index() < cell->index()))
-              continue;
-
-            if (cell->at_boundary(face_no) == false)
-              if (cell->neighbor(face_no)->level() < cell->level())
-                continue;
-
-
-            if (cell->face(face_no)->has_children() == false)
-              integrate_over_regular_face(cell,
-                                          face_no,
-                                          primal_solution,
-                                          dual_weights,
-                                          face_data,
-                                          face_integrals);
-            else
-              integrate_over_irregular_face(cell,
-                                            face_no,
-                                            primal_solution,
-                                            dual_weights,
-                                            face_data,
-                                            face_integrals);
-          };
-
-        for (unsigned int t = 0;
-             ((t < n_threads) && (cell != dual_solver.dof_handler.end()));
-             ++t, ++cell, ++cell_index)
-          ;
-        if (cell == dual_solver.dof_handler.end())
-          break;
-      };
-  }
-
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::integrate_over_cell(
-    const active_cell_iterator &cell,
-    const unsigned int          cell_index,
-    const Vector<double> &      primal_solution,
-    const Vector<double> &      dual_weights,
-    CellData &                  cell_data,
-    Vector<float> &             error_indicators) const
-  {
-    cell_data.fe_values.reinit(cell);
-    cell_data.right_hand_side->value_list(
-      cell_data.fe_values.get_present_fe_values().get_quadrature_points(),
-      cell_data.rhs_values);
-    cell_data.fe_values.get_present_fe_values().get_function_hessians(
-      primal_solution, cell_data.cell_grad_grads);
-
-    cell_data.fe_values.get_present_fe_values().get_function_values(
-      dual_weights, cell_data.dual_weights);
-
-    double sum = 0;
-    for (unsigned int p = 0;
-         p < cell_data.fe_values.get_present_fe_values().n_quadrature_points;
-         ++p)
-      sum += ((cell_data.rhs_values[p] + trace(cell_data.cell_grad_grads[p])) *
-              cell_data.dual_weights[p] *
-              cell_data.fe_values.get_present_fe_values().JxW(p));
-    error_indicators(cell_index) += sum;
-  }
-
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::integrate_over_regular_face(
-    const active_cell_iterator &cell,
-    const unsigned int          face_no,
-    const Vector<double> &      primal_solution,
-    const Vector<double> &      dual_weights,
-    FaceData &                  face_data,
-    FaceIntegrals &             face_integrals) const
-  {
-    const unsigned int n_q_points =
-      face_data.fe_face_values_cell.get_present_fe_values().n_quadrature_points;
-
-    face_data.fe_face_values_cell.reinit(cell, face_no);
-    face_data.fe_face_values_cell.get_present_fe_values()
-      .get_function_gradients(primal_solution, face_data.cell_grads);
-
-    Assert(cell->neighbor(face_no).state() == IteratorState::valid,
-           ExcInternalError());
-    const unsigned int neighbor_neighbor = cell->neighbor_of_neighbor(face_no);
-    const active_cell_iterator neighbor  = cell->neighbor(face_no);
-    face_data.fe_face_values_neighbor.reinit(neighbor, neighbor_neighbor);
-    face_data.fe_face_values_neighbor.get_present_fe_values()
-      .get_function_gradients(primal_solution, face_data.neighbor_grads);
-
-    for (unsigned int p = 0; p < n_q_points; ++p)
-      face_data.jump_residual[p] =
-        ((face_data.cell_grads[p] - face_data.neighbor_grads[p]) *
-         face_data.fe_face_values_cell.get_present_fe_values().normal_vector(
-           p));
-
-    face_data.fe_face_values_cell.get_present_fe_values().get_function_values(
-      dual_weights, face_data.dual_weights);
-
-    double face_integral = 0;
-    for (unsigned int p = 0; p < n_q_points; ++p)
-      face_integral +=
-        (face_data.jump_residual[p] * face_data.dual_weights[p] *
-         face_data.fe_face_values_cell.get_present_fe_values().JxW(p));
-
-    Assert(face_integrals.find(cell->face(face_no)) != face_integrals.end(),
-           ExcInternalError());
-    Assert(face_integrals[cell->face(face_no)] == -1e20, ExcInternalError());
-
-    face_integrals[cell->face(face_no)] = face_integral;
-  }
-
-
-
-  template <int dim>
-  void
-  WeightedResidual<dim>::integrate_over_irregular_face(
-    const active_cell_iterator &cell,
-    const unsigned int          face_no,
-    const Vector<double> &      primal_solution,
-    const Vector<double> &      dual_weights,
-    FaceData &                  face_data,
-    FaceIntegrals &             face_integrals) const
-  {
-    const unsigned int n_q_points =
-      face_data.fe_face_values_cell.get_present_fe_values().n_quadrature_points;
-
-    const typename DoFHandler<dim>::face_iterator face = cell->face(face_no);
-    const typename DoFHandler<dim>::cell_iterator neighbor =
-
-      cell->neighbor(face_no);
-    Assert(neighbor.state() == IteratorState::valid, ExcInternalError());
-    Assert(neighbor->has_children(), ExcInternalError());
-
-    const unsigned int neighbor_neighbor = cell->neighbor_of_neighbor(face_no);
-
-    for (unsigned int subface_no = 0; subface_no < face->n_children();
-         ++subface_no)
-      {
-        const active_cell_iterator neighbor_child =
-          cell->neighbor_child_on_subface(face_no, subface_no);
-        Assert(neighbor_child->face(neighbor_neighbor) ==
-                 cell->face(face_no)->child(subface_no),
-               ExcInternalError());
-
-        face_data.fe_subface_values_cell.reinit(cell, face_no, subface_no);
-        face_data.fe_subface_values_cell.get_present_fe_values()
-          .get_function_gradients(primal_solution, face_data.cell_grads);
-        face_data.fe_face_values_neighbor.reinit(neighbor_child,
-                                                 neighbor_neighbor);
-        face_data.fe_face_values_neighbor.get_present_fe_values()
-          .get_function_gradients(primal_solution, face_data.neighbor_grads);
-
-        for (unsigned int p = 0; p < n_q_points; ++p)
-          face_data.jump_residual[p] =
-            ((face_data.neighbor_grads[p] - face_data.cell_grads[p]) *
-             face_data.fe_face_values_neighbor.get_present_fe_values()
-               .normal_vector(p));
-
-        face_data.fe_face_values_neighbor.get_present_fe_values()
-          .get_function_values(dual_weights, face_data.dual_weights);
-
-        double face_integral = 0;
-        for (unsigned int p = 0; p < n_q_points; ++p)
-          face_integral +=
-            (face_data.jump_residual[p] * face_data.dual_weights[p] *
-             face_data.fe_face_values_neighbor.get_present_fe_values().JxW(p));
-        face_integrals[neighbor_child->face(neighbor_neighbor)] = face_integral;
-      };
-
-    double sum = 0;
-    for (unsigned int subface_no = 0; subface_no < face->n_children();
-         ++subface_no)
-      {
-        Assert(face_integrals.find(face->child(subface_no)) !=
-                 face_integrals.end(),
-               ExcInternalError());
-        Assert(face_integrals[face->child(subface_no)] != -1e20,
-               ExcInternalError());
-
-        sum += face_integrals[face->child(subface_no)];
-      };
-    face_integrals[face] = sum;
-  }
-
-} // namespace LaplaceSolver
-
-
-
-template <int dim>
-struct Framework
-{
-public:
-  using Evaluator     = Evaluation::EvaluationBase<dim>;
-  using EvaluatorList = std::list<Evaluator *>;
-
-
-  struct ProblemDescription
-  {
-    unsigned int primal_fe_degree;
-    unsigned int dual_fe_degree;
-
-    SmartPointer<const Data::SetUpBase<dim>> data;
-
-    enum RefinementCriterion
-    {
-      dual_weighted_error_estimator,
-      global_refinement,
-      kelly_indicator,
-      weighted_kelly_indicator
-    };
-
-    RefinementCriterion refinement_criterion;
-
-    SmartPointer<const DualFunctional::DualFunctionalBase<dim>> dual_functional;
-
-    EvaluatorList evaluator_list;
-
-    SmartPointer<const Function<dim>> kelly_weight;
-
-    unsigned int max_degrees_of_freedom;
-
-    ProblemDescription();
-  };
-
-  static void
-  run(const ProblemDescription &descriptor);
-};
-
-
-template <int dim>
-Framework<dim>::ProblemDescription::ProblemDescription()
-  : primal_fe_degree(1)
-  , dual_fe_degree(2)
-  , refinement_criterion(dual_weighted_error_estimator)
-  , max_degrees_of_freedom(5000)
-{}
-
-
-
-template <int dim>
-void
-Framework<dim>::run(const ProblemDescription &descriptor)
-{
-  Triangulation<dim> triangulation(Triangulation<dim>::smoothing_on_refinement);
-  descriptor.data->create_coarse_grid(triangulation);
-
-  const hp::FECollection<dim> primal_fe(FE_Q<dim>(descriptor.primal_fe_degree));
-  const hp::FECollection<dim> dual_fe(FE_Q<dim>(descriptor.dual_fe_degree));
-  const hp::QCollection<dim>  quadrature(
-    QGauss<dim>(descriptor.dual_fe_degree + 1));
-  const hp::QCollection<dim - 1> face_quadrature(
-    QGauss<dim - 1>(descriptor.dual_fe_degree + 1));
-
-  LaplaceSolver::Base<dim> *solver = nullptr;
-  switch (descriptor.refinement_criterion)
-    {
-      case ProblemDescription::dual_weighted_error_estimator:
-        {
-          solver = new LaplaceSolver::WeightedResidual<dim>(
-            triangulation,
-            primal_fe,
-            dual_fe,
-            quadrature,
-            face_quadrature,
-            descriptor.data->get_right_hand_side(),
-            descriptor.data->get_boundary_values(),
-            *descriptor.dual_functional);
-          break;
-        };
-
-      case ProblemDescription::global_refinement:
-        {
-          solver = new LaplaceSolver::RefinementGlobal<dim>(
-            triangulation,
-            primal_fe,
-            quadrature,
-            face_quadrature,
-            descriptor.data->get_right_hand_side(),
-            descriptor.data->get_boundary_values());
-          break;
-        };
-
-      case ProblemDescription::kelly_indicator:
-        {
-          solver = new LaplaceSolver::RefinementKelly<dim>(
-            triangulation,
-            primal_fe,
-            quadrature,
-            face_quadrature,
-            descriptor.data->get_right_hand_side(),
-            descriptor.data->get_boundary_values());
-          break;
-        };
-
-      case ProblemDescription::weighted_kelly_indicator:
-        {
-          solver = new LaplaceSolver::RefinementWeightedKelly<dim>(
-            triangulation,
-            primal_fe,
-            quadrature,
-            face_quadrature,
-            descriptor.data->get_right_hand_side(),
-            descriptor.data->get_boundary_values(),
-            *descriptor.kelly_weight);
-          break;
-        };
-
-      default:
-        AssertThrow(false, ExcInternalError());
-    };
-
-  for (unsigned int step = 0; true; ++step)
-    {
-      deallog << "Refinement cycle: " << step << std::endl;
-
-      solver->set_refinement_cycle(step);
-      solver->solve_problem();
-      solver->output_solution();
-
-      deallog << "   Number of degrees of freedom=" << solver->n_dofs()
-              << std::endl;
-
-      for (typename EvaluatorList::const_iterator e =
-             descriptor.evaluator_list.begin();
-           e != descriptor.evaluator_list.end();
-           ++e)
-        {
-          (*e)->set_refinement_cycle(step);
-          solver->postprocess(**e);
-        };
-
-
-      if (solver->n_dofs() < descriptor.max_degrees_of_freedom)
-        solver->refine_grid();
-      else
-        break;
-    };
-
-  deallog << std::endl;
-  delete solver;
-  solver = nullptr;
-}
-
-
-
-int
-main()
-{
-  try
-    {
-      logfile.precision(2);
-
-      deallog.attach(logfile);
-
-      const unsigned int                 dim = 2;
-      Framework<dim>::ProblemDescription descriptor;
-
-      descriptor.refinement_criterion =
-        Framework<dim>::ProblemDescription::dual_weighted_error_estimator;
-
-      descriptor.primal_fe_degree = 1;
-      descriptor.dual_fe_degree   = 2;
-
-      descriptor.data = new Data::SetUp<Data::Exercise_2_3<dim>, dim>();
-
-      const Point<dim> evaluation_point(0.75, 0.75);
-      descriptor.dual_functional =
-        new DualFunctional::PointValueEvaluation<dim>(evaluation_point);
-
-      Evaluation::PointValueEvaluation<dim> postprocessor1(evaluation_point);
-      Evaluation::GridOutput<dim>           postprocessor2("grid");
-
-      descriptor.evaluator_list.push_back(&postprocessor1);
-      descriptor.evaluator_list.push_back(&postprocessor2);
-
-      descriptor.max_degrees_of_freedom = 20000;
-
-      Framework<dim>::run(descriptor);
-    }
-
-  catch (const std::exception &exc)
-    {
-      std::cerr << std::endl
-                << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      std::cerr << "Exception on processing: " << std::endl
-                << exc.what() << std::endl
-                << "Aborting!" << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      return 1;
-    }
-  catch (...)
-    {
-      std::cerr << std::endl
-                << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      std::cerr << "Unknown exception!" << std::endl
-                << "Aborting!" << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      return 1;
-    };
-
-  return 0;
-}
diff --git a/tests/fail/hp-step-15.cc b/tests/fail/hp-step-15.cc
deleted file mode 100644 (file)
index caa911f..0000000
+++ /dev/null
@@ -1,646 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2005 - 2022 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// a hp-ified version of step-15
-
-
-#include "../tests.h"
-
-std::ofstream logfile("step-15/output");
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_accessor.h>
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe_q.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_refinement.h>
-#include <deal.II/grid/manifold_lib.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/hp/fe_values.h>
-#include <deal.II/hp/q_collection.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/precondition.h>
-#include <deal.II/lac/solver_cg.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/matrix_tools.h>
-#include <deal.II/numerics/solution_transfer.h>
-#include <deal.II/numerics/vector_tools.h>
-
-#include <iostream>
-#include <sstream>
-
-
-template <int dim>
-inline double
-gradient_power(const Tensor<1, dim> &v, const unsigned int n)
-{
-  Assert((n / 2) * 2 == n, ExcMessage("Value of 'n' must be even"));
-  double p = 1;
-  for (unsigned int k = 0; k < n; k += 2)
-    p *= (v * v);
-  return p;
-}
-
-
-
-class InitializationValues : public Function<1>
-{
-public:
-  InitializationValues()
-    : Function<1>()
-  {}
-
-  virtual double
-  value(const Point<1> &p, const unsigned int component = 0) const;
-};
-
-
-
-double
-InitializationValues::value(const Point<1> &p, const unsigned int) const
-{
-  const double base   = std::pow(p(0), 1. / 3.);
-  const double random = random_value<double>(-1., 1.);
-  return std::max(base + .1 * random, 0.);
-}
-
-
-
-template <int dim>
-class MinimizationProblem
-{
-public:
-  MinimizationProblem(const unsigned int run_number);
-  void
-  run();
-
-private:
-  void
-  initialize_solution();
-  void
-  setup_system_on_mesh();
-  void
-  assemble_step();
-  double
-  line_search(const Vector<double> &update) const;
-  void
-  do_step();
-  void
-  output_results() const;
-  void
-  refine_grid();
-
-  static double
-  energy(const DoFHandler<dim> &dof_handler, const Vector<double> &function);
-
-
-
-  const unsigned int run_number;
-
-  Triangulation<dim> triangulation;
-
-  hp::FECollection<dim> fe;
-  DoFHandler<dim>       dof_handler;
-
-  AffineConstraints<double> hanging_node_constraints;
-
-  SparsityPattern      sparsity_pattern;
-  SparseMatrix<double> matrix;
-
-  Vector<double> present_solution;
-  Vector<double> residual;
-};
-
-
-
-template <int dim>
-MinimizationProblem<dim>::MinimizationProblem(const unsigned int run_number)
-  : run_number(run_number)
-  , fe(FE_Q<dim>(1))
-  , dof_handler(triangulation)
-{}
-
-
-template <>
-void
-MinimizationProblem<1>::initialize_solution()
-{
-  present_solution.reinit(dof_handler.n_dofs());
-  VectorTools::interpolate(dof_handler,
-                           InitializationValues(),
-                           present_solution);
-
-  DoFHandler<1>::cell_iterator cell;
-  cell = dof_handler.begin(0);
-  while (cell->at_boundary(0) == false)
-    cell = cell->neighbor(0);
-  while (cell->has_children() == true)
-    cell = cell->child(0);
-  present_solution(cell->vertex_dof_index(0, 0)) = 0;
-
-  cell = dof_handler.begin(0);
-  while (cell->at_boundary(1) == false)
-    cell = cell->neighbor(1);
-  while (cell->has_children())
-    cell = cell->child(1);
-  present_solution(cell->vertex_dof_index(1, 0)) = 1;
-}
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::setup_system_on_mesh()
-{
-  hanging_node_constraints.clear();
-  DoFTools::make_hanging_node_constraints(dof_handler,
-                                          hanging_node_constraints);
-  hanging_node_constraints.close();
-
-  sparsity_pattern.reinit(dof_handler.n_dofs(),
-                          dof_handler.n_dofs(),
-                          dof_handler.max_couplings_between_dofs());
-  DoFTools::make_sparsity_pattern(dof_handler, sparsity_pattern);
-
-  hanging_node_constraints.condense(sparsity_pattern);
-
-  sparsity_pattern.compress();
-}
-
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::assemble_step()
-{
-  matrix.reinit(sparsity_pattern);
-  residual.reinit(dof_handler.n_dofs());
-
-  hp::QCollection<dim> quadrature_formula(QGauss<dim>(4));
-  hp::FEValues<dim>    fe_values(fe,
-                              quadrature_formula,
-                              update_values | update_gradients |
-                                update_quadrature_points | update_JxW_values);
-
-  const unsigned int dofs_per_cell = fe[0].dofs_per_cell;
-  const unsigned int n_q_points    = quadrature_formula[0].size();
-
-  FullMatrix<double> cell_matrix(dofs_per_cell, dofs_per_cell);
-  Vector<double>     cell_rhs(dofs_per_cell);
-
-  std::vector<types::global_dof_index> local_dof_indices(dofs_per_cell);
-
-  std::vector<double>         local_solution_values(n_q_points);
-  std::vector<Tensor<1, dim>> local_solution_grads(n_q_points);
-
-  typename DoFHandler<dim>::active_cell_iterator cell =
-                                                   dof_handler.begin_active(),
-                                                 endc = dof_handler.end();
-  for (; cell != endc; ++cell)
-    {
-      cell_matrix = 0;
-      cell_rhs    = 0;
-
-      fe_values.reinit(cell);
-
-      fe_values.get_present_fe_values().get_function_values(
-        present_solution, local_solution_values);
-      fe_values.get_present_fe_values().get_function_gradients(
-        present_solution, local_solution_grads);
-
-      for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-        {
-          const double u = local_solution_values[q_point],
-                       x = fe_values.get_present_fe_values().quadrature_point(
-                         q_point)(0);
-          const double         x_minus_u3 = (x - std::pow(u, 3));
-          const Tensor<1, dim> u_prime    = local_solution_grads[q_point];
-
-          for (unsigned int i = 0; i < dofs_per_cell; ++i)
-            for (unsigned int j = 0; j < dofs_per_cell; ++j)
-              cell_matrix(i, j) +=
-                (fe_values.get_present_fe_values().shape_grad(i, q_point) *
-                   fe_values.get_present_fe_values().shape_grad(j, q_point) *
-                   cell->diameter() * cell->diameter() +
-                 fe_values.get_present_fe_values().shape_value(i, q_point) *
-                   fe_values.get_present_fe_values().shape_value(j, q_point)) *
-                fe_values.get_present_fe_values().JxW(q_point);
-
-          for (unsigned int i = 0; i < dofs_per_cell; ++i)
-            cell_rhs(i) += -(
-              (6. * x_minus_u3 * gradient_power(u_prime, 4) *
-               fe_values.get_present_fe_values().shape_value(i, q_point) *
-               (x_minus_u3 *
-                  (u_prime *
-                   fe_values.get_present_fe_values().shape_grad(i, q_point)) -
-                (u_prime * u_prime) * u * u *
-                  fe_values.get_present_fe_values().shape_value(i, q_point))) *
-              fe_values.get_present_fe_values().JxW(q_point));
-        }
-
-      cell->get_dof_indices(local_dof_indices);
-      for (unsigned int i = 0; i < dofs_per_cell; ++i)
-        {
-          for (unsigned int j = 0; j < dofs_per_cell; ++j)
-            matrix.add(local_dof_indices[i],
-                       local_dof_indices[j],
-                       cell_matrix(i, j));
-
-          residual(local_dof_indices[i]) += cell_rhs(i);
-        }
-    }
-
-  hanging_node_constraints.condense(matrix);
-  hanging_node_constraints.condense(residual);
-
-  std::map<types::global_dof_index, double> boundary_values;
-  VectorTools::interpolate_boundary_values(dof_handler,
-                                           0,
-                                           Functions::ZeroFunction<dim>(),
-                                           boundary_values);
-  if (dim == 1)
-    VectorTools::interpolate_boundary_values(dof_handler,
-                                             1,
-                                             Functions::ZeroFunction<dim>(),
-                                             boundary_values);
-  Vector<double> dummy(residual.size());
-  MatrixTools::apply_boundary_values(boundary_values, matrix, dummy, residual);
-}
-
-
-template <int dim>
-double
-MinimizationProblem<dim>::line_search(const Vector<double> &update) const
-{
-  double         alpha = 0.;
-  Vector<double> tmp(present_solution.size());
-
-  for (unsigned int step = 0; step < 5; ++step)
-    {
-      tmp = present_solution;
-      tmp.add(alpha, update);
-      const double f_a = energy(dof_handler, tmp);
-
-      const double dalpha = (alpha != 0 ? alpha / 100 : 0.01);
-
-      tmp = present_solution;
-      tmp.add(alpha + dalpha, update);
-      const double f_a_plus = energy(dof_handler, tmp);
-
-      tmp = present_solution;
-      tmp.add(alpha - dalpha, update);
-      const double f_a_minus = energy(dof_handler, tmp);
-
-      const double f_a_prime = (f_a_plus - f_a_minus) / (2 * dalpha);
-      const double f_a_doubleprime =
-        ((f_a_plus - 2 * f_a + f_a_minus) / (dalpha * dalpha));
-
-      if (std::fabs(f_a_prime) < 1e-7 * std::fabs(f_a))
-        break;
-
-      if (std::fabs(f_a_doubleprime) < 1e-7 * std::fabs(f_a_prime))
-        break;
-
-      double step_length = -f_a_prime / f_a_doubleprime;
-
-      for (unsigned int i = 0; i < 3; ++i)
-        {
-          tmp = present_solution;
-          tmp.add(alpha + step_length, update);
-          const double e = energy(dof_handler, tmp);
-
-          if (e >= f_a)
-            step_length /= 2;
-          else
-            break;
-        }
-
-      alpha += step_length;
-    }
-
-  return alpha;
-}
-
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::do_step()
-{
-  assemble_step();
-
-  Vector<double> update(present_solution.size());
-  {
-    SolverControl solver_control(residual.size(), 1e-2 * residual.l2_norm());
-    SolverCG<>    solver(solver_control);
-
-    PreconditionSSOR<> preconditioner;
-    preconditioner.initialize(matrix);
-
-    solver.solve(matrix, update, residual, preconditioner);
-    hanging_node_constraints.distribute(update);
-  }
-
-  const double step_length = line_search(update);
-  present_solution.add(step_length, update);
-}
-
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::output_results() const
-{
-  DataOut<dim> data_out;
-  data_out.attach_dof_handler(dof_handler);
-  data_out.add_data_vector(present_solution, "solution");
-  data_out.build_patches();
-
-  std::ostringstream filename;
-  filename << "solution-" << run_number << ".gnuplot" << std::ends;
-
-  data_out.write_gnuplot(deallog.get_file_stream());
-}
-
-
-
-template <>
-void
-MinimizationProblem<1>::refine_grid()
-{
-  const unsigned int dim = 1;
-
-  Vector<float> error_indicators(triangulation.n_active_cells());
-
-  QTrapezoid<dim>      q;
-  hp::QCollection<dim> quadrature(q);
-  hp::FEValues<dim>    fe_values(fe,
-                              quadrature,
-                              update_values | update_gradients |
-                                update_hessians | update_quadrature_points |
-                                update_JxW_values);
-
-  hp::FEValues<dim> neighbor_fe_values(fe, quadrature, update_gradients);
-
-  std::vector<double>         local_values(quadrature[0].size());
-  std::vector<Tensor<1, dim>> local_gradients(quadrature[0].size());
-  std::vector<Tensor<2, dim>> local_2nd_derivs(quadrature[0].size());
-
-  DoFHandler<dim>::active_cell_iterator cell = dof_handler.begin_active(),
-                                        endc = dof_handler.end();
-  for (unsigned int cell_index = 0; cell != endc; ++cell, ++cell_index)
-    {
-      fe_values.reinit(cell);
-      fe_values.get_present_fe_values().get_function_values(present_solution,
-                                                            local_values);
-      fe_values.get_present_fe_values().get_function_gradients(present_solution,
-                                                               local_gradients);
-      fe_values.get_present_fe_values().get_function_hessians(present_solution,
-                                                              local_2nd_derivs);
-
-      double cell_residual_norm = 0;
-      for (unsigned int q = 0; q < quadrature[0].size(); ++q)
-        {
-          const double x =
-            fe_values.get_present_fe_values().quadrature_point(q)[0];
-          const double u             = local_values[q];
-          const double u_prime       = local_gradients[q][0];
-          const double u_doubleprime = local_2nd_derivs[q][0][0];
-          const double local_residual_value =
-            ((x - u * u * u) * std::pow(u_prime, 4) *
-             (u * u * u_prime * u_prime + 5 * (x - u * u * u) * u_doubleprime +
-              2 * u_prime * (1 - 3 * u * u * u_prime)));
-
-          cell_residual_norm += (local_residual_value * local_residual_value *
-                                 fe_values.get_present_fe_values().JxW(q));
-        }
-      error_indicators(cell_index) =
-        cell_residual_norm * cell->diameter() * cell->diameter();
-
-      const double x_left =
-        fe_values.get_present_fe_values().quadrature_point(0)[0];
-      const double x_right =
-        fe_values.get_present_fe_values().quadrature_point(1)[0];
-
-      Assert(x_left == cell->vertex(0)[0], ExcInternalError());
-      Assert(x_right == cell->vertex(1)[0], ExcInternalError());
-
-      const double u_left  = local_values[0];
-      const double u_right = local_values[1];
-
-      const double u_prime_left  = local_gradients[0][0];
-      const double u_prime_right = local_gradients[1][0];
-
-      if (cell->at_boundary(0) == false)
-        {
-          DoFHandler<dim>::cell_iterator left_neighbor = cell->neighbor(0);
-          while (left_neighbor->has_children())
-            left_neighbor = left_neighbor->child(1);
-
-          neighbor_fe_values.reinit(left_neighbor);
-          neighbor_fe_values.get_present_fe_values().get_function_gradients(
-            present_solution, local_gradients);
-
-          const double neighbor_u_prime_left = local_gradients[1][0];
-
-          const double left_jump =
-            std::pow(x_left - std::pow(u_left, 3), 2) *
-            (std::pow(neighbor_u_prime_left, 5) - std::pow(u_prime_left, 5));
-          error_indicators(cell_index) +=
-            left_jump * left_jump * cell->diameter();
-        }
-
-      if (cell->at_boundary(1) == false)
-        {
-          DoFHandler<dim>::cell_iterator right_neighbor = cell->neighbor(1);
-          while (right_neighbor->has_children())
-            right_neighbor = right_neighbor->child(0);
-
-          neighbor_fe_values.reinit(right_neighbor);
-          neighbor_fe_values.get_present_fe_values().get_function_gradients(
-            present_solution, local_gradients);
-
-          const double neighbor_u_prime_right = local_gradients[0][0];
-
-          const double right_jump =
-            std::pow(x_right - std::pow(u_right, 3), 2) *
-            (std::pow(neighbor_u_prime_right, 5) - std::pow(u_prime_right, 5));
-          error_indicators(cell_index) +=
-            right_jump * right_jump * cell->diameter();
-        }
-    }
-
-  GridRefinement::refine_and_coarsen_fixed_number(triangulation,
-                                                  error_indicators,
-                                                  0.3,
-                                                  0.03);
-  triangulation.prepare_coarsening_and_refinement();
-
-  SolutionTransfer<dim> solution_transfer(dof_handler);
-  solution_transfer.prepare_for_coarsening_and_refinement(present_solution);
-
-  triangulation.execute_coarsening_and_refinement();
-  dof_handler.distribute_dofs(fe);
-
-  Vector<double> tmp(dof_handler.n_dofs());
-  solution_transfer.interpolate(present_solution, tmp);
-  present_solution = tmp;
-
-  hanging_node_constraints.clear();
-  DoFTools::make_hanging_node_constraints(dof_handler,
-                                          hanging_node_constraints);
-  hanging_node_constraints.close();
-  hanging_node_constraints.distribute(present_solution);
-}
-
-
-
-template <int dim>
-double
-MinimizationProblem<dim>::energy(const DoFHandler<dim> &dof_handler,
-                                 const Vector<double> & function)
-{
-  hp::QCollection<dim> quadrature_formula(QGauss<dim>(4));
-  hp::FEValues<dim>    fe_values(dof_handler.get_fe(),
-                              quadrature_formula,
-                              update_values | update_gradients |
-                                update_quadrature_points | update_JxW_values);
-
-  const unsigned int n_q_points = quadrature_formula[0].size();
-
-  std::vector<double>         local_solution_values(n_q_points);
-  std::vector<Tensor<1, dim>> local_solution_grads(n_q_points);
-
-  double energy = 0.;
-
-  typename DoFHandler<dim>::active_cell_iterator cell =
-                                                   dof_handler.begin_active(),
-                                                 endc = dof_handler.end();
-  for (; cell != endc; ++cell)
-    {
-      fe_values.reinit(cell);
-      fe_values.get_present_fe_values().get_function_values(
-        function, local_solution_values);
-      fe_values.get_present_fe_values().get_function_gradients(
-        function, local_solution_grads);
-
-      for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-        energy += (std::pow(fe_values.get_present_fe_values().quadrature_point(
-                              q_point)(0) -
-                              std::pow(local_solution_values[q_point], 3),
-                            2) *
-                   gradient_power(local_solution_grads[q_point], 6) *
-                   fe_values.get_present_fe_values().JxW(q_point));
-    }
-
-  return energy;
-}
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::run()
-{
-  GridGenerator::hyper_cube(triangulation, 0., 1.);
-  triangulation.refine_global(4);
-  dof_handler.distribute_dofs(fe);
-  initialize_solution();
-
-  double last_energy = energy(dof_handler, present_solution);
-
-  while (true)
-    {
-      setup_system_on_mesh();
-
-      for (unsigned int iteration = 0; iteration < 5; ++iteration)
-        do_step();
-
-      const double this_energy = energy(dof_handler, present_solution);
-      deallog << "   Energy: " << this_energy << std::endl;
-
-      if ((last_energy - this_energy) < 1e-5 * last_energy)
-        break;
-
-      last_energy = this_energy;
-
-      refine_grid();
-    }
-
-  output_results();
-
-  deallog << std::endl;
-}
-
-
-int
-main()
-{
-  try
-    {
-      logfile.precision(2);
-
-      deallog.attach(logfile);
-
-      const unsigned int n_realizations = 10;
-      for (unsigned int realization = 0; realization < n_realizations;
-           ++realization)
-        {
-          deallog << "Realization " << realization << ':' << std::endl;
-
-          MinimizationProblem<1> minimization_problem_1d(realization);
-          minimization_problem_1d.run();
-        }
-    }
-  catch (const std::exception &exc)
-    {
-      std::cerr << std::endl
-                << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      std::cerr << "Exception on processing: " << std::endl
-                << exc.what() << std::endl
-                << "Aborting!" << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      return 1;
-    }
-  catch (...)
-    {
-      std::cerr << std::endl
-                << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      std::cerr << "Unknown exception!" << std::endl
-                << "Aborting!" << std::endl
-                << "----------------------------------------------------"
-                << std::endl;
-      return 1;
-    }
-  return 0;
-}
diff --git a/tests/fail/hp_constraints_q_08.cc b/tests/fail/hp_constraints_q_08.cc
deleted file mode 100644 (file)
index 92b181b..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for Q elements correctly
-
-char logname[] = "output";
-
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    fe.push_back(FE_Q<dim>(i));
-  test_with_hanging_nodes_random_aniso(fe);
-}
diff --git a/tests/fail/hp_constraints_q_system_08.cc b/tests/fail/hp_constraints_q_system_08.cc
deleted file mode 100644 (file)
index e32c93c..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for FESystem(FE_Q) elements
-// correctly on a uniformly refined mesh for functions of degree q
-
-char logname[] = "output";
-
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    fe.push_back(FESystem<dim>(FE_Q<dim>(i), 1, FE_DGQ<dim>(i + 1), 1));
-
-  test_with_hanging_nodes_random_aniso(fe);
-}
diff --git a/tests/fail/hp_constraints_q_system_x_08.cc b/tests/fail/hp_constraints_q_system_x_08.cc
deleted file mode 100644 (file)
index 491ba6c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for FESystem(FE_Q) elements
-// correctly on a uniformly refined mesh for functions of degree q
-
-// these tests check that we can deal with FESystem(FE_Q(p),FE_DGQ(q)) for
-// different p,q
-
-char logname[] = "output";
-
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    for (unsigned int j = 0; j < 4; ++j)
-      fe.push_back(FESystem<dim>(FE_Q<dim>(i), 1, FE_DGQ<dim>(j), 1));
-
-  test_with_hanging_nodes_random_aniso(fe);
-}
diff --git a/tests/fail/hp_constraints_rt_01.cc b/tests/fail/hp_constraints_rt_01.cc
deleted file mode 100644 (file)
index aee74bb..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for RT elements correctly
-
-char logname[] = "output";
-
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    fe.push_back(FE_RaviartThomas<dim>(i));
-  test_no_hanging_nodes(fe);
-}
diff --git a/tests/fail/hp_constraints_rt_02.cc b/tests/fail/hp_constraints_rt_02.cc
deleted file mode 100644 (file)
index 3e5ea4e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for RT elements correctly
-
-char logname[] = "output";
-
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    fe.push_back(FE_RaviartThomas<dim>(i));
-  test_with_hanging_nodes(fe);
-}
diff --git a/tests/fail/hp_constraints_rt_03.cc b/tests/fail/hp_constraints_rt_03.cc
deleted file mode 100644 (file)
index 91fd603..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for RT elements correctly
-
-char logname[] = "output";
-
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    fe.push_back(FE_RaviartThomas<dim>(i));
-  test_with_wrong_face_orientation(fe);
-}
diff --git a/tests/fail/hp_constraints_rt_04.cc b/tests/fail/hp_constraints_rt_04.cc
deleted file mode 100644 (file)
index 28a9a38..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for RT elements correctly
-
-char logname[] = "output";
-
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    fe.push_back(FE_RaviartThomas<dim>(i));
-  test_with_2d_deformed_mesh(fe);
-}
diff --git a/tests/fail/hp_constraints_rt_05.cc b/tests/fail/hp_constraints_rt_05.cc
deleted file mode 100644 (file)
index 45ef92e..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for RT elements correctly
-
-char logname[] = "output";
-
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  hp::FECollection<dim> fe;
-  for (unsigned int i = 1; i < 4; ++i)
-    fe.push_back(FE_RaviartThomas<dim>(i));
-  test_with_2d_deformed_refined_mesh(fe);
-}
diff --git a/tests/fail/hp_constraints_rt_06.cc b/tests/fail/hp_constraints_rt_06.cc
deleted file mode 100644 (file)
index ee5a7e1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that computation of hp-constraints works for RT elements correctly
-
-char logname[] = "output";
-
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-
-#include "../hp/hp_constraints_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  hp::FECollection<dim>     fe;
-  std::vector<unsigned int> degrees;
-  for (unsigned int i = 1; i < 7 - dim; ++i)
-    {
-      fe.push_back(FE_RaviartThomas<dim>(i));
-      degrees.push_back(i);
-    }
-
-  test_interpolation(fe, degrees);
-}
diff --git a/tests/fail/injection_dgp.cc b/tests/fail/injection_dgp.cc
deleted file mode 100644 (file)
index a28cbb8..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-char logname[] = "output";
-
-
-#include "../fe/injection_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int i = 1; i < 4; ++i)
-    for (unsigned int j = i; j < 4; ++j)
-      do_check(FE_DGP<dim>(i), FE_DGP<dim>(j));
-}
diff --git a/tests/fail/injection_dgp_nonparametric.cc b/tests/fail/injection_dgp_nonparametric.cc
deleted file mode 100644 (file)
index bb906de..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-char logname[] = "output";
-
-
-#include "../fe/injection_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int i = 1; i < 4; ++i)
-    for (unsigned int j = i; j < 4; ++j)
-      do_check(FE_DGPNonparametric<dim>(i), FE_DGPNonparametric<dim>(j));
-}
diff --git a/tests/fail/injection_nedelec.cc b/tests/fail/injection_nedelec.cc
deleted file mode 100644 (file)
index 40e2e5d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-char logname[] = "output";
-
-
-#include "../fe/injection_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  for (unsigned int i = 1; i < 4; ++i)
-    for (unsigned int j = i; j < 4; ++j)
-      do_check(FE_Nedelec<dim>(i), FE_Nedelec<dim>(j));
-}
diff --git a/tests/fail/injection_q_hierarchical.cc b/tests/fail/injection_q_hierarchical.cc
deleted file mode 100644 (file)
index 52e7ddb..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-char logname[] = "output";
-
-
-#include "../fe/injection_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int i = 1; i < 4; ++i)
-    for (unsigned int j = i; j < 4; ++j)
-      do_check(FE_Q_Hierarchical<dim>(i), FE_Q_Hierarchical<dim>(j));
-}
diff --git a/tests/fail/injection_rt.cc b/tests/fail/injection_rt.cc
deleted file mode 100644 (file)
index 0c2cb77..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-char logname[] = "output";
-
-
-#include "../fe/injection_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim == 1)
-    return;
-
-  for (unsigned int i = 0; i < 4; ++i)
-    for (unsigned int j = i; j < 4; ++j)
-      do_check(FE_RaviartThomas<dim>(i), FE_RaviartThomas<dim>(j));
-}
diff --git a/tests/fail/project_abf_01.cc b/tests/fail/project_abf_01.cc
deleted file mode 100644 (file)
index 7a9100a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for ABF elements correctly
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim > 1)
-    for (unsigned int p = 0; p < 6 - dim; ++p)
-      test_no_hanging_nodes(FE_ABF<dim>(p), p);
-}
diff --git a/tests/fail/project_abf_02.cc b/tests/fail/project_abf_02.cc
deleted file mode 100644 (file)
index b7f817c..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for ABF elements correctly
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim > 1)
-    for (unsigned int p = 0; p < 6 - dim; ++p)
-      test_with_hanging_nodes(FE_ABF<dim>(p), p);
-}
diff --git a/tests/fail/project_abf_03.cc b/tests/fail/project_abf_03.cc
deleted file mode 100644 (file)
index 05d1692..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for ABF elements correctly
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim > 1)
-    for (unsigned int p = 0; p < 6 - dim; ++p)
-      test_with_wrong_face_orientation(FE_ABF<dim>(p), p);
-}
diff --git a/tests/fail/project_abf_04.cc b/tests/fail/project_abf_04.cc
deleted file mode 100644 (file)
index b2a96ad..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for ABF elements correctly
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim > 1)
-    for (unsigned int p = 0; p < 6 - dim; ++p)
-      test_with_2d_deformed_mesh(FE_ABF<dim>(p), p);
-}
diff --git a/tests/fail/project_abf_05.cc b/tests/fail/project_abf_05.cc
deleted file mode 100644 (file)
index b5c587e..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for ABF elements correctly
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim > 1)
-    for (unsigned int p = 0; p < 6 - dim; ++p)
-      test_with_2d_deformed_refined_mesh(FE_ABF<dim>(p), p);
-}
diff --git a/tests/fail/project_dgp_nonparametric_01.cc b/tests/fail/project_dgp_nonparametric_01.cc
deleted file mode 100644 (file)
index 35b6306..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for DGPNonparametric elements
-// correctly on a uniformly refined mesh for functions of degree q
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int p = 0; p < 6 - dim; ++p)
-    test_no_hanging_nodes(FE_DGPNonparametric<dim>(p), p);
-}
diff --git a/tests/fail/project_dgp_nonparametric_02.cc b/tests/fail/project_dgp_nonparametric_02.cc
deleted file mode 100644 (file)
index 42992b3..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for DGPNonparametric elements
-// correctly on a uniformly refined mesh for functions of degree q
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int p = 0; p < 6 - dim; ++p)
-    test_with_hanging_nodes(FE_DGPNonparametric<dim>(p), p);
-}
diff --git a/tests/fail/project_dgp_nonparametric_03.cc b/tests/fail/project_dgp_nonparametric_03.cc
deleted file mode 100644 (file)
index c8f9f6a..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for DGPNonparametric elements
-// correctly on a uniformly refined mesh for functions of degree q
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int p = 0; p < 6 - dim; ++p)
-    test_with_wrong_face_orientation(FE_DGPNonparametric<dim>(p), p);
-}
diff --git a/tests/fail/project_dgp_nonparametric_04.cc b/tests/fail/project_dgp_nonparametric_04.cc
deleted file mode 100644 (file)
index 02dd140..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for DGPNonparametric elements
-// correctly on a uniformly refined mesh for functions of degree q
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int p = 0; p < 6 - dim; ++p)
-    test_with_2d_deformed_mesh(FE_DGPNonparametric<dim>(p), p);
-}
diff --git a/tests/fail/project_dgp_nonparametric_05.cc b/tests/fail/project_dgp_nonparametric_05.cc
deleted file mode 100644 (file)
index 9fa0bfc..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for DGPNonparametric elements
-// correctly on a uniformly refined mesh for functions of degree q
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int p = 0; p < 6 - dim; ++p)
-    test_with_2d_deformed_refined_mesh(FE_DGPNonparametric<dim>(p), p);
-}
diff --git a/tests/fail/project_q_hierarchical_03.cc b/tests/fail/project_q_hierarchical_03.cc
deleted file mode 100644 (file)
index 9862d2c..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for QHierarchical elements correctly
-
-#include "project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  for (unsigned int p = 1; p < 6 - dim; ++p)
-    test_with_wrong_face_orientation(FE_Q_Hierarchical<dim>(p), p);
-}
diff --git a/tests/fail/project_q_hierarchical_03.output b/tests/fail/project_q_hierarchical_03.output
deleted file mode 100644 (file)
index 6390250..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-
-DEAL::n_dofs=35
-DEAL::FE_Q_Hierarchical<3>(1), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_2, rel. error=0.0200
-DEAL::FE_Q_Hierarchical<3>(1), P_3, rel. error=0.0213
-DEAL::n_dofs=35
-DEAL::FE_Q_Hierarchical<3>(1), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_2, rel. error=0.0210
-DEAL::FE_Q_Hierarchical<3>(1), P_3, rel. error=0.0229
-DEAL::n_dofs=35
-DEAL::FE_Q_Hierarchical<3>(1), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_2, rel. error=0.0147
-DEAL::FE_Q_Hierarchical<3>(1), P_3, rel. error=0.0160
-DEAL::n_dofs=35
-DEAL::FE_Q_Hierarchical<3>(1), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_2, rel. error=0.0154
-DEAL::FE_Q_Hierarchical<3>(1), P_3, rel. error=0.0156
-DEAL::n_dofs=35
-DEAL::FE_Q_Hierarchical<3>(1), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_2, rel. error=0.0162
-DEAL::FE_Q_Hierarchical<3>(1), P_3, rel. error=0.0175
-DEAL::n_dofs=35
-DEAL::FE_Q_Hierarchical<3>(1), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_2, rel. error=0.0193
-DEAL::FE_Q_Hierarchical<3>(1), P_3, rel. error=0.0206
-DEAL::n_dofs=35
-DEAL::FE_Q_Hierarchical<3>(1), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(1), P_2, rel. error=0.0158
-DEAL::FE_Q_Hierarchical<3>(1), P_3, rel. error=0.0165
-DEAL::n_dofs=195
-DEAL::FE_Q_Hierarchical<3>(2), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_2, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_3, rel. error=0.00640
-DEAL::FE_Q_Hierarchical<3>(2), P_4, rel. error=0.00592
-DEAL::n_dofs=194
-DEAL::FE_Q_Hierarchical<3>(2), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_2, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_3, rel. error=0.00630
-DEAL::FE_Q_Hierarchical<3>(2), P_4, rel. error=0.00563
-DEAL::n_dofs=194
-DEAL::FE_Q_Hierarchical<3>(2), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_2, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_3, rel. error=0.00499
-DEAL::FE_Q_Hierarchical<3>(2), P_4, rel. error=0.00466
-DEAL::n_dofs=194
-DEAL::FE_Q_Hierarchical<3>(2), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_2, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_3, rel. error=0.00467
-DEAL::FE_Q_Hierarchical<3>(2), P_4, rel. error=0.00437
-DEAL::n_dofs=194
-DEAL::FE_Q_Hierarchical<3>(2), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_2, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_3, rel. error=0.00550
-DEAL::FE_Q_Hierarchical<3>(2), P_4, rel. error=0.00499
-DEAL::n_dofs=194
-DEAL::FE_Q_Hierarchical<3>(2), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_2, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_3, rel. error=0.00584
-DEAL::FE_Q_Hierarchical<3>(2), P_4, rel. error=0.00524
-DEAL::n_dofs=194
-DEAL::FE_Q_Hierarchical<3>(2), P_0, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_1, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_2, rel. error=0
-DEAL::FE_Q_Hierarchical<3>(2), P_3, rel. error=0.00480
-DEAL::FE_Q_Hierarchical<3>(2), P_4, rel. error=0.00450
diff --git a/tests/fail/project_rt_03.cc b/tests/fail/project_rt_03.cc
deleted file mode 100644 (file)
index 627faac..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2006 - 2018 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// check that VectorTools::project works for RT elements correctly
-
-char logname[] = "output";
-
-
-#include "../deal.II/project_common.h"
-
-
-template <int dim>
-void
-test()
-{
-  if (dim != 1)
-    // this is interesting also in 3d, but is
-    // exceedingly slow there. limit to the
-    // case of RT(0) elements in 3d
-    for (unsigned int p = 0; p < (dim == 2 ? 3 : 1); ++p)
-      test_with_wrong_face_orientation(FE_RaviartThomas<dim>(p), p + 1, 1);
-}
diff --git a/tests/fail/rt/rt.gpl b/tests/fail/rt/rt.gpl
deleted file mode 100644 (file)
index 6a47c2f..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/usr/bin/gnuplot -persist
-#
-#    
-#      G N U P L O T
-#      Version 4.0 patchlevel 0
-#      last modified Thu Apr 15 14:44:22 CEST 2004
-#      System: Linux 2.6.11.4-21.11-smp
-#    
-#      Copyright (C) 1986 - 1993, 1998, 2004, 2006
-#      Thomas Williams, Colin Kelley and many others
-#    
-#      This is gnuplot version 4.0.  Please refer to the documentation
-#      for command syntax changes.  The old syntax will be accepted
-#      throughout the 4.0 series, but all save files use the new syntax.
-#    
-#      Type `help` to access the on-line reference manual.
-#      The gnuplot FAQ is available from
-#              http://www.gnuplot.info/faq/
-#    
-#      Send comments and requests for help to
-#              <gnuplot-info@lists.sourceforge.net>
-#      Send bugs, suggestions and mods to
-#              <gnuplot-bugs@lists.sourceforge.net>
-#    
-set terminal postscript eps color solid enhanced 20
-# set output
-unset clip points
-set clip one
-unset clip two
-set bar 1.000000
-set border 31 lt -1 lw 1.000
-set xdata
-set ydata
-set zdata
-set x2data
-set y2data
-set timefmt x "%d/%m/%y,%H:%M"
-set timefmt y "%d/%m/%y,%H:%M"
-set timefmt z "%d/%m/%y,%H:%M"
-set timefmt x2 "%d/%m/%y,%H:%M"
-set timefmt y2 "%d/%m/%y,%H:%M"
-set timefmt cb "%d/%m/%y,%H:%M"
-set boxwidth
-set style fill empty border
-set dummy x,y
-set format x "% g"
-set format y "% g"
-set format x2 "% g"
-set format y2 "% g"
-set format z "% g"
-set format cb "% g"
-set angles radians
-unset grid
-set key title ""
-set key right top Right noreverse enhanced box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0 height 0 autotitles
-unset label
-unset arrow
-unset style line
-unset style arrow
-unset logscale
-set offsets 0, 0, 0, 0
-set pointsize 1
-set encoding default
-unset polar
-unset parametric
-unset decimalsign
-set view 60, 20, 1, 1
-set samples 100, 100
-set isosamples 10, 10
-set surface
-unset contour
-set clabel '%8.3g'
-set mapping cartesian
-set datafile separator whitespace
-set hidden3d offset 1 trianglepattern 3 undefined 1 altdiagonal bentover
-set cntrparam order 4
-set cntrparam linear
-set cntrparam levels auto 5
-set cntrparam points 5
-set size ratio 0 1,1
-set origin 0,0
-set style data lines
-set style function lines
-set xzeroaxis lt -2 lw 1.000
-set yzeroaxis lt -2 lw 1.000
-set x2zeroaxis lt -2 lw 1.000
-set y2zeroaxis lt -2 lw 1.000
-set tics in
-set ticslevel 0.5
-set ticscale 1 0.5
-set mxtics default
-set mytics default
-set mztics default
-set mx2tics default
-set my2tics default
-set mcbtics default
-set xtics border mirror norotate autofreq 
-set ytics border mirror norotate autofreq 
-set ztics border nomirror norotate autofreq 
-set nox2tics
-set noy2tics
-set cbtics border mirror norotate autofreq 
-set title "" 0.000000,0.000000  font ""
-set timestamp "" bottom norotate 0.000000,0.000000  ""
-set rrange [ * : * ] noreverse nowriteback  # (currently [0.00000:10.0000] )
-set trange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
-set urange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
-set vrange [ * : * ] noreverse nowriteback  # (currently [-5.00000:5.00000] )
-set xlabel "x" 0.000000,0.000000  font ""
-set x2label "" 0.000000,0.000000  font ""
-set xrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set x2range [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set ylabel "y" 0.000000,0.000000  font ""
-set y2label "" 0.000000,0.000000  font ""
-set yrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set y2range [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set zlabel "" 0.000000,0.000000  font ""
-set zrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set cblabel "" 0.000000,0.000000  font ""
-set cbrange [ * : * ] noreverse nowriteback  # (currently [-10.0000:10.0000] )
-set zero 1e-08
-set lmargin -1
-set bmargin -1
-set rmargin -1
-set tmargin -1
-set locale "C"
-set pm3d scansautomatic flush begin noftriangles nohidden3d implicit corners2color mean
-unset pm3d
-set palette positive nops_allcF maxcolors 0 gamma 1.5 color model RGB 
-set palette rgbformulae 7, 5, 15
-set colorbox default
-set colorbox vertical origin 0.9,0.2 size 0.1,0.63 bdefault
-set loadpath 
-set fontpath 
-set fit noerrorvariables
-set output "RT1_00_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:3 title "v0_x"
-set output "RT1_00_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:4 title "v0_y"
-set output "RT1_01_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:5 title "v1_x"
-set output "RT1_01_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:6 title "v1_y"
-set output "RT1_02_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:7 title "v2_x"
-set output "RT1_02_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:8 title "v2_y"
-set output "RT1_03_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:9 title "v3_x"
-set output "RT1_03_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:10 title "v3_y"
-set output "RT1_04_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:11 title "v4_x"
-set output "RT1_04_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:12 title "v4_y"
-set output "RT1_05_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:13 title "v5_x"
-set output "RT1_05_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:14 title "v5_y"
-set output "RT1_06_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:15 title "v6_x"
-set output "RT1_06_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:16 title "v6_y"
-set output "RT1_07_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:17 title "v7_x"
-set output "RT1_07_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:18 title "v7_y"
-set output "RT1_08_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:19 title "v8_x"
-set output "RT1_08_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:20 title "v8_y"
-set output "RT1_09_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:21 title "v9_x"
-set output "RT1_09_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:22 title "v9_y"
-set output "RT1_10_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:23 title "v10_x"
-set output "RT1_10_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:24 title "v10_y"
-set output "RT1_11_x.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:25 title "v11_x"
-set output "RT1_11_y.eps"
-splot "< perl -ne \'print if s/DEAL:RT<2>.1.::value//;\' output" using 1:2:26 title "v11_y"
-#    EOF
diff --git a/tests/fail/rt_4.cc b/tests/fail/rt_4.cc
deleted file mode 100644 (file)
index ce4ae5b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2003 - 2022 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// Just output the prolongation matrices of the RT element
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-
-#include <string>
-
-#include "../tests.h"
-
-#define PRECISION 2
-
-
-
-template <int dim>
-void
-test(const unsigned int degree)
-{
-  deallog << "FE_RaviartThomas<" << dim << "> (" << degree << ')' << std::endl;
-
-  FE_RaviartThomas<dim> fe_rt(degree);
-
-  for (unsigned int c = 0; c < GeometryInfo<dim>::max_children_per_cell; ++c)
-    {
-      const FullMatrix<double> &m = fe_rt.get_prolongation_matrix(
-        c, RefinementCase<dim>::isotropic_refinement);
-
-      for (unsigned int i = 0; i < m.m(); ++i)
-        {
-          for (unsigned int j = 0; j < m.n(); ++j)
-            deallog << 100 * m(i, j) << ' ';
-          deallog << std::endl;
-        }
-
-      deallog << std::endl;
-    }
-}
-
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  logfile.precision(PRECISION);
-  logfile.setf(std::ios::fixed);
-  deallog.attach(logfile);
-
-  for (unsigned int degree = 0; degree < 4; ++degree)
-    test<2>(degree);
-  //  test<3>(degree);
-
-  return 0;
-}
diff --git a/tests/fail/rt_6.cc b/tests/fail/rt_6.cc
deleted file mode 100644 (file)
index 69e7ec4..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2003 - 2022 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-// adaptation of up_and_down for RT elements
-
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_accessor.h>
-
-#include <deal.II/fe/fe_nedelec.h>
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_values.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_tools.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/lac/vector.h>
-
-#include <string>
-#include <vector>
-
-#include "../tests.h"
-
-#define PRECISION 4
-
-
-template <int dim>
-Point<dim>
-transform(const Point<dim> p)
-{
-  switch (dim)
-    {
-      case 1:
-        return p;
-      case 2:
-        return Point<dim>(p(0) * (1 + p(1)), p(1) * (1 + p(0)));
-      case 3:
-        return Point<dim>(p(0) * (1 + p(1)) * (1 + p(2)),
-                          p(1) * (1 + p(0)) * (1 + p(2)),
-                          p(2) * (1 + p(0)) * (1 + p(1)));
-      default:
-        Assert(false, ExcNotImplemented());
-        return Point<dim>();
-    };
-}
-
-
-template <int dim>
-void
-check_element(const Triangulation<dim> &tr, const FiniteElement<dim> &fe)
-{
-  DoFHandler<dim> dof_handler(tr);
-  dof_handler.distribute_dofs(fe);
-
-  // create a mostly arbitrary
-  // function plus a trend on this
-  // grid
-  Vector<double> tmp(dof_handler.n_dofs());
-  for (unsigned int i = 0; i < tmp.size(); ++i)
-    tmp(i) = (i + 13 * i % 17);
-
-  // restrict this function to the
-  // next coarser level and
-  // distribute it again to the
-  // higher level
-  Vector<double> x(tmp.size());
-  Vector<double> v(fe.dofs_per_cell);
-  for (typename DoFHandler<dim>::cell_iterator cell = dof_handler.begin();
-       cell != dof_handler.end();
-       ++cell)
-    if (cell->has_children() && cell->child(0)->is_active())
-      {
-        // first make sure that what
-        // we do is reasonable. for
-        // this, _all_ children have
-        // to be active, not only
-        // some of them
-        for (unsigned int c = 0; c < GeometryInfo<dim>::max_children_per_cell;
-             ++c)
-          Assert(cell->child(c)->is_active(), ExcInternalError());
-
-        // then restrict and prolongate
-        cell->get_interpolated_dof_values(tmp, v);
-        cell->set_dof_values_by_interpolation(v, x);
-      };
-
-  // now x is a function on the fine
-  // grid that is representable on
-  // the coarse grid. so another
-  // cycle should not alter it any
-  // more:
-  Vector<double> x2(x.size());
-  for (typename DoFHandler<dim>::cell_iterator cell = dof_handler.begin();
-       cell != dof_handler.end();
-       ++cell)
-    if (cell->has_children() && cell->child(0)->is_active())
-      {
-        cell->get_interpolated_dof_values(x, v);
-        cell->set_dof_values_by_interpolation(v, x2);
-      };
-
-  // then check that this is so:
-  x2 -= x;
-  const double relative_residual = (x2.l2_norm() / x.l2_norm());
-
-  const double threshold = 1e-6;
-  deallog << ", dofs_per_cell=" << fe.dofs_per_cell << "; relative residual: "
-          << (relative_residual < threshold ? "ok" : "botched up!")
-          << " (relative residual=" << relative_residual << ')' << std::endl;
-}
-
-
-template <int dim>
-void
-test()
-{
-  // make a coarse triangulation as a
-  // hypercube. if in more than 1d,
-  // distort it so that it is no more
-  // an affine image of the
-  // hypercube, to make things more
-  // difficult. then refine it twice
-  Triangulation<dim> tr;
-  GridGenerator::hyper_cube(tr, 0., 1.);
-  Point<dim> (*p)(Point<dim>) = &transform<dim>;
-  GridTools::transform(p, tr);
-  tr.refine_global(2);
-
-  // now for a list of finite
-  // elements, for which we want to
-  // test. we happily waste tons of
-  // memory here, but who cares...
-  const FiniteElement<dim> *fe_list[] = {new FE_RaviartThomas<dim>(0),
-                                         new FE_RaviartThomas<dim>(1),
-                                         new FE_RaviartThomas<dim>(2)};
-
-  for (unsigned int i = 0; i < sizeof(fe_list) / sizeof(fe_list[0]); ++i)
-    if (fe_list[i] != nullptr)
-      {
-        deallog << dim << "d, uniform grid, fe #" << i;
-        check_element(tr, *fe_list[i]);
-      }
-}
-
-
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  logfile.precision(PRECISION);
-  logfile.setf(std::ios::fixed);
-  deallog.attach(logfile);
-
-  test<2>();
-  test<3>();
-  return 0;
-}
diff --git a/tests/fail/rt_crash_01.cc b/tests/fail/rt_crash_01.cc
deleted file mode 100644 (file)
index 362b2e9..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2003 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/vector.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/vector_tools.h>
-
-#include "../tests.h"
-
-#include "../bits/dof_tools_common.h"
-
-// check an abort in FEPolyTensor when used with RaviartThomas
-// elements, when computing some sort of edge directions. This is the
-// case left over from dof_tools_19
-
-
-
-template <int dim>
-void
-check_this(const DoFHandler<dim> &dof_handler)
-{
-  // there's presently a crash in the
-  // Raviart-Thomas element. only
-  // check for these elements,
-  // everything else is handled in
-  // dof_tools_19
-  if (dof_handler.get_fe().get_name().find("RaviartThomas") ==
-      std::string::npos)
-    return;
-
-  Functions::ConstantFunction<dim> test_func(
-    1, dof_handler.get_fe().n_components());
-
-  // don't run this test if hanging
-  // nodes are not implemented
-  if (dof_handler.get_fe().constraints_are_implemented() == false)
-    return;
-
-  AffineConstraints<double> cm;
-  DoFTools::make_hanging_node_constraints(dof_handler, cm);
-  cm.close();
-
-  deallog << cm.n_constraints() << std::endl;
-  deallog << cm.max_constraint_indirections() << std::endl;
-
-  // L_2 project constant function onto field
-  QGauss<dim>    quadrature(6);
-  Vector<double> solution(dof_handler.n_dofs());
-
-  VectorTools::project(dof_handler, cm, quadrature, test_func, solution);
-  cm.distribute(solution);
-
-  // all values of the projected solution
-  // should be close around 1 (the value of
-  // the original function)
-  for (unsigned int i = 0; i < solution.size(); ++i)
-    Assert(std::fabs(solution(i) - 1) < 1e-6, ExcInternalError());
-
-  // Evaluate error
-  Vector<double> cellwise_errors(
-    dof_handler.get_triangulation().n_active_cells());
-  VectorTools::integrate_difference(dof_handler,
-                                    solution,
-                                    test_func,
-                                    cellwise_errors,
-                                    quadrature,
-                                    VectorTools::L2_norm);
-  const double p_l2_error = cellwise_errors.l2_norm();
-
-  deallog << "L2_Error : " << p_l2_error << std::endl;
-
-  {
-    DataOut<dim> data_out;
-    data_out.attach_dof_handler(dof_handler);
-    data_out.add_data_vector(solution, "u");
-    data_out.build_patches();
-    data_out.write_gnuplot(deallog.get_file_stream());
-  }
-
-  Assert(p_l2_error < 1e-12, ExcInternalError());
-}
diff --git a/tests/fail/rt_distorted_01.cc b/tests/fail/rt_distorted_01.cc
deleted file mode 100644 (file)
index 735664b..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2003 - 2023 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-/*
- * Snippet to demonstrate some properties of the deal.II implementation of
- * the RT spaces.
- */
-
-
-
-#include "../tests.h"
-
-#define PRECISION 2
-
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/numbers.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe.h>
-#include <deal.II/fe/fe_dgq.h>
-#include <deal.II/fe/fe_q.h>
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_system.h>
-#include <deal.II/fe/fe_values.h>
-#include <deal.II/fe/mapping_q.h>
-#include <deal.II/fe/mapping_q1_eulerian.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_out.h>
-#include <deal.II/grid/grid_tools.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/precondition.h>
-#include <deal.II/lac/solver_cg.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/sparsity_pattern.h>
-#include <deal.II/lac/vector.h>
-#include <deal.II/lac/vector_memory.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/matrix_tools.h>
-#include <deal.II/numerics/vector_tools.h>
-
-
-
-template <int dim>
-class TestMap1 : public Function<dim>
-{
-public:
-  TestMap1(const unsigned int n_components)
-    : Function<dim>(n_components)
-  {}
-
-  virtual ~TestMap1()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-
-template <int dim>
-double
-TestMap1<dim>::value(const Point<dim> & /*p*/,
-                     const unsigned int /*component*/) const
-{
-  return (1);
-}
-
-
-template <int dim>
-void
-TestMap1<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-
-  // Parabolic inflow profile
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-///-----------------------------------------------------------------------
-
-template <int dim>
-class TestDef1 : public Function<dim>
-{
-private:
-  const double phi;
-
-public:
-  TestDef1(const unsigned int n_components, const double ph)
-    : Function<dim>(n_components)
-    , phi(ph)
-  {}
-
-  virtual ~TestDef1()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-
-template <int dim>
-double
-TestDef1<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  Point<2> center;
-  center(0)    = 0.5;
-  center(1)    = 0.5;
-  double rad   = p.distance(center),
-         phi_p = atan2(p(0) - center(0), p(1) - center(1));
-
-  if (component == 0)
-    return rad * (sin(phi + phi_p) - sin(phi_p));
-  else
-    return rad * (cos(phi + phi_p) - cos(phi_p));
-}
-
-
-template <int dim>
-void
-TestDef1<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-///-----------------------------------------------------------------------
-
-
-template <int dim>
-class TestDef2 : public Function<dim>
-{
-private:
-  const double scale;
-
-public:
-  TestDef2(const unsigned int n_components, const double sc)
-    : Function<dim>(n_components)
-    , scale(sc)
-  {}
-
-  virtual ~TestDef2()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-template <int dim>
-double
-TestDef2<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  double x = p(0), y = p(1);
-
-  if (component == 0)
-    return scale * x;
-  else
-    return scale * y;
-}
-
-
-template <int dim>
-void
-TestDef2<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-///-----------------------------------------------------------------------
-// testDef3 implements parallelograms ...
-
-
-template <int dim>
-class TestDef3 : public Function<dim>
-{
-private:
-  const double scale;
-
-public:
-  TestDef3(const unsigned int n_components, const double sc)
-    : Function<dim>(n_components)
-    , scale(sc)
-  {}
-
-  virtual ~TestDef3()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-template <int dim>
-double
-TestDef3<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  double y = p(1);
-
-  if (component == 0)
-    return scale * y;
-  else
-    return 0;
-}
-
-
-template <int dim>
-void
-TestDef3<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-
-/*
- * Integrate the function value over the element.
- */
-
-double
-EvaluateArea(Mapping<2> &    mapping,
-             DoFHandler<2> * dof_handler,
-             Vector<double> &solution)
-{
-  // Use a high order quadrature.
-  QGauss<2>   quad(6);
-  FEValues<2> fe_values(mapping,
-                        dof_handler->get_fe(),
-                        quad,
-                        UpdateFlags(update_values | update_quadrature_points |
-                                    update_JxW_values));
-
-  const unsigned int n_q_points   = quad.size();
-  const unsigned int n_components = dof_handler->get_fe().n_components();
-
-  // Cell iterators
-  DoFHandler<2>::active_cell_iterator cell = dof_handler->begin_active(),
-                                      endc = dof_handler->end();
-  double result_u = 0, result_v = 0;
-
-  for (; cell != endc; ++cell)
-    {
-      fe_values.reinit(cell);
-
-      // Get values from solution vector (For Trap.Rule)
-      std::vector<Vector<double>> this_value(n_q_points,
-                                             Vector<double>(n_components));
-      fe_values.get_function_values(solution, this_value);
-
-      for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-        {
-          double JxW = fe_values.JxW(q_point);
-          result_u += this_value[q_point](0) * JxW;
-          result_v += this_value[q_point](1) * JxW;
-        }
-    }
-
-  return (result_v);
-}
-
-
-int
-main(int /*argc*/, char ** /*argv*/)
-{
-  initlog();
-  deallog.get_file_stream().precision(PRECISION);
-  deallog.get_file_stream().setf(std::ios::fixed);
-
-  Triangulation<2> tria_test;
-  DoFHandler<2> *  dof_handler, *dof_handler_def;
-  Point<2>         p1(0, 0), p2(1, 1);
-
-  GridGenerator::hyper_rectangle(tria_test, p1, p2);
-  tria_test.refine_global(1);
-
-  // Uncommenting the following line, demonstrates the problem
-  // of RT elements on distorted Quads!
-  GridTools::distort_random(0.4, tria_test);
-
-  // Create a DoFHandler for the RT space
-  FE_RaviartThomas<2> fe(2);
-  dof_handler = new DoFHandler<2>(tria_test);
-  dof_handler->distribute_dofs(fe);
-
-  // Create an deformation object for the Eulerian mapping
-  FESystem<2> fe_def(FE_Q<2>(1), 2);
-  dof_handler_def = new DoFHandler<2>(tria_test);
-  dof_handler_def->distribute_dofs(fe_def);
-
-  // Alloc some DoFs
-  Vector<double> solution, solution_q, deformation;
-  solution.reinit(dof_handler->n_dofs());
-  solution_q.reinit(dof_handler_def->n_dofs());
-  deformation.reinit(dof_handler_def->n_dofs());
-
-  // Project solution onto RT FE field
-  AffineConstraints<double> hn_constraints;
-  hn_constraints.clear();
-  DoFTools::make_hanging_node_constraints(*dof_handler, hn_constraints);
-  hn_constraints.close();
-  VectorTools::project(
-    *dof_handler, hn_constraints, QGauss<2>(6), TestMap1<2>(2), solution);
-
-  // Project reference solution onto RT FE field
-  AffineConstraints<double> hn_constraints_def;
-  hn_constraints_def.clear();
-  DoFTools::make_hanging_node_constraints(*dof_handler_def, hn_constraints_def);
-  hn_constraints_def.close();
-
-  VectorTools::project(*dof_handler_def,
-                       hn_constraints_def,
-                       QGauss<2>(6),
-                       TestMap1<2>(2),
-                       solution_q);
-
-  MappingQ1Eulerian<2> *mapping_euler =
-    new MappingQ1Eulerian<2>(deformation, *dof_handler_def);
-
-  char buf[1000];
-  sprintf(buf,
-          "FE_RT Area %e  FE_Q Area %e\n",
-          EvaluateArea(*mapping_euler, dof_handler, solution),
-          EvaluateArea(*mapping_euler, dof_handler_def, solution_q));
-  deallog << buf;
-
-  unsigned int test_out = 0;
-  // Try rotating the elements
-  for (double rotat = 0; rotat < 2 * numbers::PI; rotat += 0.25 * numbers::PI)
-    {
-      // Rotate element
-      VectorTools::project(*dof_handler_def,
-                           hn_constraints_def,
-                           QGauss<2>(6),
-                           TestDef1<2>(2, rotat),
-                           deformation);
-
-      // Project 1 function to element
-      VectorTools::project(*mapping_euler,
-                           *dof_handler,
-                           hn_constraints,
-                           QGauss<2>(6),
-                           TestMap1<2>(2),
-                           solution);
-
-      // Write output files
-      DataOut<2> *data_out = new DataOut<2>;
-      data_out->attach_dof_handler(*dof_handler);
-      data_out->add_data_vector(solution, "solution");
-      data_out->build_patches(*mapping_euler, 8);
-
-      data_out->write_gnuplot(deallog.get_file_stream());
-      test_out++;
-
-      delete data_out;
-
-      double area_rt = EvaluateArea(*mapping_euler, dof_handler, solution);
-      double area_q = EvaluateArea(*mapping_euler, dof_handler_def, solution_q);
-
-      char buf[100];
-      sprintf(
-        buf, "phi = %e FE_RT Area %e  FE_Q Area %e\n", rotat, area_rt, area_q);
-      deallog << buf;
-    }
-
-  // Try resizing the elements
-  for (double scale = -0.75; scale < 4.0; scale += 0.25)
-    {
-      VectorTools::project(*dof_handler_def,
-                           hn_constraints_def,
-                           QGauss<2>(6),
-                           TestDef2<2>(2, scale),
-                           deformation);
-
-      // Project 1 function to element
-      VectorTools::project(*mapping_euler,
-                           *dof_handler,
-                           hn_constraints,
-                           QGauss<2>(6),
-                           TestMap1<2>(2),
-                           solution);
-
-      char buf[1000];
-      sprintf(buf,
-              "Scale = %e FE_RT Area %e  FE_Q Area %e\n",
-              scale,
-              EvaluateArea(*mapping_euler, dof_handler, solution),
-              EvaluateArea(*mapping_euler, dof_handler_def, solution_q));
-      deallog << buf;
-    }
-
-
-  // Try parallelograms
-  for (double scale = -1.0; scale < 1.0; scale += 0.25)
-    {
-      VectorTools::project(*dof_handler_def,
-                           hn_constraints_def,
-                           QGauss<2>(6),
-                           TestDef3<2>(2, scale),
-                           deformation);
-
-      // Project 1 function to element
-      VectorTools::project(*mapping_euler,
-                           *dof_handler,
-                           hn_constraints,
-                           QGauss<2>(6),
-                           TestMap1<2>(2),
-                           solution);
-
-      char buf[1000];
-      sprintf(buf,
-              "Parallelogram = %e FE_RT Area %e  FE_Q Area %e\n",
-              scale,
-              EvaluateArea(*mapping_euler, dof_handler, solution),
-              EvaluateArea(*mapping_euler, dof_handler_def, solution_q));
-      deallog << buf;
-    }
-
-  delete (mapping_euler);
-
-  delete (dof_handler);
-  delete (dof_handler_def);
-
-  return (0);
-}
diff --git a/tests/fail/rt_distorted_02.cc b/tests/fail/rt_distorted_02.cc
deleted file mode 100644 (file)
index f1f4325..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2003 - 2023 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-/*
- * Snippet to demonstrate some properties of the deal.II implementation of
- * the RT spaces.
- */
-
-
-
-#include "../tests.h"
-
-#define PRECISION 2
-
-
-char buf[1000];
-
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/numbers.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe.h>
-#include <deal.II/fe/fe_dgq.h>
-#include <deal.II/fe/fe_q.h>
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_system.h>
-#include <deal.II/fe/fe_values.h>
-#include <deal.II/fe/mapping_q.h>
-#include <deal.II/fe/mapping_q1_eulerian.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_out.h>
-#include <deal.II/grid/grid_tools.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/precondition.h>
-#include <deal.II/lac/solver_cg.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/sparsity_pattern.h>
-#include <deal.II/lac/vector.h>
-#include <deal.II/lac/vector_memory.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/matrix_tools.h>
-#include <deal.II/numerics/vector_tools.h>
-
-
-
-template <int dim>
-class TestMap1 : public Function<dim>
-{
-public:
-  TestMap1(const unsigned int n_components)
-    : Function<dim>(n_components)
-  {}
-
-  virtual ~TestMap1()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-
-template <int dim>
-double
-TestMap1<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  // u = x^2, v = y^2, dudx = 2 x, dvdy = 2 y, div u = 2x + 2y
-  // I.e. \int div u = 2 (for unit square)
-
-  if (component == 0)
-    return (p(0) * p(0));
-  if (component == 1)
-    return (p(1) * p(1));
-
-  return (0);
-}
-
-
-template <int dim>
-void
-TestMap1<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-
-  // Just fill the vector with the appropriate components
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-
-///-----------------------------------------------------------------------
-
-template <int dim>
-class TestDef1 : public Function<dim>
-{
-private:
-  const double phi;
-
-public:
-  TestDef1(const unsigned int n_components, const double ph)
-    : Function<dim>(n_components)
-    , phi(ph)
-  {}
-
-  virtual ~TestDef1()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-
-template <int dim>
-double
-TestDef1<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  Point<2> center;
-  center(0)    = 0.5;
-  center(1)    = 0.5;
-  double rad   = p.distance(center),
-         phi_p = atan2(p(0) - center(0), p(1) - center(1));
-
-  if (component == 0)
-    return rad * (sin(phi + phi_p) - sin(phi_p));
-  else
-    return rad * (cos(phi + phi_p) - cos(phi_p));
-}
-
-
-template <int dim>
-void
-TestDef1<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-///-----------------------------------------------------------------------
-
-
-template <int dim>
-class TestDef2 : public Function<dim>
-{
-private:
-  const double scale;
-
-public:
-  TestDef2(const unsigned int n_components, const double sc)
-    : Function<dim>(n_components)
-    , scale(sc)
-  {}
-
-  virtual ~TestDef2()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-template <int dim>
-double
-TestDef2<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  double x = p(0), y = p(1);
-
-  if (component == 0)
-    return scale * x;
-  else
-    return scale * y;
-}
-
-
-template <int dim>
-void
-TestDef2<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-///-----------------------------------------------------------------------
-// testDef3 implements parallelograms ...
-
-
-template <int dim>
-class TestDef3 : public Function<dim>
-{
-private:
-  const double scale;
-
-public:
-  TestDef3(const unsigned int n_components, const double sc)
-    : Function<dim>(n_components)
-    , scale(sc)
-  {}
-
-  virtual ~TestDef3()
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component = 0) const;
-
-  void
-  vector_value(const Point<dim> &p, Vector<double> &return_value) const;
-};
-
-
-template <int dim>
-double
-TestDef3<dim>::value(const Point<dim> &p, const unsigned int component) const
-{
-  double y = p(1);
-
-  if (component == 0)
-    return scale * y;
-  else
-    return 0;
-}
-
-
-template <int dim>
-void
-TestDef3<dim>::vector_value(const Point<dim> &p,
-                            Vector<double> &  return_value) const
-{
-  Assert(return_value.size() == this->n_components,
-         ExcDimensionMismatch(return_value.size(), this->n_components));
-  for (unsigned int iCount = 0; iCount < this->n_components; ++iCount)
-    return_value(iCount) = value(p, iCount);
-}
-
-
-
-/*
- * Check the value of the derivative field.
- */
-
-double
-EvaluateDiver(Mapping<2> &    mapping,
-              DoFHandler<2> & dof_handler,
-              Vector<double> &solution)
-{
-  // Use a high order quadrature.
-  QGauss<2>   quad(6);
-  FEValues<2> fe_values(mapping,
-                        dof_handler.get_fe(),
-                        quad,
-                        UpdateFlags(update_values | update_quadrature_points |
-                                    update_gradients | update_JxW_values |
-                                    update_contravariant_transformation));
-
-  const unsigned int n_q_points   = quad.size();
-  const unsigned int n_components = dof_handler.get_fe().n_components();
-
-  // Cell iterators
-  DoFHandler<2>::active_cell_iterator cell = dof_handler.begin_active(),
-                                      endc = dof_handler.end();
-  double result                            = 0;
-
-  for (; cell != endc; ++cell)
-    {
-      fe_values.reinit(cell);
-
-      // Get values from solution vector (For Trap.Rule)
-      std::vector<Vector<double>> this_value(n_q_points,
-                                             Vector<double>(n_components));
-      fe_values.get_function_values(solution, this_value);
-
-      std::vector<std::vector<Tensor<1, 2>>> grads_here(
-        n_q_points, std::vector<Tensor<1, 2>>(n_components));
-      fe_values.get_function_gradients(solution, grads_here);
-
-      for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-        {
-          double JxW  = fe_values.JxW(q_point);
-          double dudx = grads_here[q_point][0][0];
-          double dvdy = grads_here[q_point][1][1];
-          result += (dudx + dvdy) * JxW;
-        }
-    }
-
-  return (result);
-}
-
-
-int
-main()
-{
-  initlog();
-  deallog.get_file_stream().precision(PRECISION);
-  deallog.get_file_stream().setf(std::ios::fixed);
-
-  Triangulation<2> tria_test;
-  Point<2>         p1(0, 0), p2(1, 1);
-
-  GridGenerator::hyper_rectangle(tria_test, p1, p2);
-  tria_test.refine_global(1);
-  GridTools::distort_random(0.4, tria_test);
-
-  // Create a DoFHandler for the RT space
-  FE_RaviartThomas<2> fe(2);
-  DoFHandler<2>       dof_handler(tria_test);
-  dof_handler.distribute_dofs(fe);
-
-  QGauss<2> quad_temp(6);
-  sprintf(buf,
-          "DoFs per Quad: %i per Line %i per Vert %i\n",
-          fe.dofs_per_quad,
-          fe.dofs_per_line,
-          fe.dofs_per_vertex);
-  deallog << buf;
-
-  sprintf(buf, "QPoints %i\n", quad_temp.size());
-  deallog << buf;
-
-  // Create an deformation object for the Eulerian mapping
-  FESystem<2>   fe_def(FE_Q<2>(1), 2);
-  DoFHandler<2> dof_handler_def(tria_test);
-  dof_handler_def.distribute_dofs(fe_def);
-
-  // Alloc some DoFs
-  Vector<double> solution, solution_q, deformation;
-  solution.reinit(dof_handler.n_dofs());
-  solution_q.reinit(dof_handler_def.n_dofs());
-  deformation.reinit(dof_handler_def.n_dofs());
-
-  // Project solution onto RT FE field
-  AffineConstraints<double> hn_constraints;
-  hn_constraints.clear();
-  DoFTools::make_hanging_node_constraints(dof_handler, hn_constraints);
-  hn_constraints.close();
-  VectorTools::project(
-    dof_handler, hn_constraints, QGauss<2>(6), TestMap1<2>(2), solution);
-
-  // Project reference solution onto RT FE field
-  AffineConstraints<double> hn_constraints_def;
-  hn_constraints_def.clear();
-  DoFTools::make_hanging_node_constraints(dof_handler_def, hn_constraints_def);
-  hn_constraints_def.close();
-
-  VectorTools::project(dof_handler_def,
-                       hn_constraints_def,
-                       QGauss<2>(6),
-                       TestMap1<2>(2),
-                       solution_q);
-
-  MappingQ1Eulerian<2> mapping_euler(deformation, dof_handler_def);
-
-  sprintf(buf,
-          "FE_RT Area %e  FE_Q Area %e\n",
-          EvaluateDiver(mapping_euler, dof_handler, solution),
-          EvaluateDiver(mapping_euler, dof_handler_def, solution_q));
-  deallog << buf;
-
-  // Try rotating the elements
-  for (double rotat = 0; rotat < 2 * numbers::PI; rotat += 0.25 * numbers::PI)
-    {
-      // Rotate element
-      VectorTools::project(dof_handler_def,
-                           hn_constraints_def,
-                           QGauss<2>(6),
-                           TestDef1<2>(2, rotat),
-                           deformation);
-      sprintf(buf,
-              "phi = %e FE_RT Area %e  FE_Q Area %e\n",
-              rotat,
-              EvaluateDiver(mapping_euler, dof_handler, solution),
-              EvaluateDiver(mapping_euler, dof_handler_def, solution_q));
-      deallog << buf;
-    }
-
-  // Try resizing the elements
-  for (double scale = -0.75; scale < 4.0; scale += 0.25)
-    {
-      VectorTools::project(dof_handler_def,
-                           hn_constraints_def,
-                           QGauss<2>(6),
-                           TestDef2<2>(2, scale),
-                           deformation);
-      sprintf(buf,
-              "Scale = %e FE_RT Area %e  FE_Q Area %e\n",
-              scale,
-              EvaluateDiver(mapping_euler, dof_handler, solution),
-              EvaluateDiver(mapping_euler, dof_handler_def, solution_q));
-      deallog << buf;
-    }
-
-  // Try paralellogramming the elements
-  for (double scale = -1.0; scale < 1.0; scale += 0.25)
-    {
-      VectorTools::project(dof_handler_def,
-                           hn_constraints_def,
-                           QGauss<2>(6),
-                           TestDef3<2>(2, scale),
-                           deformation);
-      sprintf(buf,
-              "Scale = %e FE_RT Area %e  FE_Q Area %e\n",
-              scale,
-              EvaluateDiver(mapping_euler, dof_handler, solution),
-              EvaluateDiver(mapping_euler, dof_handler_def, solution_q));
-      deallog << buf;
-    }
-
-
-  return (0);
-}
diff --git a/tests/fail/scalapack_15_b.cc b/tests/fail/scalapack_15_b.cc
deleted file mode 100644 (file)
index e5c6c92..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2017 - 2022 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-#include "../tests.h"
-
-#include "../lapack/create_matrix.h"
-
-// test eigenpairs_symmetric_by_index_MRRR(const std::pair<unsigned int,unsigned
-// int> &, const bool) for the largest eigenvalues with eigenvectors
-
-#include <deal.II/base/conditional_ostream.h>
-#include <deal.II/base/logstream.h>
-#include <deal.II/base/multithread_info.h>
-#include <deal.II/base/process_grid.h>
-#include <deal.II/base/timer.h>
-#include <deal.II/base/utilities.h>
-
-#include <deal.II/lac/lapack_full_matrix.h>
-#include <deal.II/lac/lapack_templates.h>
-#include <deal.II/lac/scalapack.h>
-#include <deal.II/lac/vector.h>
-
-#include <algorithm>
-#include <fstream>
-#include <iostream>
-#include <memory>
-
-
-template <typename NumberType>
-void
-test(const unsigned int size,
-     const unsigned int block_size,
-     const NumberType   tol)
-{
-  MPI_Comm           mpi_communicator(MPI_COMM_WORLD);
-  const unsigned int n_mpi_processes(
-    Utilities::MPI::n_mpi_processes(mpi_communicator));
-  const unsigned int this_mpi_process(
-    Utilities::MPI::this_mpi_process(mpi_communicator));
-
-  ConditionalOStream pcout(std::cout, (this_mpi_process == 0));
-
-  std::shared_ptr<Utilities::MPI::ProcessGrid> grid =
-    std::make_shared<Utilities::MPI::ProcessGrid>(
-      mpi_communicator, size, size, block_size, block_size);
-
-  pcout << size << ' ' << block_size << ' ' << grid->get_process_grid_rows()
-        << ' ' << grid->get_process_grid_columns() << std::endl;
-
-  const unsigned int n_eigenvalues     = size;
-  const unsigned int max_n_eigenvalues = 5;
-
-  // Create SPD matrices of requested size:
-  FullMatrix<NumberType>          full_A(size);
-  std::vector<NumberType>         eigenvalues_Lapack(size);
-  std::vector<Vector<NumberType>> s_eigenvectors_(max_n_eigenvalues,
-                                                  Vector<NumberType>(size));
-  std::vector<Vector<NumberType>> p_eigenvectors_(max_n_eigenvalues,
-                                                  Vector<NumberType>(size));
-  FullMatrix<NumberType>          p_eigenvectors(size, size);
-
-  ScaLAPACKMatrix<NumberType> scalapack_syevr(size, grid, block_size);
-  scalapack_syevr.set_property(LAPACKSupport::Property::symmetric);
-
-  create_spd(full_A);
-  scalapack_syevr = full_A;
-
-  // Lapack as reference
-  {
-    std::vector<NumberType> lapack_A(size * size);
-    for (unsigned int i = 0; i < size; ++i)
-      for (unsigned int j = 0; j < size; ++j)
-        lapack_A[i * size + j] = full_A(i, j);
-
-    int info; // Variable containing information about the successful exit of
-              // the lapack routine
-    char jobz = 'V'; //'V': eigenpairs of A are computed
-    char uplo = 'U'; // storage format of the matrix A; not so important as
-                     // matrix is symmetric
-    char       range = 'I'; // the il-th through iu-th eigenvalues will be found
-    int        LDA   = size; // leading dimension of the matrix A
-    NumberType vl = 0, vu = 0;
-    int        il = size - max_n_eigenvalues + 1, iu = size;
-    char       sign   = 'S';
-    NumberType abstol = lamch<NumberType>(&sign);
-    abstol *= 2;
-    int                     m = 0;
-    std::vector<NumberType> eigenvectors(size * size);
-    int                     LDZ = size;
-    std::vector<int>        isuppz(2 * size);
-    int                     lwork = -1; // length of vector/array work
-    std::vector<NumberType> work(1);
-    int                     liwork = -1; // length of vector/array iwork
-    std::vector<int>        iwork(1);
-    // by setting lwork to -1 a workspace query for work is done
-    // as matrix is symmetric: LDA == size of matrix
-    syevr(&jobz,
-          &range,
-          &uplo,
-          &LDA,
-          lapack_A.data(),
-          &LDA,
-          &vl,
-          &vu,
-          &il,
-          &iu,
-          &abstol,
-          &m,
-          eigenvalues_Lapack.data(),
-          eigenvectors.data(),
-          &LDZ,
-          isuppz.data(),
-          work.data(),
-          &lwork,
-          iwork.data(),
-          &liwork,
-          &info);
-
-    lwork = work[0];
-    work.resize(lwork);
-    liwork = iwork[0];
-    iwork.resize(liwork);
-
-    syevr(&jobz,
-          &range,
-          &uplo,
-          &LDA,
-          lapack_A.data(),
-          &LDA,
-          &vl,
-          &vu,
-          &il,
-          &iu,
-          &abstol,
-          &m,
-          eigenvalues_Lapack.data(),
-          eigenvectors.data(),
-          &LDZ,
-          isuppz.data(),
-          work.data(),
-          &lwork,
-          iwork.data(),
-          &liwork,
-          &info);
-
-    AssertThrow(info == 0, LAPACKSupport::ExcErrorCode("syevr", info));
-    for (int i = 0; i < max_n_eigenvalues; ++i)
-      for (int j = 0; j < size; ++j)
-        s_eigenvectors_[i][j] =
-          eigenvectors[(max_n_eigenvalues - 1 - i) * size + j];
-  }
-
-  // the actual test:
-
-  pcout
-    << "comparing " << max_n_eigenvalues
-    << " eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:"
-    << std::endl;
-  const std::vector<NumberType> eigenvalues_psyer =
-    scalapack_syevr.eigenpairs_symmetric_by_index_MRRR(
-      std::make_pair(size - max_n_eigenvalues, size - 1), true);
-  scalapack_syevr.copy_to(p_eigenvectors);
-  for (unsigned int i = 0; i < max_n_eigenvalues; ++i)
-    AssertThrow(std::abs(eigenvalues_psyer[max_n_eigenvalues - i - 1] -
-                         eigenvalues_Lapack[max_n_eigenvalues - i - 1]) /
-                    std::abs(eigenvalues_Lapack[max_n_eigenvalues - i - 1]) <
-                  tol,
-                ExcInternalError());
-
-  pcout << "   with respect to the given tolerance the eigenvalues coincide"
-        << std::endl;
-
-  for (unsigned int i = 0; i < max_n_eigenvalues; ++i)
-    for (unsigned int j = 0; j < size; ++j)
-      p_eigenvectors_[i][j] = p_eigenvectors(j, max_n_eigenvalues - 1 - i);
-
-  // product of eigenvectors computed using Lapack and ScaLapack has to be
-  // either 1 or -1
-  for (unsigned int i = 0; i < max_n_eigenvalues; ++i)
-    {
-      const NumberType product = p_eigenvectors_[i] * s_eigenvectors_[i];
-      // the requirement for alignment of the eigenvectors has to be released
-      AssertThrow(std::abs(std::abs(product) - 1) < tol * 10,
-                  ExcInternalError());
-    }
-  pcout
-    << "   with respect to the given tolerance also the eigenvectors coincide"
-    << std::endl
-    << std::endl;
-}
-
-
-
-int
-main(int argc, char **argv)
-{
-  Utilities::MPI::MPI_InitFinalize mpi_initialization(
-    argc, argv, numbers::invalid_unsigned_int);
-
-  const std::vector<unsigned int> sizes  = {{200, 400, 600}};
-  const std::vector<unsigned int> blocks = {{32, 64}};
-
-  const double tol = 1e-10;
-
-  for (const auto &s : sizes)
-    for (const auto &b : blocks)
-      if (b <= s)
-        test<double>(s, b, tol);
-}
diff --git a/tests/fail/scalapack_15_b.mpirun=1.output b/tests/fail/scalapack_15_b.mpirun=1.output
deleted file mode 100644 (file)
index b55bfbd..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-200 32 1 1
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-200 64 1 1
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 32 1 1
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 64 1 1
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 32 1 1
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 64 1 1
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
diff --git a/tests/fail/scalapack_15_b.mpirun=10.output b/tests/fail/scalapack_15_b.mpirun=10.output
deleted file mode 100644 (file)
index b3ea107..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-200 32 3 3
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-200 64 3 3
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 32 3 3
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 64 3 3
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 32 3 3
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 64 3 3
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
diff --git a/tests/fail/scalapack_15_b.mpirun=4.output b/tests/fail/scalapack_15_b.mpirun=4.output
deleted file mode 100644 (file)
index 10ea4f4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-200 32 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-200 64 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 32 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 64 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 32 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 64 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
diff --git a/tests/fail/scalapack_15_b.mpirun=5.output b/tests/fail/scalapack_15_b.mpirun=5.output
deleted file mode 100644 (file)
index 10ea4f4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-200 32 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-200 64 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 32 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-400 64 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 32 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
-600 64 2 2
-comparing 5 eigenvalues and eigenvectors computed using LAPACK and ScaLAPACK p_syevr:
-   with respect to the given tolerance the eigenvalues coincide
-   with respect to the given tolerance also the eigenvectors coincide
-
diff --git a/tests/fail/step-15.cc b/tests/fail/step-15.cc
deleted file mode 100644 (file)
index 361ee91..0000000
+++ /dev/null
@@ -1,624 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2005 - 2022 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// a un-hp-ified version of hp/step-15
-
-#include <deal.II/base/function.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_accessor.h>
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe_q.h>
-#include <deal.II/fe/fe_values.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/grid_refinement.h>
-#include <deal.II/grid/manifold_lib.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/full_matrix.h>
-#include <deal.II/lac/precondition.h>
-#include <deal.II/lac/solver_cg.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include <deal.II/numerics/data_out.h>
-#include <deal.II/numerics/matrix_tools.h>
-#include <deal.II/numerics/solution_transfer.h>
-#include <deal.II/numerics/vector_tools.h>
-
-#include <sstream>
-
-#include "../tests.h"
-
-
-template <int dim>
-inline double
-gradient_power(const Tensor<1, dim> &v, const unsigned int n)
-{
-  Assert((n / 2) * 2 == n, ExcMessage("Value of 'n' must be even"));
-  double p = 1;
-  for (unsigned int k = 0; k < n; k += 2)
-    p *= (v * v);
-  return p;
-}
-
-
-
-class InitializationValues : public Function<1>
-{
-public:
-  InitializationValues()
-    : Function<1>()
-  {}
-
-  virtual double
-  value(const Point<1> &p, const unsigned int component = 0) const;
-};
-
-
-
-double
-InitializationValues::value(const Point<1> &p, const unsigned int) const
-{
-  const double base   = std::pow(p(0), 1. / 3.);
-  const double random = random_value<double>(-1., 1.);
-  return std::max(base + .1 * random, 0.);
-}
-
-
-
-template <int dim>
-class MinimizationProblem
-{
-public:
-  MinimizationProblem(const unsigned int run_number);
-  void
-  run();
-
-private:
-  void
-  initialize_solution();
-  void
-  setup_system_on_mesh();
-  void
-  assemble_step();
-  double
-  line_search(const Vector<double> &update) const;
-  void
-  do_step();
-  void
-  output_results() const;
-  void
-  refine_grid();
-
-  static double
-  energy(const DoFHandler<dim> &dof_handler, const Vector<double> &function);
-
-
-  const unsigned int run_number;
-
-  Triangulation<dim> triangulation;
-
-  FE_Q<dim>       fe;
-  DoFHandler<dim> dof_handler;
-
-  AffineConstraints<double> hanging_node_constraints;
-
-  SparsityPattern      sparsity_pattern;
-  SparseMatrix<double> matrix;
-
-  Vector<double> present_solution;
-  Vector<double> residual;
-};
-
-
-
-template <int dim>
-MinimizationProblem<dim>::MinimizationProblem(const unsigned int run_number)
-  : run_number(run_number)
-  , fe(1)
-  , dof_handler(triangulation)
-{}
-
-
-template <>
-void
-MinimizationProblem<1>::initialize_solution()
-{
-  present_solution.reinit(dof_handler.n_dofs());
-  VectorTools::interpolate(dof_handler,
-                           InitializationValues(),
-                           present_solution);
-
-  DoFHandler<1>::cell_iterator cell;
-  cell = dof_handler.begin(0);
-  while (cell->at_boundary(0) == false)
-    cell = cell->neighbor(0);
-  while (cell->has_children() == true)
-    cell = cell->child(0);
-  present_solution(cell->vertex_dof_index(0, 0)) = 0;
-
-  cell = dof_handler.begin(0);
-  while (cell->at_boundary(1) == false)
-    cell = cell->neighbor(1);
-  while (cell->has_children())
-    cell = cell->child(1);
-  present_solution(cell->vertex_dof_index(1, 0)) = 1;
-}
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::setup_system_on_mesh()
-{
-  hanging_node_constraints.clear();
-  DoFTools::make_hanging_node_constraints(dof_handler,
-                                          hanging_node_constraints);
-  hanging_node_constraints.close();
-
-  sparsity_pattern.reinit(dof_handler.n_dofs(),
-                          dof_handler.n_dofs(),
-                          dof_handler.max_couplings_between_dofs());
-  DoFTools::make_sparsity_pattern(dof_handler, sparsity_pattern);
-
-  hanging_node_constraints.condense(sparsity_pattern);
-
-  sparsity_pattern.compress();
-}
-
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::assemble_step()
-{
-  matrix.reinit(sparsity_pattern);
-  residual.reinit(dof_handler.n_dofs());
-
-  QGauss<dim>   quadrature_formula(4);
-  FEValues<dim> fe_values(fe,
-                          quadrature_formula,
-                          update_values | update_gradients |
-                            update_quadrature_points | update_JxW_values);
-
-  const unsigned int dofs_per_cell = fe.dofs_per_cell;
-  const unsigned int n_q_points    = quadrature_formula.size();
-
-  FullMatrix<double> cell_matrix(dofs_per_cell, dofs_per_cell);
-  Vector<double>     cell_rhs(dofs_per_cell);
-
-  std::vector<types::global_dof_index> local_dof_indices(dofs_per_cell);
-
-  std::vector<double>         local_solution_values(n_q_points);
-  std::vector<Tensor<1, dim>> local_solution_grads(n_q_points);
-
-  typename DoFHandler<dim>::active_cell_iterator cell =
-                                                   dof_handler.begin_active(),
-                                                 endc = dof_handler.end();
-  for (; cell != endc; ++cell)
-    {
-      cell_matrix = 0;
-      cell_rhs    = 0;
-
-      fe_values.reinit(cell);
-
-      fe_values.get_function_values(present_solution, local_solution_values);
-      fe_values.get_function_gradients(present_solution, local_solution_grads);
-
-      for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-        {
-          const double u = local_solution_values[q_point],
-                       x = fe_values.quadrature_point(q_point)(0);
-          const double         x_minus_u3 = (x - std::pow(u, 3));
-          const Tensor<1, dim> u_prime    = local_solution_grads[q_point];
-
-          for (unsigned int i = 0; i < dofs_per_cell; ++i)
-            for (unsigned int j = 0; j < dofs_per_cell; ++j)
-              cell_matrix(i, j) += (fe_values.shape_grad(i, q_point) *
-                                      fe_values.shape_grad(j, q_point) *
-                                      cell->diameter() * cell->diameter() +
-                                    fe_values.shape_value(i, q_point) *
-                                      fe_values.shape_value(j, q_point)) *
-                                   fe_values.JxW(q_point);
-
-          for (unsigned int i = 0; i < dofs_per_cell; ++i)
-            cell_rhs(i) +=
-              -((6. * x_minus_u3 * gradient_power(u_prime, 4) *
-                 fe_values.shape_value(i, q_point) *
-                 (x_minus_u3 * (u_prime * fe_values.shape_grad(i, q_point)) -
-                  (u_prime * u_prime) * u * u *
-                    fe_values.shape_value(i, q_point))) *
-                fe_values.JxW(q_point));
-        }
-
-      cell->get_dof_indices(local_dof_indices);
-      for (unsigned int i = 0; i < dofs_per_cell; ++i)
-        {
-          for (unsigned int j = 0; j < dofs_per_cell; ++j)
-            matrix.add(local_dof_indices[i],
-                       local_dof_indices[j],
-                       cell_matrix(i, j));
-
-          residual(local_dof_indices[i]) += cell_rhs(i);
-        }
-    }
-
-  hanging_node_constraints.condense(matrix);
-  hanging_node_constraints.condense(residual);
-
-  std::map<types::global_dof_index, double> boundary_values;
-  VectorTools::interpolate_boundary_values(dof_handler,
-                                           0,
-                                           Functions::ZeroFunction<dim>(),
-                                           boundary_values);
-  if (dim == 1)
-    VectorTools::interpolate_boundary_values(dof_handler,
-                                             1,
-                                             Functions::ZeroFunction<dim>(),
-                                             boundary_values);
-  Vector<double> dummy(residual.size());
-  MatrixTools::apply_boundary_values(boundary_values, matrix, dummy, residual);
-}
-
-
-template <int dim>
-double
-MinimizationProblem<dim>::line_search(const Vector<double> &update) const
-{
-  double         alpha = 0.;
-  Vector<double> tmp(present_solution.size());
-
-  for (unsigned int step = 0; step < 5; ++step)
-    {
-      tmp = present_solution;
-      tmp.add(alpha, update);
-      const double f_a = energy(dof_handler, tmp);
-
-      const double dalpha = (alpha != 0 ? alpha / 100 : 0.01);
-
-      tmp = present_solution;
-      tmp.add(alpha + dalpha, update);
-      const double f_a_plus = energy(dof_handler, tmp);
-
-      tmp = present_solution;
-      tmp.add(alpha - dalpha, update);
-      const double f_a_minus = energy(dof_handler, tmp);
-
-      const double f_a_prime = (f_a_plus - f_a_minus) / (2 * dalpha);
-      const double f_a_doubleprime =
-        ((f_a_plus - 2 * f_a + f_a_minus) / (dalpha * dalpha));
-
-      if (std::fabs(f_a_prime) < 1e-7 * std::fabs(f_a))
-        break;
-
-      if (std::fabs(f_a_doubleprime) < 1e-7 * std::fabs(f_a_prime))
-        break;
-
-      double step_length = -f_a_prime / f_a_doubleprime;
-
-      for (unsigned int i = 0; i < 3; ++i)
-        {
-          tmp = present_solution;
-          tmp.add(alpha + step_length, update);
-          const double e = energy(dof_handler, tmp);
-
-          if (e >= f_a)
-            step_length /= 2;
-          else
-            break;
-        }
-
-      alpha += step_length;
-    }
-
-  return alpha;
-}
-
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::do_step()
-{
-  assemble_step();
-
-  Vector<double> update(present_solution.size());
-  {
-    SolverControl solver_control(residual.size(), 1e-2 * residual.l2_norm());
-    SolverCG<>    solver(solver_control);
-
-    PreconditionSSOR<> preconditioner;
-    preconditioner.initialize(matrix);
-
-    solver.solve(matrix, update, residual, preconditioner);
-    hanging_node_constraints.distribute(update);
-  }
-
-  const double step_length = line_search(update);
-  present_solution.add(step_length, update);
-}
-
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::output_results() const
-{
-  DataOut<dim> data_out;
-  data_out.attach_dof_handler(dof_handler);
-  data_out.add_data_vector(present_solution, "solution");
-  data_out.build_patches();
-
-  std::ostringstream filename;
-  filename << "solution-" << run_number << ".gnuplot" << std::ends;
-
-  data_out.write_gnuplot(deallog.get_file_stream());
-}
-
-
-
-template <>
-void
-MinimizationProblem<1>::refine_grid()
-{
-  const unsigned int dim = 1;
-
-  Vector<float> error_indicators(triangulation.n_active_cells());
-
-  QTrapezoid<dim> quadrature;
-  FEValues<dim>   fe_values(fe,
-                          quadrature,
-                          update_values | update_gradients | update_hessians |
-                            update_quadrature_points | update_JxW_values);
-
-  FEValues<dim> neighbor_fe_values(fe, quadrature, update_gradients);
-
-  std::vector<double>         local_values(quadrature.size());
-  std::vector<Tensor<1, dim>> local_gradients(quadrature.size());
-  std::vector<Tensor<2, dim>> local_2nd_derivs(quadrature.size());
-
-  DoFHandler<dim>::active_cell_iterator cell = dof_handler.begin_active(),
-                                        endc = dof_handler.end();
-  for (unsigned int cell_index = 0; cell != endc; ++cell, ++cell_index)
-    {
-      fe_values.reinit(cell);
-      fe_values.get_function_values(present_solution, local_values);
-      fe_values.get_function_gradients(present_solution, local_gradients);
-      fe_values.get_function_hessians(present_solution, local_2nd_derivs);
-
-      double cell_residual_norm = 0;
-      for (unsigned int q = 0; q < quadrature.size(); ++q)
-        {
-          const double x             = fe_values.quadrature_point(q)[0];
-          const double u             = local_values[q];
-          const double u_prime       = local_gradients[q][0];
-          const double u_doubleprime = local_2nd_derivs[q][0][0];
-          const double local_residual_value =
-            ((x - u * u * u) * std::pow(u_prime, 4) *
-             (u * u * u_prime * u_prime + 5 * (x - u * u * u) * u_doubleprime +
-              2 * u_prime * (1 - 3 * u * u * u_prime)));
-
-          cell_residual_norm +=
-            (local_residual_value * local_residual_value * fe_values.JxW(q));
-        }
-      error_indicators(cell_index) =
-        cell_residual_norm * cell->diameter() * cell->diameter();
-
-      const double x_left  = fe_values.quadrature_point(0)[0];
-      const double x_right = fe_values.quadrature_point(1)[0];
-
-      AssertThrow(x_left == cell->vertex(0)[0], ExcInternalError());
-      AssertThrow(x_right == cell->vertex(1)[0], ExcInternalError());
-
-      const double u_left  = local_values[0];
-      const double u_right = local_values[1];
-
-      const double u_prime_left  = local_gradients[0][0];
-      const double u_prime_right = local_gradients[1][0];
-
-      if (cell->at_boundary(0) == false)
-        {
-          DoFHandler<dim>::cell_iterator left_neighbor = cell->neighbor(0);
-          while (left_neighbor->has_children())
-            left_neighbor = left_neighbor->child(1);
-
-          neighbor_fe_values.reinit(left_neighbor);
-          neighbor_fe_values.get_function_gradients(present_solution,
-                                                    local_gradients);
-
-          const double neighbor_u_prime_left = local_gradients[1][0];
-
-          const double left_jump =
-            std::pow(x_left - std::pow(u_left, 3), 2) *
-            (std::pow(neighbor_u_prime_left, 5) - std::pow(u_prime_left, 5));
-          error_indicators(cell_index) +=
-            left_jump * left_jump * cell->diameter();
-        }
-
-      if (cell->at_boundary(1) == false)
-        {
-          DoFHandler<dim>::cell_iterator right_neighbor = cell->neighbor(1);
-          while (right_neighbor->has_children())
-            right_neighbor = right_neighbor->child(0);
-
-          neighbor_fe_values.reinit(right_neighbor);
-          neighbor_fe_values.get_function_gradients(present_solution,
-                                                    local_gradients);
-
-          const double neighbor_u_prime_right = local_gradients[0][0];
-
-          const double right_jump =
-            std::pow(x_right - std::pow(u_right, 3), 2) *
-            (std::pow(neighbor_u_prime_right, 5) - std::pow(u_prime_right, 5));
-          error_indicators(cell_index) +=
-            right_jump * right_jump * cell->diameter();
-        }
-    }
-
-  GridRefinement::refine_and_coarsen_fixed_number(triangulation,
-                                                  error_indicators,
-                                                  0.3,
-                                                  0.03);
-  triangulation.prepare_coarsening_and_refinement();
-
-  SolutionTransfer<dim> solution_transfer(dof_handler);
-  solution_transfer.prepare_for_coarsening_and_refinement(present_solution);
-
-  triangulation.execute_coarsening_and_refinement();
-  dof_handler.distribute_dofs(fe);
-
-  Vector<double> tmp(dof_handler.n_dofs());
-  solution_transfer.interpolate(present_solution, tmp);
-  present_solution = tmp;
-
-  hanging_node_constraints.clear();
-  DoFTools::make_hanging_node_constraints(dof_handler,
-                                          hanging_node_constraints);
-  hanging_node_constraints.close();
-  hanging_node_constraints.distribute(present_solution);
-}
-
-
-
-template <int dim>
-double
-MinimizationProblem<dim>::energy(const DoFHandler<dim> &dof_handler,
-                                 const Vector<double> & function)
-{
-  QGauss<dim>   quadrature_formula(4);
-  FEValues<dim> fe_values(dof_handler.get_fe(),
-                          quadrature_formula,
-                          update_values | update_gradients |
-                            update_quadrature_points | update_JxW_values);
-
-  const unsigned int n_q_points = quadrature_formula.size();
-
-  std::vector<double>         local_solution_values(n_q_points);
-  std::vector<Tensor<1, dim>> local_solution_grads(n_q_points);
-
-  double energy = 0.;
-
-  typename DoFHandler<dim>::active_cell_iterator cell =
-                                                   dof_handler.begin_active(),
-                                                 endc = dof_handler.end();
-  for (; cell != endc; ++cell)
-    {
-      fe_values.reinit(cell);
-      fe_values.get_function_values(function, local_solution_values);
-      fe_values.get_function_gradients(function, local_solution_grads);
-
-      for (unsigned int q_point = 0; q_point < n_q_points; ++q_point)
-        energy += (std::pow(fe_values.quadrature_point(q_point)(0) -
-                              std::pow(local_solution_values[q_point], 3),
-                            2) *
-                   gradient_power(local_solution_grads[q_point], 6) *
-                   fe_values.JxW(q_point));
-    }
-
-  return energy;
-}
-
-
-template <int dim>
-void
-MinimizationProblem<dim>::run()
-{
-  GridGenerator::hyper_cube(triangulation, 0., 1.);
-  triangulation.refine_global(4);
-  dof_handler.distribute_dofs(fe);
-  initialize_solution();
-
-  double last_energy = energy(dof_handler, present_solution);
-
-  while (true)
-    {
-      setup_system_on_mesh();
-
-      for (unsigned int iteration = 0; iteration < 5; ++iteration)
-        do_step();
-
-      const double this_energy = energy(dof_handler, present_solution);
-      deallog << "   Energy: " << this_energy << std::endl;
-
-      if ((last_energy - this_energy) < 1e-5 * last_energy)
-        break;
-
-      last_energy = this_energy;
-
-      refine_grid();
-    }
-
-  output_results();
-
-  deallog << std::endl;
-}
-
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  try
-    {
-      deallog << std::setprecision(2);
-      logfile << std::setprecision(2);
-
-      deallog.attach(logfile);
-
-      const unsigned int n_realizations = 10;
-      for (unsigned int realization = 0; realization < n_realizations;
-           ++realization)
-        {
-          deallog << "Realization " << realization << ':' << std::endl;
-
-          MinimizationProblem<1> minimization_problem_1d(realization);
-          minimization_problem_1d.run();
-        }
-    }
-  catch (const std::exception &exc)
-    {
-      deallog << std::endl
-              << std::endl
-              << "----------------------------------------------------"
-              << std::endl;
-      deallog << "Exception on processing: " << std::endl
-              << exc.what() << std::endl
-              << "Aborting!" << std::endl
-              << "----------------------------------------------------"
-              << std::endl;
-      return 1;
-    }
-  catch (...)
-    {
-      deallog << std::endl
-              << std::endl
-              << "----------------------------------------------------"
-              << std::endl;
-      deallog << "Unknown exception!" << std::endl
-              << "Aborting!" << std::endl
-              << "----------------------------------------------------"
-              << std::endl;
-      return 1;
-    }
-  return 0;
-}
diff --git a/tests/fail/step-15.output b/tests/fail/step-15.output
deleted file mode 100644 (file)
index 55206ee..0000000
+++ /dev/null
@@ -1,3961 +0,0 @@
-
-DEAL::Realization 0:
-DEAL:cg::Starting value 61.
-DEAL:cg::Convergence step 2 value 0.23
-DEAL:cg::Starting value 4.0
-DEAL:cg::Convergence step 2 value 0.018
-DEAL:cg::Starting value 1.7
-DEAL:cg::Convergence step 2 value 0.0028
-DEAL:cg::Starting value 0.70
-DEAL:cg::Convergence step 2 value 0.0032
-DEAL:cg::Starting value 4.1
-DEAL:cg::Convergence step 2 value 0.0058
-DEAL::   Energy: 0.36
-DEAL:cg::Starting value 4.9
-DEAL:cg::Convergence step 2 value 0.026
-DEAL:cg::Starting value 1.9
-DEAL:cg::Convergence step 2 value 0.015
-DEAL:cg::Starting value 2.4
-DEAL:cg::Convergence step 2 value 0.016
-DEAL:cg::Starting value 1.3
-DEAL:cg::Convergence step 3 value 0.00094
-DEAL:cg::Starting value 1.5
-DEAL:cg::Convergence step 2 value 0.012
-DEAL::   Energy: 0.17
-DEAL:cg::Starting value 1.9
-DEAL:cg::Convergence step 2 value 0.011
-DEAL:cg::Starting value 0.94
-DEAL:cg::Convergence step 2 value 0.0071
-DEAL:cg::Starting value 1.2
-DEAL:cg::Convergence step 2 value 0.0055
-DEAL:cg::Starting value 0.67
-DEAL:cg::Convergence step 2 value 0.0047
-DEAL:cg::Starting value 0.80
-DEAL:cg::Convergence step 2 value 0.0042
-DEAL::   Energy: 0.14
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 3 value 0.0013
-DEAL:cg::Starting value 0.66
-DEAL:cg::Convergence step 3 value 0.0012
-DEAL:cg::Starting value 0.68
-DEAL:cg::Convergence step 3 value 0.0012
-DEAL:cg::Starting value 0.58
-DEAL:cg::Convergence step 3 value 0.0012
-DEAL:cg::Starting value 0.63
-DEAL:cg::Convergence step 3 value 0.0011
-DEAL::   Energy: 0.13
-DEAL:cg::Starting value 0.77
-DEAL:cg::Convergence step 2 value 0.0069
-DEAL:cg::Starting value 0.51
-DEAL:cg::Convergence step 3 value 0.00047
-DEAL:cg::Starting value 0.56
-DEAL:cg::Convergence step 2 value 0.0050
-DEAL:cg::Starting value 0.47
-DEAL:cg::Convergence step 3 value 0.00045
-DEAL:cg::Starting value 0.55
-DEAL:cg::Convergence step 2 value 0.0047
-DEAL::   Energy: 0.13
-DEAL:cg::Starting value 0.57
-DEAL:cg::Convergence step 2 value 0.0047
-DEAL:cg::Starting value 0.36
-DEAL:cg::Convergence step 2 value 0.0030
-DEAL:cg::Starting value 0.82
-DEAL:cg::Convergence step 2 value 0.0079
-DEAL:cg::Starting value 1.9e+04
-DEAL:cg::Convergence step 2 value 1.5e+02
-DEAL:cg::Starting value 2.1e+06
-DEAL:cg::Convergence step 2 value 1.4e+04
-DEAL::   Energy: 4.3e+04
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.25 0.58 
-0.31 0.67 
-
-
-0.31 0.67 
-0.38 0.69 
-
-
-0.44 0.78 
-0.50 0.80 
-
-
-0.50 0.80 
-0.56 0.75 
-
-
-0.56 0.75 
-0.62 0.76 
-
-
-0.62 0.76 
-0.69 0.81 
-
-
-0.69 0.81 
-0.75 0.85 
-
-
-0.75 0.85 
-0.81 0.89 
-
-
-0.94 0.94 
-1.0 1.0 
-
-
-0.81 0.89 
-0.84 0.89 
-
-
-0.84 0.89 
-0.88 0.89 
-
-
-0.88 0.89 
-0.91 0.91 
-
-
-0.91 0.91 
-0.94 0.94 
-
-
-0.38 0.69 
-0.41 0.73 
-
-
-0.41 0.73 
-0.44 0.78 
-
-
-0.22 0.53 
-0.25 0.58 
-
-
-0.20 0.51 
-0.22 0.53 
-
-
-0.094 0.30 
-0.10 0.31 
-
-
-0.11 0.33 
-0.12 0.35 
-
-
-0.12 0.35 
-0.12 0.36 
-
-
-0.12 0.36 
-0.13 0.38 
-
-
-0.13 0.38 
-0.14 0.40 
-
-
-0.14 0.40 
-0.15 0.41 
-
-
-0.15 0.41 
-0.16 0.43 
-
-
-0.16 0.43 
-0.16 0.44 
-
-
-0.16 0.44 
-0.17 0.46 
-
-
-0.17 0.46 
-0.18 0.47 
-
-
-0.18 0.47 
-0.19 0.49 
-
-
-0.19 0.49 
-0.20 0.50 
-
-
-0.20 0.50 
-0.20 0.51 
-
-
-0.0 0.0 
-0.0039 0.018 
-
-
-0.031 0.12 
-0.035 0.14 
-
-
-0.035 0.14 
-0.039 0.15 
-
-
-0.039 0.15 
-0.043 0.16 
-
-
-0.043 0.16 
-0.047 0.17 
-
-
-0.047 0.17 
-0.051 0.18 
-
-
-0.051 0.18 
-0.055 0.19 
-
-
-0.062 0.21 
-0.066 0.22 
-
-
-0.066 0.22 
-0.070 0.24 
-
-
-0.070 0.24 
-0.074 0.24 
-
-
-0.074 0.24 
-0.078 0.25 
-
-
-0.078 0.25 
-0.082 0.26 
-
-
-0.082 0.26 
-0.086 0.27 
-
-
-0.090 0.31 
-0.094 0.30 
-
-
-0.055 0.19 
-0.059 0.20 
-
-
-0.059 0.20 
-0.062 0.21 
-
-
-0.10 0.31 
-0.11 0.32 
-
-
-0.11 0.32 
-0.11 0.33 
-
-
-0.0039 0.018 
-0.0059 0.028 
-
-
-0.0059 0.028 
-0.0078 0.035 
-
-
-0.0078 0.035 
-0.0098 0.046 
-
-
-0.0098 0.046 
-0.012 0.052 
-
-
-0.012 0.052 
-0.014 0.062 
-
-
-0.014 0.062 
-0.016 0.068 
-
-
-0.016 0.068 
-0.018 0.076 
-
-
-0.018 0.076 
-0.020 0.084 
-
-
-0.020 0.084 
-0.021 0.089 
-
-
-0.021 0.089 
-0.023 0.099 
-
-
-0.023 0.099 
-0.025 0.10 
-
-
-0.025 0.10 
-0.027 0.12 
-
-
-0.027 0.12 
-0.029 0.11 
-
-
-0.029 0.11 
-0.031 0.12 
-
-
-0.086 0.27 
-0.088 0.23 
-
-
-0.088 0.23 
-0.090 0.31 
-
-
-DEAL::
-DEAL::Realization 1:
-DEAL:cg::Starting value 19.
-DEAL:cg::Convergence step 2 value 0.054
-DEAL:cg::Starting value 3.8
-DEAL:cg::Convergence step 2 value 0.014
-DEAL:cg::Starting value 1.5
-DEAL:cg::Convergence step 2 value 0.0031
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL:cg::Starting value 0.54
-DEAL:cg::Convergence step 2 value 0.0016
-DEAL::   Energy: 0.20
-DEAL:cg::Starting value 1.8
-DEAL:cg::Convergence step 2 value 0.0073
-DEAL:cg::Starting value 0.63
-DEAL:cg::Convergence step 2 value 0.0048
-DEAL:cg::Starting value 0.96
-DEAL:cg::Convergence step 2 value 0.0029
-DEAL:cg::Starting value 0.28
-DEAL:cg::Convergence step 2 value 0.0021
-DEAL:cg::Starting value 0.38
-DEAL:cg::Convergence step 2 value 0.0019
-DEAL::   Energy: 0.17
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 2 value 0.0038
-DEAL:cg::Starting value 0.58
-DEAL:cg::Convergence step 2 value 0.0039
-DEAL:cg::Starting value 0.62
-DEAL:cg::Convergence step 2 value 0.0029
-DEAL:cg::Starting value 0.49
-DEAL:cg::Convergence step 2 value 0.0030
-DEAL:cg::Starting value 0.53
-DEAL:cg::Convergence step 2 value 0.0025
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 0.74
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.46
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.50
-DEAL:cg::Convergence step 2 value 0.0032
-DEAL:cg::Starting value 0.41
-DEAL:cg::Convergence step 3 value 0.00044
-DEAL:cg::Starting value 0.48
-DEAL:cg::Convergence step 2 value 0.0034
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 0.52
-DEAL:cg::Convergence step 3 value 0.00068
-DEAL:cg::Starting value 0.39
-DEAL:cg::Convergence step 2 value 0.0035
-DEAL:cg::Starting value 0.38
-DEAL:cg::Convergence step 2 value 0.0037
-DEAL:cg::Starting value 0.36
-DEAL:cg::Convergence step 2 value 0.0027
-DEAL:cg::Starting value 0.36
-DEAL:cg::Convergence step 3 value 0.00043
-DEAL::   Energy: 0.15
-DEAL:cg::Starting value 0.42
-DEAL:cg::Convergence step 3 value 0.00046
-DEAL:cg::Starting value 61.
-DEAL:cg::Convergence step 2 value 0.35
-DEAL:cg::Starting value 5.5e+06
-DEAL:cg::Convergence step 2 value 2.9e+04
-DEAL:cg::Starting value 8.7e+06
-DEAL:cg::Convergence step 2 value 4.5e+04
-DEAL:cg::Starting value 8.7e+06
-DEAL:cg::Convergence step 2 value 4.6e+04
-DEAL::   Energy: 2.0e+05
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.25 0.62 
-0.31 0.66 
-
-
-0.31 0.66 
-0.38 0.69 
-
-
-0.56 0.85 
-0.62 0.82 
-
-
-0.81 0.94 
-0.88 0.93 
-
-
-0.88 0.93 
-0.94 0.96 
-
-
-0.94 0.96 
-1.0 1.0 
-
-
-0.38 0.69 
-0.41 0.74 
-
-
-0.53 0.80 
-0.56 0.85 
-
-
-0.44 0.79 
-0.47 0.77 
-
-
-0.47 0.77 
-0.50 0.76 
-
-
-0.69 0.80 
-0.72 0.83 
-
-
-0.72 0.83 
-0.75 0.86 
-
-
-0.75 0.86 
-0.78 0.90 
-
-
-0.78 0.90 
-0.81 0.94 
-
-
-0.62 0.82 
-0.66 0.81 
-
-
-0.66 0.81 
-0.69 0.80 
-
-
-0.19 0.48 
-0.20 0.52 
-
-
-0.20 0.52 
-0.22 0.55 
-
-
-0.16 0.42 
-0.17 0.45 
-
-
-0.17 0.45 
-0.19 0.48 
-
-
-0.41 0.74 
-0.42 0.76 
-
-
-0.42 0.76 
-0.44 0.79 
-
-
-0.50 0.76 
-0.52 0.78 
-
-
-0.52 0.78 
-0.53 0.80 
-
-
-0.10 0.29 
-0.11 0.31 
-
-
-0.12 0.34 
-0.12 0.35 
-
-
-0.12 0.35 
-0.13 0.37 
-
-
-0.13 0.37 
-0.14 0.38 
-
-
-0.14 0.38 
-0.15 0.40 
-
-
-0.15 0.40 
-0.16 0.42 
-
-
-0.22 0.55 
-0.23 0.56 
-
-
-0.23 0.56 
-0.23 0.58 
-
-
-0.23 0.58 
-0.24 0.60 
-
-
-0.24 0.60 
-0.25 0.62 
-
-
-0.0 0.0 
-0.0039 0.019 
-
-
-0.0039 0.019 
-0.0078 0.035 
-
-
-0.0078 0.035 
-0.012 0.050 
-
-
-0.012 0.050 
-0.016 0.064 
-
-
-0.016 0.064 
-0.020 0.078 
-
-
-0.020 0.078 
-0.023 0.090 
-
-
-0.023 0.090 
-0.027 0.10 
-
-
-0.027 0.10 
-0.031 0.11 
-
-
-0.031 0.11 
-0.035 0.13 
-
-
-0.035 0.13 
-0.039 0.14 
-
-
-0.039 0.14 
-0.043 0.15 
-
-
-0.043 0.15 
-0.047 0.16 
-
-
-0.047 0.16 
-0.051 0.17 
-
-
-0.051 0.17 
-0.055 0.18 
-
-
-0.055 0.18 
-0.059 0.19 
-
-
-0.059 0.19 
-0.062 0.20 
-
-
-0.062 0.20 
-0.066 0.21 
-
-
-0.066 0.21 
-0.070 0.22 
-
-
-0.070 0.22 
-0.074 0.23 
-
-
-0.074 0.23 
-0.078 0.24 
-
-
-0.078 0.24 
-0.082 0.25 
-
-
-0.082 0.25 
-0.086 0.26 
-
-
-0.086 0.26 
-0.090 0.27 
-
-
-0.090 0.27 
-0.094 0.28 
-
-
-0.094 0.28 
-0.098 0.29 
-
-
-0.098 0.29 
-0.10 0.29 
-
-
-0.11 0.31 
-0.11 0.30 
-
-
-0.11 0.30 
-0.11 0.26 
-
-
-0.11 0.26 
-0.12 0.36 
-
-
-0.12 0.36 
-0.12 0.34 
-
-
-DEAL::
-DEAL::Realization 2:
-DEAL:cg::Starting value 9.6
-DEAL:cg::Convergence step 2 value 0.029
-DEAL:cg::Starting value 3.5
-DEAL:cg::Convergence step 2 value 0.0077
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 2 value 0.0021
-DEAL:cg::Starting value 1.9
-DEAL:cg::Convergence step 2 value 0.0030
-DEAL:cg::Starting value 0.72
-DEAL:cg::Convergence step 2 value 0.0028
-DEAL::   Energy: 0.24
-DEAL:cg::Starting value 1.8
-DEAL:cg::Convergence step 2 value 0.0078
-DEAL:cg::Starting value 1.9
-DEAL:cg::Convergence step 2 value 0.0024
-DEAL:cg::Starting value 1.0
-DEAL:cg::Convergence step 2 value 0.0029
-DEAL:cg::Starting value 1.0
-DEAL:cg::Convergence step 2 value 0.0015
-DEAL:cg::Starting value 0.64
-DEAL:cg::Convergence step 2 value 0.0015
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 1.3
-DEAL:cg::Convergence step 2 value 0.0068
-DEAL:cg::Starting value 0.66
-DEAL:cg::Convergence step 2 value 0.0053
-DEAL:cg::Starting value 0.75
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.53
-DEAL:cg::Convergence step 2 value 0.0038
-DEAL:cg::Starting value 0.61
-DEAL:cg::Convergence step 2 value 0.0034
-DEAL::   Energy: 0.14
-DEAL:cg::Starting value 0.80
-DEAL:cg::Convergence step 2 value 0.0058
-DEAL:cg::Starting value 0.50
-DEAL:cg::Convergence step 2 value 0.0045
-DEAL:cg::Starting value 0.54
-DEAL:cg::Convergence step 2 value 0.0042
-DEAL:cg::Starting value 0.44
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.51
-DEAL:cg::Convergence step 2 value 0.0037
-DEAL::   Energy: 0.14
-DEAL:cg::Starting value 0.57
-DEAL:cg::Convergence step 3 value 0.00063
-DEAL:cg::Starting value 0.43
-DEAL:cg::Convergence step 3 value 0.00058
-DEAL:cg::Starting value 0.40
-DEAL:cg::Convergence step 2 value 0.0037
-DEAL:cg::Starting value 0.39
-DEAL:cg::Convergence step 3 value 0.00054
-DEAL:cg::Starting value 0.39
-DEAL:cg::Convergence step 2 value 0.0036
-DEAL::   Energy: 0.13
-DEAL:cg::Starting value 0.44
-DEAL:cg::Convergence step 2 value 0.0037
-DEAL:cg::Starting value 0.36
-DEAL:cg::Convergence step 2 value 0.0034
-DEAL:cg::Starting value 0.38
-DEAL:cg::Convergence step 2 value 0.0035
-DEAL:cg::Starting value 0.33
-DEAL:cg::Convergence step 3 value 0.00034
-DEAL:cg::Starting value 0.35
-DEAL:cg::Convergence step 2 value 0.0034
-DEAL::   Energy: 0.13
-DEAL:cg::Starting value 0.38
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL:cg::Starting value 0.35
-DEAL:cg::Convergence step 2 value 0.0030
-DEAL:cg::Starting value 0.29
-DEAL:cg::Convergence step 2 value 0.0029
-DEAL:cg::Starting value 0.32
-DEAL:cg::Convergence step 2 value 0.0029
-DEAL:cg::Starting value 0.29
-DEAL:cg::Convergence step 2 value 0.0029
-DEAL::   Energy: 0.13
-DEAL:cg::Starting value 0.36
-DEAL:cg::Convergence step 3 value 0.00049
-DEAL:cg::Starting value 1.3e+02
-DEAL:cg::Convergence step 2 value 0.57
-DEAL:cg::Starting value 5.4e+05
-DEAL:cg::Convergence step 2 value 1.3e+03
-DEAL:cg::Starting value 5.5e+04
-DEAL:cg::Convergence step 2 value 3.0e+02
-DEAL:cg::Starting value 4.4e+04
-DEAL:cg::Convergence step 2 value 2.3e+02
-DEAL::   Energy: 2.1e+02
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.50 0.83 
-0.56 0.80 
-
-
-0.88 0.92 
-0.94 0.95 
-
-
-0.94 0.95 
-1.0 1.0 
-
-
-0.56 0.80 
-0.59 0.84 
-
-
-0.72 0.84 
-0.75 0.85 
-
-
-0.44 0.78 
-0.47 0.80 
-
-
-0.47 0.80 
-0.50 0.83 
-
-
-0.75 0.85 
-0.78 0.86 
-
-
-0.78 0.86 
-0.81 0.87 
-
-
-0.81 0.87 
-0.84 0.89 
-
-
-0.84 0.89 
-0.88 0.92 
-
-
-0.23 0.56 
-0.25 0.59 
-
-
-0.25 0.59 
-0.27 0.62 
-
-
-0.27 0.62 
-0.28 0.64 
-
-
-0.28 0.64 
-0.30 0.67 
-
-
-0.39 0.71 
-0.41 0.73 
-
-
-0.59 0.84 
-0.61 0.86 
-
-
-0.62 0.88 
-0.64 0.87 
-
-
-0.64 0.87 
-0.66 0.85 
-
-
-0.66 0.85 
-0.67 0.84 
-
-
-0.67 0.84 
-0.69 0.82 
-
-
-0.34 0.69 
-0.36 0.69 
-
-
-0.41 0.73 
-0.42 0.76 
-
-
-0.42 0.76 
-0.44 0.78 
-
-
-0.31 0.70 
-0.33 0.70 
-
-
-0.33 0.70 
-0.34 0.69 
-
-
-0.69 0.82 
-0.70 0.83 
-
-
-0.70 0.83 
-0.72 0.84 
-
-
-0.15 0.40 
-0.16 0.41 
-
-
-0.16 0.41 
-0.16 0.43 
-
-
-0.16 0.43 
-0.17 0.44 
-
-
-0.20 0.51 
-0.21 0.52 
-
-
-0.17 0.44 
-0.18 0.46 
-
-
-0.18 0.46 
-0.19 0.48 
-
-
-0.19 0.48 
-0.20 0.49 
-
-
-0.20 0.49 
-0.20 0.51 
-
-
-0.22 0.53 
-0.23 0.55 
-
-
-0.23 0.55 
-0.23 0.56 
-
-
-0.30 0.67 
-0.30 0.69 
-
-
-0.30 0.69 
-0.31 0.70 
-
-
-0.38 0.69 
-0.38 0.70 
-
-
-0.38 0.70 
-0.39 0.71 
-
-
-0.61 0.86 
-0.62 0.87 
-
-
-0.62 0.87 
-0.62 0.88 
-
-
-0.36 0.69 
-0.37 0.69 
-
-
-0.37 0.69 
-0.38 0.69 
-
-
-0.10 0.30 
-0.11 0.30 
-
-
-0.11 0.30 
-0.11 0.31 
-
-
-0.078 0.24 
-0.082 0.25 
-
-
-0.082 0.25 
-0.086 0.26 
-
-
-0.086 0.26 
-0.090 0.27 
-
-
-0.090 0.27 
-0.094 0.28 
-
-
-0.094 0.28 
-0.098 0.29 
-
-
-0.098 0.29 
-0.10 0.30 
-
-
-0.11 0.31 
-0.11 0.32 
-
-
-0.11 0.32 
-0.12 0.33 
-
-
-0.12 0.33 
-0.12 0.34 
-
-
-0.12 0.34 
-0.12 0.35 
-
-
-0.12 0.35 
-0.13 0.36 
-
-
-0.13 0.36 
-0.13 0.36 
-
-
-0.13 0.36 
-0.14 0.37 
-
-
-0.14 0.37 
-0.14 0.38 
-
-
-0.14 0.38 
-0.14 0.39 
-
-
-0.14 0.39 
-0.15 0.40 
-
-
-0.21 0.52 
-0.21 0.53 
-
-
-0.21 0.53 
-0.22 0.53 
-
-
-0.0039 0.020 
-0.0059 0.029 
-
-
-0.0059 0.029 
-0.0078 0.037 
-
-
-0.0078 0.037 
-0.0098 0.044 
-
-
-0.0098 0.044 
-0.012 0.052 
-
-
-0.012 0.052 
-0.014 0.059 
-
-
-0.014 0.059 
-0.016 0.066 
-
-
-0.016 0.066 
-0.018 0.073 
-
-
-0.018 0.073 
-0.020 0.079 
-
-
-0.0 0.0 
-0.0020 0.011 
-
-
-0.0020 0.011 
-0.0039 0.020 
-
-
-0.020 0.079 
-0.021 0.086 
-
-
-0.021 0.086 
-0.023 0.092 
-
-
-0.023 0.092 
-0.025 0.098 
-
-
-0.025 0.098 
-0.027 0.10 
-
-
-0.027 0.10 
-0.029 0.11 
-
-
-0.029 0.11 
-0.031 0.12 
-
-
-0.031 0.12 
-0.033 0.12 
-
-
-0.033 0.12 
-0.035 0.13 
-
-
-0.035 0.13 
-0.037 0.13 
-
-
-0.037 0.13 
-0.039 0.14 
-
-
-0.047 0.16 
-0.049 0.17 
-
-
-0.049 0.17 
-0.051 0.17 
-
-
-0.051 0.17 
-0.053 0.18 
-
-
-0.053 0.18 
-0.055 0.18 
-
-
-0.055 0.18 
-0.057 0.19 
-
-
-0.057 0.19 
-0.059 0.19 
-
-
-0.059 0.19 
-0.061 0.20 
-
-
-0.061 0.20 
-0.062 0.20 
-
-
-0.062 0.20 
-0.064 0.21 
-
-
-0.064 0.21 
-0.066 0.21 
-
-
-0.066 0.21 
-0.068 0.22 
-
-
-0.068 0.22 
-0.070 0.22 
-
-
-0.070 0.22 
-0.072 0.23 
-
-
-0.072 0.23 
-0.074 0.23 
-
-
-0.074 0.23 
-0.076 0.24 
-
-
-0.076 0.24 
-0.078 0.24 
-
-
-0.039 0.14 
-0.040 0.14 
-
-
-0.040 0.14 
-0.041 0.13 
-
-
-0.041 0.13 
-0.042 0.15 
-
-
-0.042 0.15 
-0.043 0.16 
-
-
-0.043 0.16 
-0.044 0.15 
-
-
-0.044 0.15 
-0.045 0.14 
-
-
-0.045 0.14 
-0.046 0.16 
-
-
-0.046 0.16 
-0.047 0.16 
-
-
-DEAL::
-DEAL::Realization 3:
-DEAL:cg::Starting value 11.
-DEAL:cg::Convergence step 2 value 0.034
-DEAL:cg::Starting value 1.4
-DEAL:cg::Convergence step 2 value 0.0057
-DEAL:cg::Starting value 0.44
-DEAL:cg::Convergence step 2 value 0.0013
-DEAL:cg::Starting value 0.48
-DEAL:cg::Convergence step 2 value 0.0023
-DEAL:cg::Starting value 0.72
-DEAL:cg::Convergence step 2 value 0.00086
-DEAL::   Energy: 0.29
-DEAL:cg::Starting value 2.2
-DEAL:cg::Convergence step 2 value 0.0040
-DEAL:cg::Starting value 1.5
-DEAL:cg::Convergence step 2 value 0.0016
-DEAL:cg::Starting value 1.2
-DEAL:cg::Convergence step 2 value 0.0022
-DEAL:cg::Starting value 0.53
-DEAL:cg::Convergence step 2 value 0.0010
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL::   Energy: 0.22
-DEAL:cg::Starting value 1.6
-DEAL:cg::Convergence step 2 value 0.0060
-DEAL:cg::Starting value 0.97
-DEAL:cg::Convergence step 2 value 0.0054
-DEAL:cg::Starting value 1.2
-DEAL:cg::Convergence step 2 value 0.0046
-DEAL:cg::Starting value 0.83
-DEAL:cg::Convergence step 2 value 0.0040
-DEAL:cg::Starting value 0.98
-DEAL:cg::Convergence step 2 value 0.0037
-DEAL::   Energy: 0.19
-DEAL:cg::Starting value 1.2
-DEAL:cg::Convergence step 2 value 0.0075
-DEAL:cg::Starting value 0.75
-DEAL:cg::Convergence step 2 value 0.0064
-DEAL:cg::Starting value 0.86
-DEAL:cg::Convergence step 2 value 0.0054
-DEAL:cg::Starting value 0.69
-DEAL:cg::Convergence step 2 value 0.0057
-DEAL:cg::Starting value 0.83
-DEAL:cg::Convergence step 2 value 0.0047
-DEAL::   Energy: 0.18
-DEAL:cg::Starting value 0.90
-DEAL:cg::Convergence step 2 value 0.0064
-DEAL:cg::Starting value 0.59
-DEAL:cg::Convergence step 2 value 0.0055
-DEAL:cg::Starting value 0.68
-DEAL:cg::Convergence step 2 value 0.0051
-DEAL:cg::Starting value 0.56
-DEAL:cg::Convergence step 2 value 0.0054
-DEAL:cg::Starting value 0.67
-DEAL:cg::Convergence step 2 value 0.0051
-DEAL::   Energy: 0.18
-DEAL:cg::Starting value 0.64
-DEAL:cg::Convergence step 2 value 0.0039
-DEAL:cg::Starting value 75.
-DEAL:cg::Convergence step 2 value 0.35
-DEAL:cg::Starting value 1.6e+06
-DEAL:cg::Convergence step 2 value 5.7e+03
-DEAL:cg::Starting value 3.7e+06
-DEAL:cg::Convergence step 2 value 1.2e+04
-DEAL:cg::Starting value 3.8e+06
-DEAL:cg::Convergence step 2 value 1.2e+04
-DEAL::   Energy: 7.8e+04
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.31 0.70 
-0.38 0.74 
-
-
-0.38 0.74 
-0.44 0.81 
-
-
-0.44 0.81 
-0.50 0.79 
-
-
-0.50 0.79 
-0.56 0.79 
-
-
-0.62 0.87 
-0.69 0.83 
-
-
-0.69 0.83 
-0.75 0.85 
-
-
-0.75 0.85 
-0.81 0.91 
-
-
-0.81 0.91 
-0.88 0.94 
-
-
-0.88 0.94 
-0.94 0.98 
-
-
-0.94 0.98 
-1.0 1.0 
-
-
-0.22 0.57 
-0.25 0.59 
-
-
-0.25 0.59 
-0.28 0.64 
-
-
-0.28 0.64 
-0.31 0.70 
-
-
-0.56 0.79 
-0.59 0.83 
-
-
-0.59 0.83 
-0.62 0.87 
-
-
-0.20 0.55 
-0.22 0.57 
-
-
-0.094 0.31 
-0.10 0.33 
-
-
-0.10 0.33 
-0.11 0.35 
-
-
-0.11 0.35 
-0.12 0.37 
-
-
-0.12 0.37 
-0.12 0.38 
-
-
-0.12 0.38 
-0.13 0.40 
-
-
-0.13 0.40 
-0.14 0.42 
-
-
-0.14 0.42 
-0.15 0.44 
-
-
-0.15 0.44 
-0.16 0.46 
-
-
-0.16 0.46 
-0.16 0.48 
-
-
-0.16 0.48 
-0.17 0.50 
-
-
-0.17 0.50 
-0.18 0.51 
-
-
-0.18 0.51 
-0.19 0.53 
-
-
-0.19 0.53 
-0.20 0.54 
-
-
-0.20 0.54 
-0.20 0.55 
-
-
-0.0 0.0 
-0.0039 0.022 
-
-
-0.035 0.14 
-0.039 0.15 
-
-
-0.039 0.15 
-0.043 0.16 
-
-
-0.043 0.16 
-0.047 0.18 
-
-
-0.047 0.18 
-0.051 0.19 
-
-
-0.051 0.19 
-0.055 0.20 
-
-
-0.055 0.20 
-0.059 0.21 
-
-
-0.059 0.21 
-0.062 0.22 
-
-
-0.062 0.22 
-0.066 0.23 
-
-
-0.066 0.23 
-0.070 0.25 
-
-
-0.070 0.25 
-0.074 0.25 
-
-
-0.074 0.25 
-0.078 0.26 
-
-
-0.078 0.26 
-0.082 0.27 
-
-
-0.082 0.27 
-0.086 0.29 
-
-
-0.0039 0.022 
-0.0059 0.033 
-
-
-0.0059 0.033 
-0.0078 0.038 
-
-
-0.0078 0.038 
-0.0098 0.050 
-
-
-0.0098 0.050 
-0.012 0.055 
-
-
-0.012 0.055 
-0.014 0.067 
-
-
-0.014 0.067 
-0.016 0.070 
-
-
-0.016 0.070 
-0.018 0.082 
-
-
-0.018 0.082 
-0.020 0.084 
-
-
-0.020 0.084 
-0.021 0.096 
-
-
-0.021 0.096 
-0.023 0.098 
-
-
-0.023 0.098 
-0.025 0.11 
-
-
-0.025 0.11 
-0.027 0.11 
-
-
-0.027 0.11 
-0.029 0.12 
-
-
-0.029 0.12 
-0.031 0.12 
-
-
-0.031 0.12 
-0.033 0.14 
-
-
-0.033 0.14 
-0.035 0.14 
-
-
-0.086 0.29 
-0.088 0.28 
-
-
-0.088 0.28 
-0.090 0.24 
-
-
-0.090 0.24 
-0.092 0.33 
-
-
-0.092 0.33 
-0.094 0.31 
-
-
-DEAL::
-DEAL::Realization 4:
-DEAL:cg::Starting value 5.0
-DEAL:cg::Convergence step 2 value 0.018
-DEAL:cg::Starting value 0.80
-DEAL:cg::Convergence step 2 value 0.0024
-DEAL:cg::Starting value 3.8
-DEAL:cg::Convergence step 2 value 0.0075
-DEAL:cg::Starting value 1.4
-DEAL:cg::Convergence step 2 value 0.0038
-DEAL:cg::Starting value 0.67
-DEAL:cg::Convergence step 2 value 0.0024
-DEAL::   Energy: 0.12
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 2 value 0.0067
-DEAL:cg::Starting value 0.64
-DEAL:cg::Convergence step 2 value 0.0044
-DEAL:cg::Starting value 0.60
-DEAL:cg::Convergence step 2 value 0.0035
-DEAL:cg::Starting value 0.41
-DEAL:cg::Convergence step 2 value 0.0027
-DEAL:cg::Starting value 0.40
-DEAL:cg::Convergence step 2 value 0.0026
-DEAL::   Energy: 0.094
-DEAL:cg::Starting value 0.65
-DEAL:cg::Convergence step 2 value 0.0053
-DEAL:cg::Starting value 0.38
-DEAL:cg::Convergence step 3 value 0.00027
-DEAL:cg::Starting value 0.43
-DEAL:cg::Convergence step 2 value 0.0035
-DEAL:cg::Starting value 0.34
-DEAL:cg::Convergence step 2 value 0.0032
-DEAL:cg::Starting value 0.39
-DEAL:cg::Convergence step 2 value 0.0031
-DEAL::   Energy: 0.088
-DEAL:cg::Starting value 0.45
-DEAL:cg::Convergence step 3 value 0.00042
-DEAL:cg::Starting value 0.33
-DEAL:cg::Convergence step 3 value 0.00036
-DEAL:cg::Starting value 0.32
-DEAL:cg::Convergence step 3 value 0.00036
-DEAL:cg::Starting value 0.30
-DEAL:cg::Convergence step 3 value 0.00030
-DEAL:cg::Starting value 0.31
-DEAL:cg::Convergence step 3 value 0.00036
-DEAL::   Energy: 0.086
-DEAL:cg::Starting value 0.34
-DEAL:cg::Convergence step 2 value 0.0026
-DEAL:cg::Starting value 0.25
-DEAL:cg::Convergence step 2 value 0.0021
-DEAL:cg::Starting value 0.27
-DEAL:cg::Convergence step 2 value 0.0018
-DEAL:cg::Starting value 0.25
-DEAL:cg::Convergence step 2 value 0.0016
-DEAL:cg::Starting value 0.25
-DEAL:cg::Convergence step 2 value 0.0019
-DEAL::   Energy: 0.085
-DEAL:cg::Starting value 0.29
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL:cg::Starting value 0.27
-DEAL:cg::Convergence step 2 value 0.0018
-DEAL:cg::Starting value 0.24
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL:cg::Starting value 0.25
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL:cg::Starting value 0.23
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL::   Energy: 0.085
-DEAL:cg::Starting value 0.27
-DEAL:cg::Convergence step 2 value 0.0024
-DEAL:cg::Starting value 0.18
-DEAL:cg::Convergence step 3 value 0.00022
-DEAL:cg::Starting value 0.22
-DEAL:cg::Convergence step 2 value 0.0021
-DEAL:cg::Starting value 0.16
-DEAL:cg::Convergence step 3 value 0.00021
-DEAL:cg::Starting value 0.22
-DEAL:cg::Convergence step 2 value 0.0021
-DEAL::   Energy: 0.085
-DEAL:cg::Starting value 0.20
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL:cg::Starting value 0.21
-DEAL:cg::Convergence step 2 value 0.0018
-DEAL:cg::Starting value 0.16
-DEAL:cg::Convergence step 3 value 0.00019
-DEAL:cg::Starting value 0.19
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL:cg::Starting value 0.15
-DEAL:cg::Convergence step 3 value 0.00019
-DEAL::   Energy: 0.085
-DEAL:cg::Starting value 0.21
-DEAL:cg::Convergence step 3 value 0.00020
-DEAL:cg::Starting value 15.
-DEAL:cg::Convergence step 2 value 0.068
-DEAL:cg::Starting value 1.6e+08
-DEAL:cg::Convergence step 2 value 6.8e+05
-DEAL:cg::Starting value 3.4e+08
-DEAL:cg::Convergence step 2 value 1.5e+06
-DEAL:cg::Starting value 3.8e+08
-DEAL:cg::Convergence step 2 value 1.7e+06
-DEAL::   Energy: 9.9e+06
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.50 0.79 
-0.56 0.80 
-
-
-0.56 0.80 
-0.62 0.86 
-
-
-0.94 0.98 
-1.0 1.0 
-
-
-0.41 0.69 
-0.44 0.72 
-
-
-0.84 0.94 
-0.88 0.92 
-
-
-0.69 0.92 
-0.72 0.90 
-
-
-0.72 0.90 
-0.75 0.89 
-
-
-0.88 0.92 
-0.91 0.95 
-
-
-0.91 0.95 
-0.94 0.98 
-
-
-0.44 0.72 
-0.47 0.76 
-
-
-0.47 0.76 
-0.50 0.79 
-
-
-0.62 0.86 
-0.66 0.89 
-
-
-0.66 0.89 
-0.69 0.92 
-
-
-0.33 0.61 
-0.34 0.62 
-
-
-0.34 0.62 
-0.36 0.64 
-
-
-0.36 0.64 
-0.38 0.65 
-
-
-0.78 0.92 
-0.80 0.94 
-
-
-0.75 0.89 
-0.77 0.91 
-
-
-0.77 0.91 
-0.78 0.92 
-
-
-0.38 0.65 
-0.39 0.67 
-
-
-0.39 0.67 
-0.41 0.69 
-
-
-0.81 0.96 
-0.83 0.95 
-
-
-0.83 0.95 
-0.84 0.94 
-
-
-0.30 0.57 
-0.30 0.58 
-
-
-0.32 0.60 
-0.33 0.61 
-
-
-0.23 0.47 
-0.23 0.48 
-
-
-0.23 0.48 
-0.24 0.49 
-
-
-0.26 0.52 
-0.27 0.53 
-
-
-0.27 0.53 
-0.27 0.54 
-
-
-0.29 0.56 
-0.30 0.57 
-
-
-0.80 0.94 
-0.80 0.95 
-
-
-0.80 0.95 
-0.81 0.96 
-
-
-0.12 0.28 
-0.12 0.29 
-
-
-0.12 0.29 
-0.12 0.30 
-
-
-0.30 0.58 
-0.31 0.59 
-
-
-0.31 0.59 
-0.31 0.59 
-
-
-0.31 0.59 
-0.32 0.60 
-
-
-0.32 0.60 
-0.32 0.60 
-
-
-0.12 0.30 
-0.13 0.30 
-
-
-0.15 0.34 
-0.16 0.35 
-
-
-0.16 0.35 
-0.16 0.36 
-
-
-0.16 0.36 
-0.16 0.37 
-
-
-0.16 0.37 
-0.17 0.37 
-
-
-0.17 0.37 
-0.17 0.38 
-
-
-0.17 0.38 
-0.18 0.39 
-
-
-0.18 0.39 
-0.18 0.39 
-
-
-0.18 0.39 
-0.18 0.40 
-
-
-0.18 0.40 
-0.19 0.41 
-
-
-0.27 0.54 
-0.28 0.54 
-
-
-0.28 0.54 
-0.28 0.55 
-
-
-0.28 0.55 
-0.29 0.55 
-
-
-0.29 0.55 
-0.29 0.56 
-
-
-0.19 0.41 
-0.19 0.41 
-
-
-0.19 0.41 
-0.20 0.42 
-
-
-0.20 0.42 
-0.20 0.42 
-
-
-0.20 0.42 
-0.20 0.43 
-
-
-0.20 0.43 
-0.21 0.44 
-
-
-0.21 0.44 
-0.21 0.44 
-
-
-0.21 0.44 
-0.21 0.45 
-
-
-0.21 0.45 
-0.22 0.46 
-
-
-0.22 0.46 
-0.22 0.46 
-
-
-0.22 0.46 
-0.23 0.47 
-
-
-0.24 0.49 
-0.25 0.50 
-
-
-0.25 0.50 
-0.25 0.50 
-
-
-0.25 0.50 
-0.25 0.51 
-
-
-0.25 0.51 
-0.26 0.52 
-
-
-0.0078 0.029 
-0.0098 0.036 
-
-
-0.0098 0.036 
-0.012 0.042 
-
-
-0.012 0.042 
-0.014 0.049 
-
-
-0.014 0.049 
-0.016 0.055 
-
-
-0.016 0.055 
-0.018 0.060 
-
-
-0.018 0.060 
-0.020 0.066 
-
-
-0.14 0.32 
-0.14 0.33 
-
-
-0.14 0.33 
-0.14 0.35 
-
-
-0.020 0.066 
-0.021 0.072 
-
-
-0.021 0.072 
-0.023 0.077 
-
-
-0.023 0.077 
-0.025 0.082 
-
-
-0.025 0.082 
-0.027 0.088 
-
-
-0.027 0.088 
-0.029 0.093 
-
-
-0.029 0.093 
-0.031 0.098 
-
-
-0.031 0.098 
-0.033 0.10 
-
-
-0.033 0.10 
-0.035 0.11 
-
-
-0.035 0.11 
-0.037 0.11 
-
-
-0.037 0.11 
-0.039 0.12 
-
-
-0.0039 0.015 
-0.0059 0.022 
-
-
-0.0059 0.022 
-0.0078 0.029 
-
-
-0.039 0.12 
-0.041 0.12 
-
-
-0.041 0.12 
-0.043 0.13 
-
-
-0.043 0.13 
-0.045 0.13 
-
-
-0.045 0.13 
-0.047 0.14 
-
-
-0.047 0.14 
-0.049 0.14 
-
-
-0.049 0.14 
-0.051 0.15 
-
-
-0.051 0.15 
-0.053 0.15 
-
-
-0.053 0.15 
-0.055 0.15 
-
-
-0.055 0.15 
-0.057 0.16 
-
-
-0.057 0.16 
-0.059 0.16 
-
-
-0.059 0.16 
-0.061 0.17 
-
-
-0.061 0.17 
-0.062 0.17 
-
-
-0.062 0.17 
-0.064 0.18 
-
-
-0.064 0.18 
-0.066 0.18 
-
-
-0.066 0.18 
-0.068 0.18 
-
-
-0.068 0.18 
-0.070 0.19 
-
-
-0.0 0.0 
-0.0020 0.0075 
-
-
-0.0020 0.0075 
-0.0039 0.015 
-
-
-0.070 0.19 
-0.072 0.19 
-
-
-0.072 0.19 
-0.074 0.20 
-
-
-0.074 0.20 
-0.076 0.20 
-
-
-0.076 0.20 
-0.078 0.20 
-
-
-0.078 0.20 
-0.080 0.21 
-
-
-0.080 0.21 
-0.082 0.21 
-
-
-0.082 0.21 
-0.084 0.22 
-
-
-0.084 0.22 
-0.086 0.22 
-
-
-0.086 0.22 
-0.088 0.23 
-
-
-0.088 0.23 
-0.090 0.23 
-
-
-0.090 0.23 
-0.092 0.23 
-
-
-0.092 0.23 
-0.094 0.24 
-
-
-0.094 0.24 
-0.096 0.24 
-
-
-0.096 0.24 
-0.098 0.24 
-
-
-0.098 0.24 
-0.10 0.25 
-
-
-0.10 0.25 
-0.10 0.25 
-
-
-0.10 0.25 
-0.10 0.26 
-
-
-0.10 0.26 
-0.11 0.26 
-
-
-0.11 0.26 
-0.11 0.26 
-
-
-0.11 0.26 
-0.11 0.27 
-
-
-0.11 0.27 
-0.11 0.27 
-
-
-0.11 0.27 
-0.11 0.27 
-
-
-0.11 0.27 
-0.12 0.28 
-
-
-0.12 0.28 
-0.12 0.28 
-
-
-0.13 0.30 
-0.13 0.31 
-
-
-0.13 0.31 
-0.13 0.31 
-
-
-0.15 0.32 
-0.15 0.34 
-
-
-0.15 0.34 
-0.15 0.34 
-
-
-0.13 0.31 
-0.13 0.33 
-
-
-0.13 0.33 
-0.13 0.37 
-
-
-0.13 0.37 
-0.14 0.34 
-
-
-0.14 0.34 
-0.14 0.25 
-
-
-0.14 0.25 
-0.14 0.30 
-
-
-0.14 0.30 
-0.14 0.32 
-
-
-0.14 0.35 
-0.14 0.36 
-
-
-0.14 0.36 
-0.14 0.28 
-
-
-0.14 0.28 
-0.15 0.33 
-
-
-0.15 0.33 
-0.15 0.36 
-
-
-0.15 0.36 
-0.15 0.33 
-
-
-0.15 0.33 
-0.15 0.32 
-
-
-DEAL::
-DEAL::Realization 5:
-DEAL:cg::Starting value 35.
-DEAL:cg::Convergence step 2 value 0.074
-DEAL:cg::Starting value 3.7
-DEAL:cg::Convergence step 2 value 0.0082
-DEAL:cg::Starting value 1.0
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.63
-DEAL:cg::Convergence step 2 value 0.0025
-DEAL:cg::Starting value 2.1
-DEAL:cg::Convergence step 2 value 0.0019
-DEAL::   Energy: 0.27
-DEAL:cg::Starting value 2.7
-DEAL:cg::Convergence step 2 value 0.010
-DEAL:cg::Starting value 0.73
-DEAL:cg::Convergence step 2 value 0.0069
-DEAL:cg::Starting value 1.6
-DEAL:cg::Convergence step 2 value 0.0050
-DEAL:cg::Starting value 0.37
-DEAL:cg::Convergence step 3 value 0.00036
-DEAL:cg::Starting value 0.30
-DEAL:cg::Convergence step 3 value 0.00033
-DEAL::   Energy: 0.20
-DEAL:cg::Starting value 1.7
-DEAL:cg::Convergence step 2 value 0.0062
-DEAL:cg::Starting value 0.70
-DEAL:cg::Convergence step 2 value 0.0046
-DEAL:cg::Starting value 0.73
-DEAL:cg::Convergence step 2 value 0.0039
-DEAL:cg::Starting value 0.52
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL:cg::Starting value 0.58
-DEAL:cg::Convergence step 2 value 0.0028
-DEAL::   Energy: 0.18
-DEAL:cg::Starting value 0.91
-DEAL:cg::Convergence step 2 value 0.0051
-DEAL:cg::Starting value 0.56
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.57
-DEAL:cg::Convergence step 2 value 0.0040
-DEAL:cg::Starting value 0.50
-DEAL:cg::Convergence step 2 value 0.0036
-DEAL:cg::Starting value 0.54
-DEAL:cg::Convergence step 2 value 0.0034
-DEAL::   Energy: 0.17
-DEAL:cg::Starting value 0.68
-DEAL:cg::Convergence step 2 value 0.0052
-DEAL:cg::Starting value 0.45
-DEAL:cg::Convergence step 2 value 0.0035
-DEAL:cg::Starting value 0.44
-DEAL:cg::Convergence step 2 value 0.0032
-DEAL:cg::Starting value 0.42
-DEAL:cg::Convergence step 2 value 0.0029
-DEAL:cg::Starting value 0.43
-DEAL:cg::Convergence step 2 value 0.0028
-DEAL::   Energy: 0.17
-DEAL:cg::Starting value 0.47
-DEAL:cg::Convergence step 3 value 0.00048
-DEAL:cg::Starting value 0.30
-DEAL:cg::Convergence step 3 value 0.00045
-DEAL:cg::Starting value 0.78
-DEAL:cg::Convergence step 2 value 0.0045
-DEAL:cg::Starting value 9.8e+03
-DEAL:cg::Convergence step 2 value 18.
-DEAL:cg::Starting value 4.0e+05
-DEAL:cg::Convergence step 2 value 6.9e+02
-DEAL::   Energy: 7.8e+03
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.56 0.85 
-0.62 0.82 
-
-
-0.62 0.82 
-0.69 0.89 
-
-
-0.69 0.89 
-0.75 0.94 
-
-
-0.75 0.94 
-0.81 0.94 
-
-
-0.81 0.94 
-0.88 0.93 
-
-
-0.94 0.99 
-1.0 1.0 
-
-
-0.38 0.69 
-0.41 0.74 
-
-
-0.41 0.74 
-0.44 0.79 
-
-
-0.50 0.76 
-0.53 0.80 
-
-
-0.53 0.80 
-0.56 0.85 
-
-
-0.25 0.65 
-0.28 0.69 
-
-
-0.28 0.69 
-0.31 0.73 
-
-
-0.31 0.73 
-0.34 0.71 
-
-
-0.34 0.71 
-0.38 0.69 
-
-
-0.44 0.79 
-0.47 0.77 
-
-
-0.47 0.77 
-0.50 0.76 
-
-
-0.88 0.93 
-0.91 0.96 
-
-
-0.91 0.96 
-0.94 0.99 
-
-
-0.12 0.37 
-0.14 0.40 
-
-
-0.14 0.40 
-0.16 0.44 
-
-
-0.16 0.44 
-0.17 0.48 
-
-
-0.17 0.48 
-0.19 0.51 
-
-
-0.22 0.58 
-0.23 0.61 
-
-
-0.23 0.61 
-0.25 0.65 
-
-
-0.094 0.29 
-0.10 0.31 
-
-
-0.10 0.31 
-0.11 0.33 
-
-
-0.11 0.33 
-0.12 0.35 
-
-
-0.12 0.35 
-0.12 0.37 
-
-
-0.19 0.51 
-0.20 0.53 
-
-
-0.20 0.53 
-0.20 0.55 
-
-
-0.20 0.55 
-0.21 0.56 
-
-
-0.21 0.56 
-0.22 0.58 
-
-
-0.0 0.0 
-0.0039 0.022 
-
-
-0.023 0.097 
-0.027 0.11 
-
-
-0.027 0.11 
-0.031 0.12 
-
-
-0.031 0.12 
-0.035 0.13 
-
-
-0.035 0.13 
-0.039 0.15 
-
-
-0.039 0.15 
-0.043 0.16 
-
-
-0.043 0.16 
-0.047 0.17 
-
-
-0.047 0.17 
-0.051 0.18 
-
-
-0.051 0.18 
-0.055 0.19 
-
-
-0.055 0.19 
-0.059 0.20 
-
-
-0.059 0.20 
-0.062 0.21 
-
-
-0.074 0.24 
-0.078 0.25 
-
-
-0.078 0.25 
-0.082 0.26 
-
-
-0.082 0.26 
-0.086 0.27 
-
-
-0.086 0.27 
-0.090 0.28 
-
-
-0.090 0.28 
-0.094 0.29 
-
-
-0.0039 0.022 
-0.0059 0.032 
-
-
-0.0059 0.032 
-0.0078 0.039 
-
-
-0.0078 0.039 
-0.0098 0.047 
-
-
-0.0098 0.047 
-0.012 0.055 
-
-
-0.012 0.055 
-0.014 0.062 
-
-
-0.014 0.062 
-0.016 0.070 
-
-
-0.016 0.070 
-0.018 0.076 
-
-
-0.018 0.076 
-0.020 0.084 
-
-
-0.020 0.084 
-0.021 0.090 
-
-
-0.021 0.090 
-0.023 0.097 
-
-
-0.062 0.21 
-0.064 0.23 
-
-
-0.064 0.23 
-0.066 0.18 
-
-
-0.066 0.18 
-0.068 0.24 
-
-
-0.068 0.24 
-0.070 0.25 
-
-
-0.070 0.25 
-0.072 0.24 
-
-
-0.072 0.24 
-0.074 0.24 
-
-
-DEAL::
-DEAL::Realization 6:
-DEAL:cg::Starting value 12.
-DEAL:cg::Convergence step 2 value 0.029
-DEAL:cg::Starting value 2.7
-DEAL:cg::Convergence step 2 value 0.0036
-DEAL:cg::Starting value 0.91
-DEAL:cg::Convergence step 2 value 0.0027
-DEAL:cg::Starting value 0.54
-DEAL:cg::Convergence step 2 value 0.0022
-DEAL:cg::Starting value 0.48
-DEAL:cg::Convergence step 2 value 0.0016
-DEAL::   Energy: 0.29
-DEAL:cg::Starting value 3.9
-DEAL:cg::Convergence step 2 value 0.0077
-DEAL:cg::Starting value 0.35
-DEAL:cg::Convergence step 2 value 0.0026
-DEAL:cg::Starting value 1.5
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.31
-DEAL:cg::Convergence step 2 value 0.0026
-DEAL:cg::Starting value 0.47
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL::   Energy: 0.23
-DEAL:cg::Starting value 2.2
-DEAL:cg::Convergence step 2 value 0.0087
-DEAL:cg::Starting value 0.62
-DEAL:cg::Convergence step 2 value 0.0054
-DEAL:cg::Starting value 0.75
-DEAL:cg::Convergence step 2 value 0.0035
-DEAL:cg::Starting value 0.59
-DEAL:cg::Convergence step 2 value 0.0031
-DEAL:cg::Starting value 0.56
-DEAL:cg::Convergence step 2 value 0.0032
-DEAL::   Energy: 0.21
-DEAL:cg::Starting value 1.2
-DEAL:cg::Convergence step 2 value 0.0056
-DEAL:cg::Starting value 0.72
-DEAL:cg::Convergence step 2 value 0.0049
-DEAL:cg::Starting value 0.71
-DEAL:cg::Convergence step 2 value 0.0042
-DEAL:cg::Starting value 0.62
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.65
-DEAL:cg::Convergence step 2 value 0.0036
-DEAL::   Energy: 0.20
-DEAL:cg::Starting value 0.90
-DEAL:cg::Convergence step 2 value 0.0051
-DEAL:cg::Starting value 0.52
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.61
-DEAL:cg::Convergence step 2 value 0.0039
-DEAL:cg::Starting value 0.48
-DEAL:cg::Convergence step 2 value 0.0038
-DEAL:cg::Starting value 0.60
-DEAL:cg::Convergence step 2 value 0.0039
-DEAL::   Energy: 0.20
-DEAL:cg::Starting value 0.61
-DEAL:cg::Convergence step 2 value 0.0051
-DEAL:cg::Starting value 0.47
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.43
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.43
-DEAL:cg::Convergence step 3 value 0.00057
-DEAL:cg::Starting value 0.41
-DEAL:cg::Convergence step 3 value 0.00053
-DEAL::   Energy: 0.21
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.31 0.74 
-0.38 0.76 
-
-
-0.38 0.76 
-0.44 0.72 
-
-
-0.44 0.72 
-0.50 0.73 
-
-
-0.56 0.80 
-0.62 0.86 
-
-
-0.62 0.86 
-0.69 0.92 
-
-
-0.69 0.92 
-0.75 0.88 
-
-
-0.75 0.88 
-0.81 0.86 
-
-
-0.81 0.86 
-0.88 0.91 
-
-
-0.94 0.98 
-1.0 1.0 
-
-
-0.19 0.55 
-0.22 0.61 
-
-
-0.22 0.61 
-0.25 0.66 
-
-
-0.25 0.66 
-0.28 0.70 
-
-
-0.28 0.70 
-0.31 0.74 
-
-
-0.88 0.91 
-0.91 0.95 
-
-
-0.91 0.95 
-0.94 0.98 
-
-
-0.50 0.73 
-0.53 0.77 
-
-
-0.53 0.77 
-0.56 0.80 
-
-
-0.12 0.39 
-0.14 0.43 
-
-
-0.094 0.31 
-0.10 0.33 
-
-
-0.10 0.33 
-0.11 0.35 
-
-
-0.11 0.35 
-0.12 0.37 
-
-
-0.12 0.37 
-0.12 0.39 
-
-
-0.17 0.51 
-0.18 0.53 
-
-
-0.18 0.53 
-0.19 0.55 
-
-
-0.14 0.43 
-0.15 0.45 
-
-
-0.15 0.45 
-0.16 0.47 
-
-
-0.16 0.47 
-0.16 0.49 
-
-
-0.16 0.49 
-0.17 0.51 
-
-
-0.043 0.17 
-0.047 0.18 
-
-
-0.047 0.18 
-0.051 0.19 
-
-
-0.051 0.19 
-0.055 0.20 
-
-
-0.055 0.20 
-0.059 0.22 
-
-
-0.059 0.22 
-0.062 0.23 
-
-
-0.062 0.23 
-0.066 0.24 
-
-
-0.066 0.24 
-0.070 0.25 
-
-
-0.070 0.25 
-0.074 0.26 
-
-
-0.074 0.26 
-0.078 0.27 
-
-
-0.078 0.27 
-0.082 0.28 
-
-
-0.082 0.28 
-0.086 0.29 
-
-
-0.090 0.30 
-0.094 0.31 
-
-
-0.0 0.0 
-0.0020 0.010 
-
-
-0.0020 0.010 
-0.0039 0.021 
-
-
-0.0039 0.021 
-0.0059 0.031 
-
-
-0.0059 0.031 
-0.0078 0.040 
-
-
-0.0078 0.040 
-0.0098 0.049 
-
-
-0.0098 0.049 
-0.012 0.057 
-
-
-0.012 0.057 
-0.014 0.066 
-
-
-0.014 0.066 
-0.016 0.073 
-
-
-0.016 0.073 
-0.018 0.081 
-
-
-0.018 0.081 
-0.020 0.089 
-
-
-0.020 0.089 
-0.021 0.096 
-
-
-0.021 0.096 
-0.023 0.10 
-
-
-0.023 0.10 
-0.025 0.11 
-
-
-0.025 0.11 
-0.027 0.12 
-
-
-0.027 0.12 
-0.029 0.12 
-
-
-0.029 0.12 
-0.031 0.13 
-
-
-0.031 0.13 
-0.033 0.14 
-
-
-0.033 0.14 
-0.035 0.14 
-
-
-0.035 0.14 
-0.037 0.15 
-
-
-0.037 0.15 
-0.039 0.16 
-
-
-0.039 0.16 
-0.041 0.16 
-
-
-0.041 0.16 
-0.043 0.17 
-
-
-0.086 0.29 
-0.088 0.30 
-
-
-0.088 0.30 
-0.090 0.30 
-
-
-DEAL::
-DEAL::Realization 7:
-DEAL:cg::Starting value 14.
-DEAL:cg::Convergence step 2 value 0.032
-DEAL:cg::Starting value 0.68
-DEAL:cg::Convergence step 2 value 0.0023
-DEAL:cg::Starting value 0.68
-DEAL:cg::Convergence step 2 value 0.0023
-DEAL:cg::Starting value 0.69
-DEAL:cg::Convergence step 2 value 0.0023
-DEAL:cg::Starting value 0.69
-DEAL:cg::Convergence step 2 value 0.0023
-DEAL::   Energy: 0.33
-DEAL:cg::Starting value 3.1
-DEAL:cg::Convergence step 2 value 0.010
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 2 value 0.0062
-DEAL:cg::Starting value 1.6
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.35
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL:cg::Starting value 0.56
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL::   Energy: 0.26
-DEAL:cg::Starting value 2.1
-DEAL:cg::Convergence step 2 value 0.0073
-DEAL:cg::Starting value 0.91
-DEAL:cg::Convergence step 2 value 0.0051
-DEAL:cg::Starting value 1.1
-DEAL:cg::Convergence step 2 value 0.0039
-DEAL:cg::Starting value 0.75
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL:cg::Starting value 0.84
-DEAL:cg::Convergence step 2 value 0.0030
-DEAL::   Energy: 0.23
-DEAL:cg::Starting value 1.3
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.83
-DEAL:cg::Convergence step 2 value 0.0038
-DEAL:cg::Starting value 0.85
-DEAL:cg::Convergence step 2 value 0.0054
-DEAL:cg::Starting value 0.73
-DEAL:cg::Convergence step 2 value 0.0038
-DEAL:cg::Starting value 0.77
-DEAL:cg::Convergence step 2 value 0.0051
-DEAL::   Energy: 0.22
-DEAL:cg::Starting value 1.0
-DEAL:cg::Convergence step 2 value 0.0038
-DEAL:cg::Starting value 0.58
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL:cg::Starting value 0.72
-DEAL:cg::Convergence step 2 value 0.0042
-DEAL:cg::Starting value 0.54
-DEAL:cg::Convergence step 2 value 0.0034
-DEAL:cg::Starting value 0.71
-DEAL:cg::Convergence step 2 value 0.0044
-DEAL::   Energy: 0.22
-DEAL:cg::Starting value 0.67
-DEAL:cg::Convergence step 2 value 0.0044
-DEAL:cg::Starting value 0.57
-DEAL:cg::Convergence step 2 value 0.0048
-DEAL:cg::Starting value 0.46
-DEAL:cg::Convergence step 2 value 0.0046
-DEAL:cg::Starting value 0.50
-DEAL:cg::Convergence step 2 value 0.0041
-DEAL:cg::Starting value 0.34
-DEAL:cg::Convergence step 3 value 0.00057
-DEAL::   Energy: 0.22
-DEAL:cg::Starting value 0.79
-DEAL:cg::Convergence step 2 value 0.0047
-DEAL:cg::Starting value 3.5e+03
-DEAL:cg::Convergence step 2 value 17.
-DEAL:cg::Starting value 3.4e+05
-DEAL:cg::Convergence step 2 value 1.6e+03
-DEAL:cg::Starting value 4.2e+05
-DEAL:cg::Convergence step 2 value 1.9e+03
-DEAL:cg::Starting value 4.2e+05
-DEAL:cg::Convergence step 2 value 1.9e+03
-DEAL::   Energy: 4.3e+03
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.25 0.57 
-0.31 0.66 
-
-
-0.50 0.82 
-0.56 0.82 
-
-
-0.62 0.89 
-0.69 0.91 
-
-
-0.69 0.91 
-0.75 0.89 
-
-
-0.94 1.0 
-1.0 1.0 
-
-
-0.47 0.81 
-0.50 0.82 
-
-
-0.22 0.58 
-0.25 0.57 
-
-
-0.31 0.66 
-0.34 0.67 
-
-
-0.56 0.82 
-0.59 0.86 
-
-
-0.59 0.86 
-0.62 0.89 
-
-
-0.75 0.89 
-0.78 0.93 
-
-
-0.78 0.93 
-0.81 0.97 
-
-
-0.88 0.93 
-0.91 0.96 
-
-
-0.91 0.96 
-0.94 1.0 
-
-
-0.81 0.97 
-0.84 0.95 
-
-
-0.84 0.95 
-0.88 0.93 
-
-
-0.41 0.74 
-0.42 0.77 
-
-
-0.42 0.77 
-0.44 0.79 
-
-
-0.39 0.71 
-0.41 0.74 
-
-
-0.44 0.79 
-0.45 0.80 
-
-
-0.45 0.80 
-0.47 0.81 
-
-
-0.19 0.58 
-0.20 0.58 
-
-
-0.20 0.58 
-0.22 0.58 
-
-
-0.34 0.67 
-0.36 0.68 
-
-
-0.36 0.68 
-0.38 0.69 
-
-
-0.14 0.45 
-0.15 0.47 
-
-
-0.15 0.47 
-0.16 0.49 
-
-
-0.17 0.54 
-0.18 0.56 
-
-
-0.094 0.32 
-0.10 0.35 
-
-
-0.10 0.35 
-0.11 0.37 
-
-
-0.11 0.37 
-0.12 0.39 
-
-
-0.12 0.39 
-0.12 0.41 
-
-
-0.12 0.41 
-0.13 0.43 
-
-
-0.13 0.43 
-0.14 0.45 
-
-
-0.38 0.69 
-0.38 0.70 
-
-
-0.38 0.70 
-0.39 0.71 
-
-
-0.055 0.21 
-0.059 0.22 
-
-
-0.059 0.22 
-0.062 0.23 
-
-
-0.062 0.23 
-0.066 0.25 
-
-
-0.066 0.25 
-0.070 0.26 
-
-
-0.070 0.26 
-0.074 0.27 
-
-
-0.074 0.27 
-0.078 0.28 
-
-
-0.078 0.28 
-0.082 0.29 
-
-
-0.082 0.29 
-0.086 0.30 
-
-
-0.086 0.30 
-0.090 0.31 
-
-
-0.090 0.31 
-0.094 0.32 
-
-
-0.16 0.49 
-0.16 0.50 
-
-
-0.16 0.50 
-0.16 0.51 
-
-
-0.16 0.51 
-0.17 0.53 
-
-
-0.17 0.53 
-0.17 0.54 
-
-
-0.18 0.56 
-0.18 0.57 
-
-
-0.18 0.57 
-0.19 0.58 
-
-
-0.0039 0.024 
-0.0059 0.034 
-
-
-0.0059 0.034 
-0.0078 0.043 
-
-
-0.0078 0.043 
-0.0098 0.052 
-
-
-0.0098 0.052 
-0.012 0.060 
-
-
-0.012 0.060 
-0.014 0.068 
-
-
-0.014 0.068 
-0.016 0.076 
-
-
-0.016 0.076 
-0.018 0.084 
-
-
-0.018 0.084 
-0.020 0.092 
-
-
-0.020 0.092 
-0.021 0.099 
-
-
-0.021 0.099 
-0.023 0.11 
-
-
-0.023 0.11 
-0.025 0.11 
-
-
-0.025 0.11 
-0.027 0.12 
-
-
-0.0 0.0 
-0.0020 0.013 
-
-
-0.0020 0.013 
-0.0039 0.024 
-
-
-0.035 0.15 
-0.037 0.16 
-
-
-0.037 0.16 
-0.039 0.16 
-
-
-0.039 0.16 
-0.041 0.17 
-
-
-0.041 0.17 
-0.043 0.17 
-
-
-0.043 0.17 
-0.045 0.18 
-
-
-0.045 0.18 
-0.047 0.19 
-
-
-0.047 0.19 
-0.049 0.19 
-
-
-0.049 0.19 
-0.051 0.20 
-
-
-0.051 0.20 
-0.053 0.21 
-
-
-0.053 0.21 
-0.055 0.21 
-
-
-0.027 0.12 
-0.028 0.12 
-
-
-0.028 0.12 
-0.029 0.11 
-
-
-0.029 0.11 
-0.030 0.14 
-
-
-0.030 0.14 
-0.031 0.16 
-
-
-0.031 0.16 
-0.032 0.14 
-
-
-0.032 0.14 
-0.033 0.11 
-
-
-0.033 0.11 
-0.034 0.15 
-
-
-0.034 0.15 
-0.035 0.15 
-
-
-DEAL::
-DEAL::Realization 8:
-DEAL:cg::Starting value 36.
-DEAL:cg::Convergence step 2 value 0.16
-DEAL:cg::Starting value 3.9
-DEAL:cg::Convergence step 2 value 0.015
-DEAL:cg::Starting value 1.8
-DEAL:cg::Convergence step 2 value 0.0031
-DEAL:cg::Starting value 0.69
-DEAL:cg::Convergence step 2 value 0.0026
-DEAL:cg::Starting value 4.7
-DEAL:cg::Convergence step 2 value 0.0085
-DEAL::   Energy: 0.25
-DEAL:cg::Starting value 2.9
-DEAL:cg::Convergence step 2 value 0.011
-DEAL:cg::Starting value 0.63
-DEAL:cg::Convergence step 3 value 0.00052
-DEAL:cg::Starting value 1.6
-DEAL:cg::Convergence step 2 value 0.0062
-DEAL:cg::Starting value 0.43
-DEAL:cg::Convergence step 3 value 0.00042
-DEAL:cg::Starting value 0.31
-DEAL:cg::Convergence step 3 value 0.00030
-DEAL::   Energy: 0.18
-DEAL:cg::Starting value 1.3
-DEAL:cg::Convergence step 2 value 0.0060
-DEAL:cg::Starting value 0.73
-DEAL:cg::Convergence step 2 value 0.0048
-DEAL:cg::Starting value 0.78
-DEAL:cg::Convergence step 2 value 0.0042
-DEAL:cg::Starting value 0.57
-DEAL:cg::Convergence step 2 value 0.0036
-DEAL:cg::Starting value 0.63
-DEAL:cg::Convergence step 2 value 0.0032
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 0.84
-DEAL:cg::Convergence step 2 value 0.0049
-DEAL:cg::Starting value 0.50
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.57
-DEAL:cg::Convergence step 2 value 0.0039
-DEAL:cg::Starting value 0.45
-DEAL:cg::Convergence step 2 value 0.0035
-DEAL:cg::Starting value 0.55
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 0.60
-DEAL:cg::Convergence step 2 value 0.0050
-DEAL:cg::Starting value 0.38
-DEAL:cg::Convergence step 2 value 0.0037
-DEAL:cg::Starting value 0.44
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL:cg::Starting value 0.37
-DEAL:cg::Convergence step 2 value 0.0030
-DEAL:cg::Starting value 0.42
-DEAL:cg::Convergence step 2 value 0.0033
-DEAL::   Energy: 0.15
-DEAL:cg::Starting value 0.44
-DEAL:cg::Convergence step 2 value 0.0042
-DEAL:cg::Starting value 0.32
-DEAL:cg::Convergence step 3 value 0.00045
-DEAL:cg::Starting value 0.33
-DEAL:cg::Convergence step 3 value 0.00045
-DEAL:cg::Starting value 0.27
-DEAL:cg::Convergence step 3 value 0.00042
-DEAL:cg::Starting value 1.2
-DEAL:cg::Convergence step 2 value 0.0087
-DEAL::   Energy: 8.1e+02
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.25 0.62 
-0.31 0.66 
-
-
-0.31 0.66 
-0.38 0.74 
-
-
-0.38 0.74 
-0.44 0.75 
-
-
-0.44 0.75 
-0.50 0.82 
-
-
-0.50 0.82 
-0.56 0.86 
-
-
-0.56 0.86 
-0.62 0.90 
-
-
-0.69 0.85 
-0.75 0.90 
-
-
-0.75 0.90 
-0.81 0.96 
-
-
-0.81 0.96 
-0.88 0.92 
-
-
-0.88 0.92 
-0.94 0.95 
-
-
-0.94 0.95 
-1.0 1.0 
-
-
-0.62 0.90 
-0.66 0.87 
-
-
-0.66 0.87 
-0.69 0.85 
-
-
-0.16 0.43 
-0.17 0.46 
-
-
-0.17 0.46 
-0.19 0.49 
-
-
-0.19 0.49 
-0.20 0.53 
-
-
-0.22 0.56 
-0.23 0.59 
-
-
-0.23 0.59 
-0.25 0.62 
-
-
-0.12 0.34 
-0.12 0.36 
-
-
-0.12 0.36 
-0.13 0.37 
-
-
-0.13 0.37 
-0.14 0.39 
-
-
-0.14 0.39 
-0.15 0.41 
-
-
-0.15 0.41 
-0.16 0.43 
-
-
-0.20 0.53 
-0.21 0.54 
-
-
-0.21 0.54 
-0.22 0.56 
-
-
-0.0 0.0 
-0.0039 0.020 
-
-
-0.035 0.13 
-0.039 0.14 
-
-
-0.039 0.14 
-0.043 0.15 
-
-
-0.043 0.15 
-0.047 0.16 
-
-
-0.047 0.16 
-0.051 0.17 
-
-
-0.051 0.17 
-0.055 0.18 
-
-
-0.055 0.18 
-0.059 0.20 
-
-
-0.059 0.20 
-0.062 0.21 
-
-
-0.062 0.21 
-0.066 0.22 
-
-
-0.066 0.22 
-0.070 0.23 
-
-
-0.074 0.24 
-0.078 0.25 
-
-
-0.10 0.30 
-0.11 0.31 
-
-
-0.11 0.31 
-0.11 0.32 
-
-
-0.11 0.32 
-0.11 0.33 
-
-
-0.11 0.33 
-0.12 0.34 
-
-
-0.078 0.25 
-0.082 0.26 
-
-
-0.082 0.26 
-0.086 0.26 
-
-
-0.086 0.26 
-0.090 0.27 
-
-
-0.090 0.27 
-0.094 0.28 
-
-
-0.094 0.28 
-0.098 0.29 
-
-
-0.098 0.29 
-0.10 0.30 
-
-
-0.0039 0.020 
-0.0059 0.030 
-
-
-0.0059 0.030 
-0.0078 0.037 
-
-
-0.0078 0.037 
-0.0098 0.045 
-
-
-0.0098 0.045 
-0.012 0.053 
-
-
-0.012 0.053 
-0.014 0.060 
-
-
-0.014 0.060 
-0.016 0.067 
-
-
-0.016 0.067 
-0.018 0.074 
-
-
-0.018 0.074 
-0.020 0.080 
-
-
-0.020 0.080 
-0.021 0.087 
-
-
-0.021 0.087 
-0.023 0.093 
-
-
-0.023 0.093 
-0.025 0.10 
-
-
-0.025 0.10 
-0.027 0.11 
-
-
-0.027 0.11 
-0.029 0.11 
-
-
-0.029 0.11 
-0.031 0.12 
-
-
-0.031 0.12 
-0.033 0.12 
-
-
-0.033 0.12 
-0.035 0.13 
-
-
-0.070 0.23 
-0.072 0.20 
-
-
-0.072 0.20 
-0.074 0.24 
-
-
-DEAL::
-DEAL::Realization 9:
-DEAL:cg::Starting value 12.
-DEAL:cg::Convergence step 2 value 0.060
-DEAL:cg::Starting value 1.6
-DEAL:cg::Convergence step 2 value 0.0057
-DEAL:cg::Starting value 1.5
-DEAL:cg::Convergence step 2 value 0.0021
-DEAL:cg::Starting value 0.64
-DEAL:cg::Convergence step 2 value 0.0020
-DEAL:cg::Starting value 0.47
-DEAL:cg::Convergence step 2 value 0.0016
-DEAL::   Energy: 0.21
-DEAL:cg::Starting value 2.2
-DEAL:cg::Convergence step 2 value 0.0043
-DEAL:cg::Starting value 0.31
-DEAL:cg::Convergence step 2 value 0.0019
-DEAL:cg::Starting value 0.88
-DEAL:cg::Convergence step 2 value 0.0028
-DEAL:cg::Starting value 0.20
-DEAL:cg::Convergence step 2 value 0.0012
-DEAL:cg::Starting value 0.42
-DEAL:cg::Convergence step 2 value 0.0020
-DEAL::   Energy: 0.17
-DEAL:cg::Starting value 1.2
-DEAL:cg::Convergence step 2 value 0.0023
-DEAL:cg::Starting value 0.53
-DEAL:cg::Convergence step 2 value 0.0022
-DEAL:cg::Starting value 0.53
-DEAL:cg::Convergence step 2 value 0.0016
-DEAL:cg::Starting value 0.42
-DEAL:cg::Convergence step 2 value 0.0015
-DEAL:cg::Starting value 0.44
-DEAL:cg::Convergence step 2 value 0.0014
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 0.75
-DEAL:cg::Convergence step 2 value 0.0020
-DEAL:cg::Starting value 0.46
-DEAL:cg::Convergence step 2 value 0.0017
-DEAL:cg::Starting value 0.47
-DEAL:cg::Convergence step 2 value 0.0025
-DEAL:cg::Starting value 0.40
-DEAL:cg::Convergence step 2 value 0.0020
-DEAL:cg::Starting value 0.43
-DEAL:cg::Convergence step 2 value 0.0025
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 0.55
-DEAL:cg::Convergence step 2 value 0.0036
-DEAL:cg::Starting value 0.33
-DEAL:cg::Convergence step 2 value 0.0015
-DEAL:cg::Starting value 0.36
-DEAL:cg::Convergence step 2 value 0.0019
-DEAL:cg::Starting value 0.31
-DEAL:cg::Convergence step 2 value 0.0015
-DEAL:cg::Starting value 0.34
-DEAL:cg::Convergence step 2 value 0.0015
-DEAL::   Energy: 0.16
-DEAL:cg::Starting value 0.37
-DEAL:cg::Convergence step 2 value 0.0032
-DEAL:cg::Starting value 0.27
-DEAL:cg::Convergence step 3 value 0.00028
-DEAL:cg::Starting value 0.28
-DEAL:cg::Convergence step 2 value 0.0020
-DEAL:cg::Starting value 0.26
-DEAL:cg::Convergence step 2 value 0.0018
-DEAL:cg::Starting value 2.5
-DEAL:cg::Convergence step 2 value 0.013
-DEAL::   Energy: 1.9e+04
-# This file was generated by the deal.II library.
-
-
-#
-# For a description of the GNUPLOT format see the GNUPLOT manual.
-#
-# <x> <solution> 
-0.25 0.63 
-0.31 0.71 
-
-
-0.31 0.71 
-0.38 0.66 
-
-
-0.38 0.66 
-0.44 0.73 
-
-
-0.44 0.73 
-0.50 0.77 
-
-
-0.50 0.77 
-0.56 0.79 
-
-
-0.56 0.79 
-0.62 0.79 
-
-
-0.62 0.79 
-0.69 0.84 
-
-
-0.69 0.84 
-0.75 0.91 
-
-
-0.75 0.91 
-0.81 0.91 
-
-
-0.88 0.98 
-0.94 0.99 
-
-
-0.94 0.99 
-1.0 1.0 
-
-
-0.81 0.91 
-0.84 0.94 
-
-
-0.84 0.94 
-0.88 0.98 
-
-
-0.16 0.42 
-0.17 0.46 
-
-
-0.17 0.46 
-0.19 0.49 
-
-
-0.12 0.34 
-0.12 0.35 
-
-
-0.12 0.35 
-0.13 0.37 
-
-
-0.13 0.37 
-0.14 0.39 
-
-
-0.14 0.39 
-0.15 0.41 
-
-
-0.15 0.41 
-0.16 0.42 
-
-
-0.19 0.49 
-0.20 0.51 
-
-
-0.20 0.51 
-0.20 0.52 
-
-
-0.20 0.52 
-0.21 0.54 
-
-
-0.21 0.54 
-0.22 0.56 
-
-
-0.22 0.56 
-0.23 0.58 
-
-
-0.23 0.58 
-0.23 0.59 
-
-
-0.23 0.59 
-0.24 0.61 
-
-
-0.24 0.61 
-0.25 0.63 
-
-
-0.0 0.0 
-0.0039 0.020 
-
-
-0.023 0.092 
-0.027 0.10 
-
-
-0.027 0.10 
-0.031 0.12 
-
-
-0.031 0.12 
-0.035 0.13 
-
-
-0.035 0.13 
-0.039 0.14 
-
-
-0.039 0.14 
-0.043 0.15 
-
-
-0.043 0.15 
-0.047 0.16 
-
-
-0.047 0.16 
-0.051 0.17 
-
-
-0.051 0.17 
-0.055 0.18 
-
-
-0.055 0.18 
-0.059 0.19 
-
-
-0.059 0.19 
-0.062 0.20 
-
-
-0.062 0.20 
-0.066 0.21 
-
-
-0.066 0.21 
-0.070 0.22 
-
-
-0.094 0.29 
-0.098 0.31 
-
-
-0.10 0.30 
-0.11 0.31 
-
-
-0.11 0.31 
-0.11 0.32 
-
-
-0.11 0.32 
-0.11 0.33 
-
-
-0.11 0.33 
-0.12 0.34 
-
-
-0.070 0.22 
-0.074 0.23 
-
-
-0.074 0.23 
-0.078 0.24 
-
-
-0.078 0.24 
-0.082 0.25 
-
-
-0.082 0.25 
-0.086 0.26 
-
-
-0.086 0.26 
-0.090 0.27 
-
-
-0.090 0.27 
-0.094 0.29 
-
-
-0.0039 0.020 
-0.0059 0.029 
-
-
-0.0059 0.029 
-0.0078 0.036 
-
-
-0.0078 0.036 
-0.0098 0.044 
-
-
-0.0098 0.044 
-0.012 0.052 
-
-
-0.012 0.052 
-0.014 0.059 
-
-
-0.014 0.059 
-0.016 0.066 
-
-
-0.016 0.066 
-0.018 0.072 
-
-
-0.018 0.072 
-0.020 0.079 
-
-
-0.020 0.079 
-0.021 0.086 
-
-
-0.021 0.086 
-0.023 0.092 
-
-
-0.098 0.31 
-0.10 0.25 
-
-
-0.10 0.25 
-0.10 0.30 
-
-
-DEAL::
diff --git a/tests/fail/vectors_boundary_rhs_hp_02.cc b/tests/fail/vectors_boundary_rhs_hp_02.cc
deleted file mode 100644 (file)
index ea77b3c..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2000 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// like deal.II/vectors_boundary_rhs_02, but for hp-objects. here, each hp-
-// object has only a single component, so we expect exactly the same output as
-// for the old test. vectors_boundary_rhs_hp_02_hp tests for different finite
-// elements
-
-
-#include <deal.II/base/function_lib.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_system.h>
-#include <deal.II/fe/mapping_q.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/hp/fe_collection.h>
-#include <deal.II/hp/mapping_collection.h>
-#include <deal.II/hp/q_collection.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include <deal.II/numerics/vector_tools.h>
-
-#include "../tests.h"
-
-
-
-template <int dim>
-class MySquareFunction : public Function<dim>
-{
-public:
-  MySquareFunction()
-    : Function<dim>(dim)
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component) const
-  {
-    return (component + 1) * p.square();
-  }
-
-  virtual void
-  vector_value(const Point<dim> &p, Vector<double> &values) const
-  {
-    for (unsigned int d = 0; d < dim; ++d)
-      values(d) = value(p, d);
-  }
-};
-
-
-
-template <int dim>
-void
-check()
-{
-  Triangulation<dim> tr;
-  if (dim == 2)
-    GridGenerator::hyper_ball(tr, Point<dim>(), 1);
-  else
-    GridGenerator::hyper_cube(tr, -1, 1);
-  tr.refine_global(1);
-  tr.begin_active()->set_refine_flag();
-  tr.execute_coarsening_and_refinement();
-  if (dim == 1)
-    tr.refine_global(2);
-
-  // create a system element composed
-  // of one Q1 and one Q2 element
-  hp::FECollection<dim> element;
-  for (unsigned int i = 1; i < 7 - dim; ++i)
-    element.push_back(FE_RaviartThomas<dim>(i - 1));
-  DoFHandler<dim> dof(tr);
-  for (typename DoFHandler<dim>::active_cell_iterator cell = dof.begin_active();
-       cell != dof.end();
-       ++cell)
-    cell->set_active_fe_index(Testing::rand() % element.size());
-
-  dof.distribute_dofs(element);
-
-  // use a more complicated mapping
-  // of the domain and a quadrature
-  // formula suited to the elements
-  // we have here
-  hp::MappingCollection<dim> mapping;
-  for (unsigned int i = 1; i < 7 - dim; ++i)
-    mapping.push_back(MappingQ<dim>(i + 1));
-
-  hp::QCollection<dim - 1> quadrature;
-  for (unsigned int i = 1; i < 7 - dim; ++i)
-    quadrature.push_back(QGauss<dim - 1>(3 + i));
-
-  Vector<double> rhs(dof.n_dofs());
-  VectorTools::create_boundary_right_hand_side(dof,
-                                               quadrature,
-                                               MySquareFunction<dim>(),
-                                               rhs);
-  for (unsigned int i = 0; i < rhs.size(); ++i)
-    deallog << rhs(i) << std::endl;
-}
-
-
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  logfile.precision(4);
-  logfile.setf(std::ios::fixed);
-  deallog.attach(logfile);
-
-  deallog.push("2d");
-  check<2>();
-  deallog.pop();
-  deallog.push("3d");
-  check<3>();
-  deallog.pop();
-}
diff --git a/tests/fail/vectors_rhs_hp_02.cc b/tests/fail/vectors_rhs_hp_02.cc
deleted file mode 100644 (file)
index 20aa86d..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-// ---------------------------------------------------------------------
-//
-// Copyright (C) 2000 - 2020 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.md at
-// the top level directory of deal.II.
-//
-// ---------------------------------------------------------------------
-
-
-
-// like deal.II/vectors_rhs_hp_02, but for hp-objects. here, each hp-object has
-// only a single component, so we expect exactly the same output as for the old
-// test. vectors_rhs_hp_02_hp tests for different finite elements
-
-
-#include <deal.II/base/function_lib.h>
-#include <deal.II/base/quadrature_lib.h>
-
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/dofs/dof_tools.h>
-
-#include <deal.II/fe/fe_raviart_thomas.h>
-#include <deal.II/fe/fe_system.h>
-#include <deal.II/fe/mapping_q.h>
-
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/grid/tria.h>
-#include <deal.II/grid/tria_accessor.h>
-#include <deal.II/grid/tria_iterator.h>
-
-#include <deal.II/hp/fe_collection.h>
-#include <deal.II/hp/mapping_collection.h>
-#include <deal.II/hp/q_collection.h>
-
-#include <deal.II/lac/affine_constraints.h>
-#include <deal.II/lac/sparse_matrix.h>
-#include <deal.II/lac/vector.h>
-
-#include <deal.II/numerics/vector_tools.h>
-
-#include "../tests.h"
-
-
-
-template <int dim>
-class MySquareFunction : public Function<dim>
-{
-public:
-  MySquareFunction()
-    : Function<dim>(dim)
-  {}
-
-  virtual double
-  value(const Point<dim> &p, const unsigned int component) const
-  {
-    return (component + 1) * p.square();
-  }
-
-  virtual void
-  vector_value(const Point<dim> &p, Vector<double> &values) const
-  {
-    for (unsigned int d = 0; d < dim; ++d)
-      values(d) = value(p, d);
-  }
-};
-
-
-
-template <int dim>
-void
-check()
-{
-  Triangulation<dim> tr;
-  if (dim == 2)
-    GridGenerator::hyper_ball(tr, Point<dim>(), 1);
-  else
-    GridGenerator::hyper_cube(tr, -1, 1);
-  tr.refine_global(1);
-  tr.begin_active()->set_refine_flag();
-  tr.execute_coarsening_and_refinement();
-  if (dim == 1)
-    tr.refine_global(2);
-
-  // create a system element composed
-  // of one Q1 and one Q2 element
-  hp::FECollection<dim> element;
-  for (unsigned int i = 1; i < 7 - dim; ++i)
-    element.push_back(FE_RaviartThomas<dim>(i - 1));
-  DoFHandler<dim> dof(tr);
-  for (typename DoFHandler<dim>::active_cell_iterator cell = dof.begin_active();
-       cell != dof.end();
-       ++cell)
-    cell->set_active_fe_index(Testing::rand() % element.size());
-
-  dof.distribute_dofs(element);
-
-  // use a more complicated mapping
-  // of the domain and a quadrature
-  // formula suited to the elements
-  // we have here
-  hp::MappingCollection<dim> mapping;
-  for (unsigned int i = 1; i < 7 - dim; ++i)
-    mapping.push_back(MappingQ<dim>(i + 1));
-
-  hp::QCollection<dim> quadrature;
-  for (unsigned int i = 1; i < 7 - dim; ++i)
-    quadrature.push_back(QGauss<dim>(3 + i));
-
-  Vector<double> rhs(dof.n_dofs());
-  VectorTools::create_right_hand_side(dof,
-                                      quadrature,
-                                      MySquareFunction<dim>(),
-                                      rhs);
-  for (unsigned int i = 0; i < rhs.size(); ++i)
-    deallog << rhs(i) << std::endl;
-}
-
-
-
-int
-main()
-{
-  std::ofstream logfile("output");
-  logfile.precision(4);
-  logfile.setf(std::ios::fixed);
-  deallog.attach(logfile);
-
-  deallog.push("2d");
-  check<2>();
-  deallog.pop();
-  deallog.push("3d");
-  check<3>();
-  deallog.pop();
-}

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.