From: bangerth Date: Wed, 9 Aug 2006 03:36:15 +0000 (+0000) Subject: Commit a new test that presently falls on its face X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f88f911294dea0d35455fcd2137f5feae220b3d;p=dealii-svn.git Commit a new test that presently falls on its face git-svn-id: https://svn.dealii.org/trunk@13622 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/tests/bits/dof_tools_19.cc b/tests/bits/dof_tools_19.cc index ad17d8502b..2b62edf9f7 100644 --- a/tests/bits/dof_tools_19.cc +++ b/tests/bits/dof_tools_19.cc @@ -1,4 +1,4 @@ -//---------------------------- dof_tools_3.cc --------------------------- +//---------------------------- dof_tools_19.cc --------------------------- // $Id: dof_tools_03.cc 11749 2005-11-09 19:11:20Z wolf $ // Version: $Name$ // @@ -9,7 +9,7 @@ // to the file deal.II/doc/license.html for the text and // further information on this license. // -//---------------------------- dof_tools_3.cc --------------------------- +//---------------------------- dof_tools_19.cc --------------------------- #include "../tests.h" #include "dof_tools_common.cc" @@ -46,7 +46,7 @@ check_this (const DoFHandler &dof_handler) // Raviart-Thomas element. don't // check this element for that // reason. this case is covered in - // rt_3, however + // rt_crash_01, however if (dof_handler.get_fe().get_name().find ("RaviartThomas") != std::string::npos) return; diff --git a/tests/bits/rt_crash_01.cc b/tests/bits/rt_crash_01.cc new file mode 100644 index 0000000000..02ef05aaec --- /dev/null +++ b/tests/bits/rt_crash_01.cc @@ -0,0 +1,76 @@ +//---------------------------- 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 +#include +#include +#include +#include +#include + +// 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 +void +check_this (const DoFHandler &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 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 quadrature (6); + Vector solution (dof_handler.n_dofs ()); + + VectorTools::project (dof_handler, cm, + quadrature, test_func, + solution); + cm.distribute (solution); + + // Evaluate error + Vector 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; +} diff --git a/tests/bits/rt_crash_01/cmp/generic b/tests/bits/rt_crash_01/cmp/generic new file mode 100644 index 0000000000..0edb03132b --- /dev/null +++ b/tests/bits/rt_crash_01/cmp/generic @@ -0,0 +1,300 @@ + +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