--- /dev/null
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2005 - 2017 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+
+#include "../tests.h"
+#include <deal.II/base/quadrature_lib.h>
+#include <deal.II/base/logstream.h>
+#include <deal.II/grid/tria.h>
+#include <deal.II/grid/tria_iterator.h>
+#include <deal.II/grid/grid_generator.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/lac/constraint_matrix.h>
+#include <deal.II/lac/vector.h>
+#include <deal.II/fe/fe_q.h>
+#include <deal.II/fe/fe_dgq.h>
+#include <deal.II/fe/fe_dgp.h>
+#include <deal.II/fe/fe_nedelec.h>
+#include <deal.II/fe/fe_system.h>
+#include <deal.II/fe/fe_tools.h>
+
+#include <fstream>
+#include <iomanip>
+#include <iomanip>
+#include <memory>
+#include <string>
+
+// check
+// FETools::compute_projection_from_quadrature_points_matrix
+// we put this into the fe_tools_common framework for simplicity, but
+// in fact we ignore the second FE it passes to the check_this() function
+// and we can only test as well for scalar elements, since this is all
+// the function presently supports.
+//
+// this test makes sure that projecting onto a finite element space
+// sufficiently fine to hold the quadrature point data, then interpolating
+// back to the quadrature points is an identity operation
+//
+// This is the same as fe_tools_cpfqpm_02 but testing dim<spacedim
+
+// output some indicators for a given matrix. we don't write out the
+// entire matrix since this would blow up our output files beyond
+// reasonable limits
+void
+output_matrix (const FullMatrix<double> &m)
+{
+ if ((m.m() == 0) || (m.n() == 0))
+ {
+ deallog << "(Empty matrix)" << std::endl;
+ return;
+ }
+
+ deallog << m.l1_norm() << ' ' << m.linfty_norm()
+ << std::endl;
+ if (m.m() == m.n())
+ deallog << m.frobenius_norm() << std::endl;
+
+ for (unsigned int i=0; i<std::min(m.m(),m.n()); ++i)
+ deallog << m(i,i) << ' ' << m(i,std::min(m.m(),m.n())-i-1) << ' ';
+ deallog << std::endl;
+}
+
+
+
+template <int dim, int spacedim>
+void
+check_this (const FiniteElement<dim, spacedim> &fe,
+ const FiniteElement<dim, spacedim> &/*fe2*/)
+{
+ // only check if both elements have
+ // support points. otherwise,
+ // interpolation doesn't really
+ // work
+ if (fe.n_components() != 1)
+ return;
+
+ // ignore this check if this fe has already
+ // been treated
+ static std::set<std::string> already_checked;
+ if (already_checked.find(fe.get_name()) != already_checked.end())
+ return;
+ already_checked.insert (fe.get_name());
+
+
+ // test with the same quadrature formulas
+ // of a degree that is high enough to
+ // exactly capture the data
+ QGauss<dim> q_lhs(fe.degree+1);
+ QGauss<dim> q_rhs(fe.degree+1);
+
+ // this test can only succeed if there are
+ // at least as many degrees of freedom in
+ // the finite element as there are
+ // quadrature points
+ if (fe.dofs_per_cell < q_rhs.size())
+ return;
+
+ deallog << "dofs_per_cell=" << fe.dofs_per_cell
+ << ", n_q_points=" << q_rhs.size()
+ << std::endl;
+
+ FullMatrix<double> X (fe.dofs_per_cell,
+ q_rhs.size());
+
+ FETools::compute_projection_from_quadrature_points_matrix (fe,
+ q_lhs, q_rhs,
+ X);
+
+ // then compute the matrix that
+ // interpolates back to the quadrature
+ // points
+ FullMatrix<double> I_q (q_rhs.size(), fe.dofs_per_cell);
+ FETools::compute_interpolation_to_quadrature_points_matrix (fe, q_rhs,
+ I_q);
+
+ FullMatrix<double> product (q_rhs.size(),
+ q_rhs.size());
+ I_q.mmult (product, X);
+
+ // the product should be the identity
+ // matrix now. make sure that this is
+ // indeed the case
+ for (unsigned int i=0; i<product.m(); ++i)
+ product(i,i) -= 1;
+
+ output_matrix (product);
+ AssertThrow (product.frobenius_norm() < 1e-10, ExcInternalError());
+}
+
+
+template <int dim, int spacedim>
+void
+check (const FiniteElement<dim, spacedim> &fe1,
+ const FiniteElement<dim, spacedim> &fe2,
+ const std::string &name)
+{
+ deallog << "Checking " << name
+ << " in " << dim << "d and spacedim " << spacedim
+ << std::endl;
+
+ // call main function in .cc files
+ check_this (fe1, fe2);
+}
+
+
+
+
+
+#define CHECK(EL1,deg1,EL2,deg2,dim,spacedim)\
+ { FE_ ## EL1<dim,spacedim> fe1(deg1); \
+ FE_ ## EL2<dim,spacedim> fe2(deg2); \
+ check(fe1, fe2, #EL1 #deg1 " against " #EL2 #deg2); \
+ check(fe2, fe1, #EL2 #deg2 " against " #EL1 #deg1); \
+ }
+
+#define CHECK_ALL(EL1,deg1,EL2,deg2)\
+ { CHECK(EL1,deg1,EL2,deg2,1,2); \
+ CHECK(EL1,deg1,EL2,deg2,1,3); \
+ CHECK(EL1,deg1,EL2,deg2,2,3); \
+ }
+
+
+int
+main()
+{
+ try
+ {
+ std::ofstream logfile("output");
+ deallog << std::setprecision (8);
+ deallog.attach(logfile);
+ deallog.depth_console(0);
+
+ CHECK_ALL(Q,1,Q,1);
+ CHECK_ALL(Q,1,Q,2);
+ CHECK_ALL(Q,1,Q,3);
+ CHECK_ALL(Q,2,Q,2);
+ CHECK_ALL(Q,2,Q,3);
+ CHECK_ALL(Q,3,Q,3);
+
+ CHECK_ALL(DGQ,0,DGQ,0);
+ CHECK_ALL(DGQ,0,DGQ,1);
+ CHECK_ALL(DGQ,0,DGQ,2);
+ CHECK_ALL(DGQ,0,DGQ,4);
+ CHECK_ALL(DGQ,1,DGQ,1);
+ CHECK_ALL(DGQ,1,DGQ,3);
+ CHECK_ALL(DGQ,2,DGQ,2);
+ CHECK_ALL(DGQ,2,DGQ,2);
+ CHECK_ALL(DGQ,2,DGQ,4);
+ CHECK_ALL(DGQ,3,DGQ,3);
+
+ CHECK_ALL(DGP,0,DGP,0);
+ CHECK_ALL(DGP,0,DGP,1);
+ CHECK_ALL(DGP,0,DGP,2);
+ CHECK_ALL(DGP,0,DGP,4);
+ CHECK_ALL(DGP,1,DGP,1);
+ CHECK_ALL(DGP,1,DGP,3);
+ CHECK_ALL(DGP,2,DGP,2);
+ CHECK_ALL(DGP,2,DGP,2);
+ CHECK_ALL(DGP,2,DGP,4);
+ CHECK_ALL(DGP,3,DGP,3);
+
+ return 0;
+ }
+ catch (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;
+ }
+}
--- /dev/null
+
+DEAL::Checking Q1 against Q1 in 1d and spacedim 2
+DEAL::dofs_per_cell=2, n_q_points=2
+DEAL::1.1102230e-16 1.1102230e-16
+DEAL::1.5700925e-16
+DEAL::0.0000000 1.1102230e-16 0.0000000 1.1102230e-16
+DEAL::Checking Q1 against Q1 in 1d and spacedim 2
+DEAL::Checking Q1 against Q1 in 1d and spacedim 3
+DEAL::dofs_per_cell=2, n_q_points=2
+DEAL::1.1102230e-16 1.1102230e-16
+DEAL::1.5700925e-16
+DEAL::0.0000000 1.1102230e-16 0.0000000 1.1102230e-16
+DEAL::Checking Q1 against Q1 in 1d and spacedim 3
+DEAL::Checking Q1 against Q1 in 2d and spacedim 3
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::6.8348105e-16 6.0715322e-16
+DEAL::6.0194655e-16
+DEAL::-2.2204460e-16 6.9388939e-17 -3.3306691e-16 8.3266727e-17 2.2204460e-16 1.1102230e-16 0.0000000 1.5265567e-16
+DEAL::Checking Q1 against Q1 in 2d and spacedim 3
+DEAL::Checking Q1 against Q2 in 1d and spacedim 2
+DEAL::Checking Q2 against Q1 in 1d and spacedim 2
+DEAL::dofs_per_cell=3, n_q_points=3
+DEAL::2.2204460e-16 2.2204460e-16
+DEAL::3.8459254e-16
+DEAL::2.2204460e-16 0.0000000 2.2204460e-16 2.2204460e-16 2.2204460e-16 0.0000000
+DEAL::Checking Q1 against Q2 in 1d and spacedim 3
+DEAL::Checking Q2 against Q1 in 1d and spacedim 3
+DEAL::dofs_per_cell=3, n_q_points=3
+DEAL::2.2204460e-16 2.2204460e-16
+DEAL::3.8459254e-16
+DEAL::2.2204460e-16 0.0000000 2.2204460e-16 2.2204460e-16 2.2204460e-16 0.0000000
+DEAL::Checking Q1 against Q2 in 2d and spacedim 3
+DEAL::Checking Q2 against Q1 in 2d and spacedim 3
+DEAL::dofs_per_cell=9, n_q_points=9
+DEAL::8.0560558e-16 8.3285331e-16
+DEAL::7.7012237e-16
+DEAL::-1.1102230e-16 3.7820330e-17 0.0000000 -1.2767565e-16 0.0000000 4.7210777e-17 -4.4408921e-16 -7.7715612e-17 0.0000000 0.0000000 0.0000000 -7.2164497e-17 0.0000000 4.7327734e-17 0.0000000 -1.6098234e-16 4.4408921e-16 2.8030892e-17
+DEAL::Checking Q1 against Q3 in 1d and spacedim 2
+DEAL::Checking Q3 against Q1 in 1d and spacedim 2
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::6.4965394e-16 8.6562701e-16
+DEAL::7.2411823e-16
+DEAL::-5.5511151e-16 3.2959746e-17 -1.1102230e-16 -1.1102230e-16 -2.2204460e-16 -8.3266727e-17 -2.2204460e-16 1.5612511e-17
+DEAL::Checking Q1 against Q3 in 1d and spacedim 3
+DEAL::Checking Q3 against Q1 in 1d and spacedim 3
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::6.4965394e-16 8.6562701e-16
+DEAL::7.2411823e-16
+DEAL::-5.5511151e-16 3.2959746e-17 -1.1102230e-16 -1.1102230e-16 -2.2204460e-16 -8.3266727e-17 -2.2204460e-16 1.5612511e-17
+DEAL::Checking Q1 against Q3 in 2d and spacedim 3
+DEAL::Checking Q3 against Q1 in 2d and spacedim 3
+DEAL::dofs_per_cell=16, n_q_points=16
+DEAL::1.4809117e-15 1.7010183e-15
+DEAL::1.6019149e-15
+DEAL::-3.3306691e-16 4.0657581e-18 -2.2204460e-16 -2.2551405e-17 2.2204460e-16 -1.7780916e-17 -3.3306691e-16 -5.0415401e-17 0.0000000 5.2041704e-18 -5.5511151e-16 -2.0816682e-17 -2.2204460e-16 -2.4286129e-17 0.0000000 -1.3444107e-17 0.0000000 -3.9031278e-18 -4.4408921e-16 -1.7347235e-17 -2.2204460e-16 -1.0408341e-17 0.0000000 2.4286129e-17 -1.1102230e-16 -4.7840421e-17 -2.2204460e-16 -9.9746600e-18 0.0000000 1.7347235e-18 6.6613381e-16 -4.4343869e-17
+DEAL::Checking Q2 against Q2 in 1d and spacedim 2
+DEAL::Checking Q2 against Q2 in 1d and spacedim 2
+DEAL::Checking Q2 against Q2 in 1d and spacedim 3
+DEAL::Checking Q2 against Q2 in 1d and spacedim 3
+DEAL::Checking Q2 against Q2 in 2d and spacedim 3
+DEAL::Checking Q2 against Q2 in 2d and spacedim 3
+DEAL::Checking Q2 against Q3 in 1d and spacedim 2
+DEAL::Checking Q3 against Q2 in 1d and spacedim 2
+DEAL::Checking Q2 against Q3 in 1d and spacedim 3
+DEAL::Checking Q3 against Q2 in 1d and spacedim 3
+DEAL::Checking Q2 against Q3 in 2d and spacedim 3
+DEAL::Checking Q3 against Q2 in 2d and spacedim 3
+DEAL::Checking Q3 against Q3 in 1d and spacedim 2
+DEAL::Checking Q3 against Q3 in 1d and spacedim 2
+DEAL::Checking Q3 against Q3 in 1d and spacedim 3
+DEAL::Checking Q3 against Q3 in 1d and spacedim 3
+DEAL::Checking Q3 against Q3 in 2d and spacedim 3
+DEAL::Checking Q3 against Q3 in 2d and spacedim 3
+DEAL::Checking DGQ0 against DGQ0 in 1d and spacedim 2
+DEAL::dofs_per_cell=1, n_q_points=1
+DEAL::0.0000000 0.0000000
+DEAL::0.0000000
+DEAL::0.0000000 0.0000000
+DEAL::Checking DGQ0 against DGQ0 in 1d and spacedim 2
+DEAL::Checking DGQ0 against DGQ0 in 1d and spacedim 3
+DEAL::dofs_per_cell=1, n_q_points=1
+DEAL::0.0000000 0.0000000
+DEAL::0.0000000
+DEAL::0.0000000 0.0000000
+DEAL::Checking DGQ0 against DGQ0 in 1d and spacedim 3
+DEAL::Checking DGQ0 against DGQ0 in 2d and spacedim 3
+DEAL::dofs_per_cell=1, n_q_points=1
+DEAL::0.0000000 0.0000000
+DEAL::0.0000000
+DEAL::0.0000000 0.0000000
+DEAL::Checking DGQ0 against DGQ0 in 2d and spacedim 3
+DEAL::Checking DGQ0 against DGQ1 in 1d and spacedim 2
+DEAL::Checking DGQ1 against DGQ0 in 1d and spacedim 2
+DEAL::dofs_per_cell=2, n_q_points=2
+DEAL::1.1102230e-16 1.1102230e-16
+DEAL::1.5700925e-16
+DEAL::0.0000000 1.1102230e-16 0.0000000 1.1102230e-16
+DEAL::Checking DGQ0 against DGQ1 in 1d and spacedim 3
+DEAL::Checking DGQ1 against DGQ0 in 1d and spacedim 3
+DEAL::dofs_per_cell=2, n_q_points=2
+DEAL::1.1102230e-16 1.1102230e-16
+DEAL::1.5700925e-16
+DEAL::0.0000000 1.1102230e-16 0.0000000 1.1102230e-16
+DEAL::Checking DGQ0 against DGQ1 in 2d and spacedim 3
+DEAL::Checking DGQ1 against DGQ0 in 2d and spacedim 3
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::6.8348105e-16 6.0715322e-16
+DEAL::6.0194655e-16
+DEAL::-2.2204460e-16 6.9388939e-17 -3.3306691e-16 8.3266727e-17 2.2204460e-16 1.1102230e-16 0.0000000 1.5265567e-16
+DEAL::Checking DGQ0 against DGQ2 in 1d and spacedim 2
+DEAL::Checking DGQ2 against DGQ0 in 1d and spacedim 2
+DEAL::dofs_per_cell=3, n_q_points=3
+DEAL::2.4980018e-16 2.6367797e-16
+DEAL::3.8609193e-16
+DEAL::2.2204460e-16 2.7755576e-17 2.2204460e-16 2.2204460e-16 2.2204460e-16 0.0000000
+DEAL::Checking DGQ0 against DGQ2 in 1d and spacedim 3
+DEAL::Checking DGQ2 against DGQ0 in 1d and spacedim 3
+DEAL::dofs_per_cell=3, n_q_points=3
+DEAL::2.4980018e-16 2.6367797e-16
+DEAL::3.8609193e-16
+DEAL::2.2204460e-16 2.7755576e-17 2.2204460e-16 2.2204460e-16 2.2204460e-16 0.0000000
+DEAL::Checking DGQ0 against DGQ2 in 2d and spacedim 3
+DEAL::Checking DGQ2 against DGQ0 in 2d and spacedim 3
+DEAL::dofs_per_cell=9, n_q_points=9
+DEAL::5.1967837e-16 5.0201419e-16
+DEAL::5.4101618e-16
+DEAL::-1.1102230e-16 2.4286129e-17 -2.2204460e-16 0.0000000 -1.1102230e-16 6.9388939e-17 0.0000000 -5.5511151e-17 0.0000000 0.0000000 2.2204460e-16 -1.1102230e-16 -1.1102230e-16 4.1633363e-17 0.0000000 2.7755576e-17 -1.1102230e-16 5.5511151e-17
+DEAL::Checking DGQ0 against DGQ4 in 1d and spacedim 2
+DEAL::Checking DGQ4 against DGQ0 in 1d and spacedim 2
+DEAL::dofs_per_cell=5, n_q_points=5
+DEAL::5.0653925e-16 4.0939474e-16
+DEAL::4.1721835e-16
+DEAL::2.2204460e-16 4.8572257e-17 0.0000000 -6.5919492e-17 0.0000000 0.0000000 -1.1102230e-16 -5.8980598e-17 0.0000000 4.8572257e-17
+DEAL::Checking DGQ0 against DGQ4 in 1d and spacedim 3
+DEAL::Checking DGQ4 against DGQ0 in 1d and spacedim 3
+DEAL::dofs_per_cell=5, n_q_points=5
+DEAL::5.0653925e-16 4.0939474e-16
+DEAL::4.1721835e-16
+DEAL::2.2204460e-16 4.8572257e-17 0.0000000 -6.5919492e-17 0.0000000 0.0000000 -1.1102230e-16 -5.8980598e-17 0.0000000 4.8572257e-17
+DEAL::Checking DGQ0 against DGQ4 in 2d and spacedim 3
+DEAL::Checking DGQ4 against DGQ0 in 2d and spacedim 3
+DEAL::dofs_per_cell=25, n_q_points=25
+DEAL::1.8003635e-15 2.3892224e-15
+DEAL::1.9039663e-15
+DEAL::-5.5511151e-16 2.4286129e-17 0.0000000 1.9515639e-17 0.0000000 -1.3877788e-17 -5.5511151e-16 -8.6736174e-18 -4.4408921e-16 -8.2399365e-18 -3.3306691e-16 5.4210109e-18 -3.3306691e-16 -2.2226145e-17 -2.2204460e-16 -2.4286129e-17 -1.1102230e-16 -2.2226145e-17 0.0000000 -1.7997756e-17 -2.2204460e-16 2.7755576e-17 -2.2204460e-16 6.9388939e-17 2.2204460e-16 2.2204460e-16 -1.1102230e-16 -3.8163916e-17 0.0000000 1.3877788e-17 2.2204460e-16 1.8865118e-17 -3.3306691e-16 -2.4502969e-17 -2.2204460e-16 3.4694470e-18 -2.2204460e-16 -1.3010426e-18 -3.3306691e-16 -2.4936650e-17 -4.4408921e-16 -9.1072982e-18 -2.2204460e-16 -1.7347235e-18 0.0000000 -2.0816682e-17 -2.2204460e-16 1.0842022e-18 0.0000000 -1.2143064e-17
+DEAL::Checking DGQ1 against DGQ1 in 1d and spacedim 2
+DEAL::Checking DGQ1 against DGQ1 in 1d and spacedim 2
+DEAL::Checking DGQ1 against DGQ1 in 1d and spacedim 3
+DEAL::Checking DGQ1 against DGQ1 in 1d and spacedim 3
+DEAL::Checking DGQ1 against DGQ1 in 2d and spacedim 3
+DEAL::Checking DGQ1 against DGQ1 in 2d and spacedim 3
+DEAL::Checking DGQ1 against DGQ3 in 1d and spacedim 2
+DEAL::Checking DGQ3 against DGQ1 in 1d and spacedim 2
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::4.3801768e-16 4.4408921e-16
+DEAL::5.0062403e-16
+DEAL::-3.3306691e-16 1.3877788e-17 0.0000000 -9.0205621e-17 -2.2204460e-16 -4.8572257e-17 -2.2204460e-16 5.5511151e-17
+DEAL::Checking DGQ1 against DGQ3 in 1d and spacedim 3
+DEAL::Checking DGQ3 against DGQ1 in 1d and spacedim 3
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::4.3801768e-16 4.4408921e-16
+DEAL::5.0062403e-16
+DEAL::-3.3306691e-16 1.3877788e-17 0.0000000 -9.0205621e-17 -2.2204460e-16 -4.8572257e-17 -2.2204460e-16 5.5511151e-17
+DEAL::Checking DGQ1 against DGQ3 in 2d and spacedim 3
+DEAL::Checking DGQ3 against DGQ1 in 2d and spacedim 3
+DEAL::dofs_per_cell=16, n_q_points=16
+DEAL::1.4873628e-15 1.4771611e-15
+DEAL::1.6644460e-15
+DEAL::-3.3306691e-16 -7.0256301e-17 -5.5511151e-16 -1.3010426e-18 -3.3306691e-16 -4.2500725e-17 0.0000000 -8.6736174e-19 -5.5511151e-16 -2.0816682e-17 -3.3306691e-16 -2.3310347e-17 -5.5511151e-16 -1.7889336e-17 -1.1102230e-16 1.3444107e-17 0.0000000 -3.4694470e-18 -3.3306691e-16 -2.3960868e-17 -4.4408921e-16 -6.4726870e-17 -2.2204460e-16 1.3010426e-17 0.0000000 -1.7347235e-17 -3.3306691e-16 -6.9388939e-18 0.0000000 -3.7730236e-17 4.4408921e-16 -2.4286129e-17
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 2
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 2
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 3
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 3
+DEAL::Checking DGQ2 against DGQ2 in 2d and spacedim 3
+DEAL::Checking DGQ2 against DGQ2 in 2d and spacedim 3
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 2
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 2
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 3
+DEAL::Checking DGQ2 against DGQ2 in 1d and spacedim 3
+DEAL::Checking DGQ2 against DGQ2 in 2d and spacedim 3
+DEAL::Checking DGQ2 against DGQ2 in 2d and spacedim 3
+DEAL::Checking DGQ2 against DGQ4 in 1d and spacedim 2
+DEAL::Checking DGQ4 against DGQ2 in 1d and spacedim 2
+DEAL::Checking DGQ2 against DGQ4 in 1d and spacedim 3
+DEAL::Checking DGQ4 against DGQ2 in 1d and spacedim 3
+DEAL::Checking DGQ2 against DGQ4 in 2d and spacedim 3
+DEAL::Checking DGQ4 against DGQ2 in 2d and spacedim 3
+DEAL::Checking DGQ3 against DGQ3 in 1d and spacedim 2
+DEAL::Checking DGQ3 against DGQ3 in 1d and spacedim 2
+DEAL::Checking DGQ3 against DGQ3 in 1d and spacedim 3
+DEAL::Checking DGQ3 against DGQ3 in 1d and spacedim 3
+DEAL::Checking DGQ3 against DGQ3 in 2d and spacedim 3
+DEAL::Checking DGQ3 against DGQ3 in 2d and spacedim 3
+DEAL::Checking DGP0 against DGP0 in 1d and spacedim 2
+DEAL::dofs_per_cell=1, n_q_points=1
+DEAL::0.0000000 0.0000000
+DEAL::0.0000000
+DEAL::0.0000000 0.0000000
+DEAL::Checking DGP0 against DGP0 in 1d and spacedim 2
+DEAL::Checking DGP0 against DGP0 in 1d and spacedim 3
+DEAL::dofs_per_cell=1, n_q_points=1
+DEAL::0.0000000 0.0000000
+DEAL::0.0000000
+DEAL::0.0000000 0.0000000
+DEAL::Checking DGP0 against DGP0 in 1d and spacedim 3
+DEAL::Checking DGP0 against DGP0 in 2d and spacedim 3
+DEAL::dofs_per_cell=1, n_q_points=1
+DEAL::0.0000000 0.0000000
+DEAL::0.0000000
+DEAL::0.0000000 0.0000000
+DEAL::Checking DGP0 against DGP0 in 2d and spacedim 3
+DEAL::Checking DGP0 against DGP1 in 1d and spacedim 2
+DEAL::Checking DGP1 against DGP0 in 1d and spacedim 2
+DEAL::dofs_per_cell=2, n_q_points=2
+DEAL::5.5511151e-17 5.5511151e-17
+DEAL::7.8504623e-17
+DEAL::0.0000000 5.5511151e-17 0.0000000 5.5511151e-17
+DEAL::Checking DGP0 against DGP1 in 1d and spacedim 3
+DEAL::Checking DGP1 against DGP0 in 1d and spacedim 3
+DEAL::dofs_per_cell=2, n_q_points=2
+DEAL::5.5511151e-17 5.5511151e-17
+DEAL::7.8504623e-17
+DEAL::0.0000000 5.5511151e-17 0.0000000 5.5511151e-17
+DEAL::Checking DGP0 against DGP1 in 2d and spacedim 3
+DEAL::Checking DGP1 against DGP0 in 2d and spacedim 3
+DEAL::Checking DGP0 against DGP2 in 1d and spacedim 2
+DEAL::Checking DGP2 against DGP0 in 1d and spacedim 2
+DEAL::dofs_per_cell=3, n_q_points=3
+DEAL::1.1102230e-16 2.2204460e-16
+DEAL::1.3597400e-16
+DEAL::0.0000000 0.0000000 -1.1102230e-16 -1.1102230e-16 0.0000000 0.0000000
+DEAL::Checking DGP0 against DGP2 in 1d and spacedim 3
+DEAL::Checking DGP2 against DGP0 in 1d and spacedim 3
+DEAL::dofs_per_cell=3, n_q_points=3
+DEAL::1.1102230e-16 2.2204460e-16
+DEAL::1.3597400e-16
+DEAL::0.0000000 0.0000000 -1.1102230e-16 -1.1102230e-16 0.0000000 0.0000000
+DEAL::Checking DGP0 against DGP2 in 2d and spacedim 3
+DEAL::Checking DGP2 against DGP0 in 2d and spacedim 3
+DEAL::Checking DGP0 against DGP4 in 1d and spacedim 2
+DEAL::Checking DGP4 against DGP0 in 1d and spacedim 2
+DEAL::dofs_per_cell=5, n_q_points=5
+DEAL::4.4408921e-16 3.7470027e-16
+DEAL::3.3594567e-16
+DEAL::0.0000000 0.0000000 0.0000000 -5.5511151e-17 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 -9.7144515e-17
+DEAL::Checking DGP0 against DGP4 in 1d and spacedim 3
+DEAL::Checking DGP4 against DGP0 in 1d and spacedim 3
+DEAL::dofs_per_cell=5, n_q_points=5
+DEAL::4.4408921e-16 3.7470027e-16
+DEAL::3.3594567e-16
+DEAL::0.0000000 0.0000000 0.0000000 -5.5511151e-17 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 -9.7144515e-17
+DEAL::Checking DGP0 against DGP4 in 2d and spacedim 3
+DEAL::Checking DGP4 against DGP0 in 2d and spacedim 3
+DEAL::Checking DGP1 against DGP1 in 1d and spacedim 2
+DEAL::Checking DGP1 against DGP1 in 1d and spacedim 2
+DEAL::Checking DGP1 against DGP1 in 1d and spacedim 3
+DEAL::Checking DGP1 against DGP1 in 1d and spacedim 3
+DEAL::Checking DGP1 against DGP1 in 2d and spacedim 3
+DEAL::Checking DGP1 against DGP1 in 2d and spacedim 3
+DEAL::Checking DGP1 against DGP3 in 1d and spacedim 2
+DEAL::Checking DGP3 against DGP1 in 1d and spacedim 2
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::3.8857806e-16 4.0245585e-16
+DEAL::3.3680450e-16
+DEAL::0.0000000 -2.7755576e-17 0.0000000 0.0000000 -1.1102230e-16 5.5511151e-17 0.0000000 -1.3877788e-17
+DEAL::Checking DGP1 against DGP3 in 1d and spacedim 3
+DEAL::Checking DGP3 against DGP1 in 1d and spacedim 3
+DEAL::dofs_per_cell=4, n_q_points=4
+DEAL::3.8857806e-16 4.0245585e-16
+DEAL::3.3680450e-16
+DEAL::0.0000000 -2.7755576e-17 0.0000000 0.0000000 -1.1102230e-16 5.5511151e-17 0.0000000 -1.3877788e-17
+DEAL::Checking DGP1 against DGP3 in 2d and spacedim 3
+DEAL::Checking DGP3 against DGP1 in 2d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 2
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 2
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 2d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 2d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 2
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 2
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 1d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 2d and spacedim 3
+DEAL::Checking DGP2 against DGP2 in 2d and spacedim 3
+DEAL::Checking DGP2 against DGP4 in 1d and spacedim 2
+DEAL::Checking DGP4 against DGP2 in 1d and spacedim 2
+DEAL::Checking DGP2 against DGP4 in 1d and spacedim 3
+DEAL::Checking DGP4 against DGP2 in 1d and spacedim 3
+DEAL::Checking DGP2 against DGP4 in 2d and spacedim 3
+DEAL::Checking DGP4 against DGP2 in 2d and spacedim 3
+DEAL::Checking DGP3 against DGP3 in 1d and spacedim 2
+DEAL::Checking DGP3 against DGP3 in 1d and spacedim 2
+DEAL::Checking DGP3 against DGP3 in 1d and spacedim 3
+DEAL::Checking DGP3 against DGP3 in 1d and spacedim 3
+DEAL::Checking DGP3 against DGP3 in 2d and spacedim 3
+DEAL::Checking DGP3 against DGP3 in 2d and spacedim 3