--- /dev/null
+//---------------------------- rt_crash_01.cc ---------------------------
+// $Id: dof_tools_03.cc 11749 2005-11-09 19:11:20Z wolf $
+// Version: $Name$
+//
+// Copyright (C) 2003, 2004, 2006 by the deal.II authors
+//
+// This file is subject to QPL and may not be distributed
+// without copyright and license information. Please refer
+// to the file deal.II/doc/license.html for the text and
+// further information on this license.
+//
+//---------------------------- rt_crash_01.cc ---------------------------
+
+#include "../tests.h"
+#include "dof_tools_common.cc"
+#include <dofs/dof_constraints.h>
+#include <base/function.h>
+#include <base/quadrature_lib.h>
+#include <numerics/vectors.h>
+#include <lac/vector.h>
+#include <dofs/dof_tools.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
+
+std::string output_file_name = "rt_crash_01/output";
+
+
+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;
+
+ 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;
+
+ ConstraintMatrix 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);
+
+ // Evaluate error
+ Vector<double> cellwise_errors (dof_handler.get_tria ().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();
+
+ Assert (p_l2_error < 1e-14, ExcInternalError());
+
+ deallog << "L2_Error : " << p_l2_error << std::endl;
+}
--- /dev/null
+
+DEAL::Checking Q1 in 1d:
+DEAL::Checking Q1 in 2d:
+DEAL::2
+DEAL::2
+DEAL:cg::Starting value 0.31
+DEAL:cg::Convergence step 15 value 0
+DEAL::L2_Error : 0
+DEAL::Checking Q1 in 3d:
+DEAL::16
+DEAL::4
+DEAL:cg::Starting value 0.21
+DEAL:cg::Convergence step 22 value 0
+DEAL::L2_Error : 0
+DEAL::Checking Q2 in 1d:
+DEAL::Checking Q2 in 2d:
+DEAL::6
+DEAL::3
+DEAL:cg::Starting value 0.21
+DEAL:cg::Convergence step 16 value 0
+DEAL::L2_Error : 0
+DEAL::Checking Q2 in 3d:
+DEAL::72
+DEAL::9
+DEAL:cg::Starting value 0.12
+DEAL:cg::Convergence step 21 value 0
+DEAL::L2_Error : 0
+DEAL::Checking Q3 in 1d:
+DEAL::Checking Q3 in 2d:
+DEAL::10
+DEAL::4
+DEAL:cg::Starting value 0.13
+DEAL:cg::Convergence step 18 value 0
+DEAL::L2_Error : 0
+DEAL::Checking Q3 in 3d:
+DEAL::160
+DEAL::16
+DEAL:cg::Starting value 0.059
+DEAL:cg::Convergence step 25 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ0 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.50
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ0 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.40
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ0 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.31
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ1 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.35
+DEAL:cg::Convergence step 2 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ1 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.20
+DEAL:cg::Convergence step 4 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ1 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.11
+DEAL:cg::Convergence step 8 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ3 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.28
+DEAL:cg::Convergence step 4 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ3 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.12
+DEAL:cg::Convergence step 14 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGQ3 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.055
+DEAL:cg::Convergence step 23 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP0 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.50
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP0 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.40
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP0 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.31
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP1 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.50
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP1 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.40
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP1 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.31
+DEAL:cg::Convergence step 2 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP3 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.50
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP3 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.40
+DEAL:cg::Convergence step 2 value 0
+DEAL::L2_Error : 0
+DEAL::Checking DGP3 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.31
+DEAL:cg::Convergence step 2 value 0
+DEAL::L2_Error : 0
+DEAL::Checking Nedelec1 in 2d:
+DEAL::4
+DEAL::1
+DEAL:cg::Starting value 1.2
+DEAL:cg::Convergence step 10 value 0
+DEAL::L2_Error : 0
+DEAL::Checking Nedelec1 in 3d:
+DEAL::40
+DEAL::2
+DEAL:cg::Starting value 0.87
+DEAL:cg::Convergence step 19 value 0
+DEAL::L2_Error : 0
+DEAL::Checking RaviartThomas0 in 2d:
+DEAL::Checking RaviartThomas1 in 2d:
+DEAL::Checking RaviartThomas2 in 2d:
+DEAL::Checking RaviartThomasNodal0 in 2d:
+DEAL::Checking RaviartThomasNodal1 in 2d:
+DEAL::Checking RaviartThomasNodal2 in 2d:
+DEAL::Checking RaviartThomasNodal0 in 3d:
+DEAL::Checking RaviartThomasNodal1 in 3d:
+DEAL::Checking RaviartThomasNodal2 in 3d:
+DEAL::Checking FE_Q<1>(1)3 in 1d:
+DEAL::Checking FE_DGQ<1>(2)2 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.50
+DEAL:cg::Convergence step 3 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGP<1>(3)1 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.50
+DEAL:cg::Convergence step 1 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_Q<2>(1)3 in 2d:
+DEAL::6
+DEAL::2
+DEAL:cg::Starting value 0.53
+DEAL:cg::Convergence step 15 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGQ<2>(2)2 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.28
+DEAL:cg::Convergence step 9 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGP<2>(3)1 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.40
+DEAL:cg::Convergence step 2 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_Q<3>(1)3 in 3d:
+DEAL::48
+DEAL::4
+DEAL:cg::Starting value 0.37
+DEAL:cg::Convergence step 22 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGQ<3>(2)2 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.16
+DEAL:cg::Convergence step 18 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGP<3>(3)1 in 3d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.31
+DEAL:cg::Convergence step 2 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_Q<1>(1)3FE_DGQ<1>(2)2 in 1d:
+DEAL::Checking FE_DGQ<1>(2)2FE_DGP<1>(3)1 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.71
+DEAL:cg::Convergence step 4 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGP<1>(3)1FE_DGQ<1>(2)2 in 1d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.71
+DEAL:cg::Convergence step 4 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_Q<2>(1)3FE_DGQ<2>(2)2 in 2d:
+DEAL::6
+DEAL::2
+DEAL:cg::Starting value 0.60
+DEAL:cg::Convergence step 16 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGQ<2>(2)2FE_DGP<2>(3)1 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.48
+DEAL:cg::Convergence step 10 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGP<2>(3)1FE_DGQ<2>(2)2 in 2d:
+DEAL::0
+DEAL::0
+DEAL:cg::Starting value 0.48
+DEAL:cg::Convergence step 10 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_Q<1>(1)3FE_DGP<1>(3)1FE_Q<1>(1)3 in 1d:
+DEAL::Checking FE_DGQ<1>(2)2FE_DGQ<1>(2)2FE_Q<1>(3)3 in 1d:
+DEAL::Checking FE_DGP<1>(3)1FE_DGP<1>(3)1FE_Q<1>(2)3 in 1d:
+DEAL::Checking FE_Q<2>(1)3FE_DGP<2>(3)1FE_Q<2>(1)3 in 2d:
+DEAL::12
+DEAL::2
+DEAL:cg::Starting value 0.85
+DEAL:cg::Convergence step 15 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGQ<2>(2)2FE_DGQ<2>(2)2FE_Q<2>(3)3 in 2d:
+DEAL::30
+DEAL::4
+DEAL:cg::Starting value 0.46
+DEAL:cg::Convergence step 19 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGP<2>(3)1FE_DGP<2>(3)1FE_Q<2>(2)3 in 2d:
+DEAL::18
+DEAL::3
+DEAL:cg::Starting value 0.67
+DEAL:cg::Convergence step 16 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGQ<3>(1)3FE_DGP<3>(3)1FE_Q<3>(1)3 in 3d:
+DEAL::48
+DEAL::4
+DEAL:cg::Starting value 0.52
+DEAL:cg::Convergence step 25 value 0
+DEAL::L2_Error : 0
+DEAL::Checking (FESystem<2>(FE_Q<2>(1),3))3FE_DGQ<2>(0)1FE_Q<2>(1)3 in 2d:
+DEAL::24
+DEAL::2
+DEAL:cg::Starting value 1.1
+DEAL:cg::Convergence step 15 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGQ<2>(3)1FESystem<2>(FE_DGQ<2>(0),3)1FESystem<2>(FE_Q<2>(2),1, FE_DGQ<2>(0),1)2 in 2d:
+DEAL::12
+DEAL::3
+DEAL:cg::Starting value 0.94
+DEAL:cg::Convergence step 18 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_DGQ<2>(3)1FE_Nedelec<2>(1)2 in 2d:
+DEAL::8
+DEAL::1
+DEAL:cg::Starting value 1.8
+DEAL:cg::Convergence step 17 value 0
+DEAL::L2_Error : 0
+DEAL::Checking FE_Nedelec<2>(1)1FESystem<2>(FE_DGQ<2>(1),2)1FESystem<2>(FE_Q<2>(2),1, FE_Nedelec<2>(1),2)2 in 2d:
+DEAL::32
+DEAL::3
+DEAL:cg::Starting value 2.8
+DEAL:cg::Convergence step 18 value 0
+DEAL::L2_Error : 0