From: bangerth Date: Fri, 11 Aug 2006 17:50:54 +0000 (+0000) Subject: Allow for the possibility of an approximation gap X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d145a8baa40d79bbfb84381b564c4e5ee8e56d80;p=dealii-svn.git Allow for the possibility of an approximation gap git-svn-id: https://svn.dealii.org/trunk@13676 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/tests/deal.II/project_common.cc b/tests/deal.II/project_common.cc index 12615f8a55..a817111468 100644 --- a/tests/deal.II/project_common.cc +++ b/tests/deal.II/project_common.cc @@ -93,9 +93,14 @@ class F : public Function +// check the given element of polynomial order p. the last parameter, if +// given, denotes a gap in convergence order; for example, the Nedelec element +// of polynomial degree p has normal components of degree p-1 and therefore +// can only represent polynomials of degree p-1 exactly. the gap is then 1. template void test_no_hanging_nodes (const FiniteElement &fe, - const unsigned int p) + const unsigned int p, + const unsigned int order_difference = 0) { Triangulation triangulation; GridGenerator::hyper_cube (triangulation); @@ -132,7 +137,7 @@ void test_no_hanging_nodes (const FiniteElement &fe, << ", rel. error=" << error.l2_norm() / projection.l2_norm() << std::endl; - if (q<=p) + if (q<=p-order_difference) Assert (error.l2_norm() <= 1e-12*projection.l2_norm(), ExcInternalError()); } diff --git a/tests/deal.II/project_nedelec_01.cc b/tests/deal.II/project_nedelec_01.cc index 12682fbb0f..675f5fba88 100644 --- a/tests/deal.II/project_nedelec_01.cc +++ b/tests/deal.II/project_nedelec_01.cc @@ -27,5 +27,5 @@ void test () if (dim > 1) // only p=1 implemented at present for (unsigned int p=1; p<2; ++p) - test_no_hanging_nodes (FE_Nedelec(p), p); + test_no_hanging_nodes (FE_Nedelec(p), p, 1); } diff --git a/tests/deal.II/project_nedelec_01/cmp/generic b/tests/deal.II/project_nedelec_01/cmp/generic index 6c31f57c16..2987642701 100644 --- a/tests/deal.II/project_nedelec_01/cmp/generic +++ b/tests/deal.II/project_nedelec_01/cmp/generic @@ -1,148 +1,27 @@ -DEAL::n_dofs=9 -DEAL:cg::Starting value 0.342 +DEAL::n_dofs=144 +DEAL:cg::Starting value 5.65 DEAL:cg::Convergence step 8 value 0 -DEAL::FE_Q<1>(1), P_0, rel. error=0 -DEAL:cg::Starting value 0.709 +DEAL::FE_Nedelec<2>(1), P_0, rel. error=0 +DEAL:cg::Starting value 11.4 DEAL:cg::Convergence step 8 value 0 -DEAL::FE_Q<1>(1), P_1, rel. error=0 -DEAL:cg::Starting value 1.12 +DEAL::FE_Nedelec<2>(1), P_1, rel. error=0.0129 +DEAL:cg::Starting value 17.4 DEAL:cg::Convergence step 8 value 0 -DEAL::FE_Q<1>(1), P_2, rel. error=0.000336 -DEAL:cg::Starting value 1.57 +DEAL::FE_Nedelec<2>(1), P_2, rel. error=0.0220 +DEAL:cg::Starting value 23.7 DEAL:cg::Convergence step 8 value 0 -DEAL::FE_Q<1>(1), P_3, rel. error=0.000737 -DEAL::n_dofs=17 -DEAL:cg::Starting value 0.262 -DEAL:cg::Convergence step 12 value 0 -DEAL::FE_Q<1>(2), P_0, rel. error=0 -DEAL:cg::Starting value 0.544 -DEAL:cg::Convergence step 12 value 0 -DEAL::FE_Q<1>(2), P_1, rel. error=0 -DEAL:cg::Starting value 0.869 -DEAL:cg::Convergence step 13 value 0 -DEAL::FE_Q<1>(2), P_2, rel. error=0 -DEAL:cg::Starting value 1.23 -DEAL:cg::Convergence step 13 value 0 -DEAL::FE_Q<1>(2), P_3, rel. error=1.24e-05 -DEAL:cg::Starting value 1.63 -DEAL:cg::Convergence step 13 value 0 -DEAL::FE_Q<1>(2), P_4, rel. error=3.41e-05 -DEAL::n_dofs=25 -DEAL:cg::Starting value 0.206 -DEAL:cg::Convergence step 13 value 0 -DEAL::FE_Q<1>(3), P_0, rel. error=0 -DEAL:cg::Starting value 0.429 -DEAL:cg::Convergence step 14 value 0 -DEAL::FE_Q<1>(3), P_1, rel. error=0 -DEAL:cg::Starting value 0.685 -DEAL:cg::Convergence step 14 value 0 -DEAL::FE_Q<1>(3), P_2, rel. error=0 -DEAL:cg::Starting value 0.974 -DEAL:cg::Convergence step 14 value 0 -DEAL::FE_Q<1>(3), P_3, rel. error=0 -DEAL:cg::Starting value 1.29 -DEAL:cg::Convergence step 14 value 0 -DEAL::FE_Q<1>(3), P_4, rel. error=1.77e-07 -DEAL:cg::Starting value 1.64 -DEAL:cg::Convergence step 15 value 0 -DEAL::FE_Q<1>(3), P_5, rel. error=6.01e-07 -DEAL::n_dofs=33 -DEAL:cg::Starting value 0.191 -DEAL:cg::Convergence step 15 value 0 -DEAL::FE_Q<1>(4), P_0, rel. error=0 -DEAL:cg::Starting value 0.398 -DEAL:cg::Convergence step 15 value 0 -DEAL::FE_Q<1>(4), P_1, rel. error=0 -DEAL:cg::Starting value 0.638 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<1>(4), P_2, rel. error=0 -DEAL:cg::Starting value 0.908 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<1>(4), P_3, rel. error=0 -DEAL:cg::Starting value 1.21 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<1>(4), P_4, rel. error=0 -DEAL:cg::Starting value 1.53 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<1>(4), P_5, rel. error=6.36e-09 -DEAL:cg::Starting value 1.88 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<1>(4), P_6, rel. error=2.50e-08 -DEAL::n_dofs=81 -DEAL:cg::Starting value 0.352 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<2>(1), P_0, rel. error=0 -DEAL:cg::Starting value 0.717 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<2>(1), P_1, rel. error=0 -DEAL:cg::Starting value 1.10 +DEAL::FE_Nedelec<2>(1), P_3, rel. error=0.0315 +DEAL::n_dofs=1944 +DEAL:cg::Starting value 5.35 DEAL:cg::Convergence step 17 value 0 -DEAL::FE_Q<2>(1), P_2, rel. error=8.80e-05 -DEAL:cg::Starting value 1.51 +DEAL::FE_Nedelec<3>(1), P_0, rel. error=0 +DEAL:cg::Starting value 10.8 DEAL:cg::Convergence step 17 value 0 -DEAL::FE_Q<2>(1), P_3, rel. error=0.000198 -DEAL::n_dofs=289 -DEAL:cg::Starting value 0.206 -DEAL:cg::Convergence step 16 value 0 -DEAL::FE_Q<2>(2), P_0, rel. error=0 -DEAL:cg::Starting value 0.421 -DEAL:cg::Convergence step 17 value 0 -DEAL::FE_Q<2>(2), P_1, rel. error=0 -DEAL:cg::Starting value 0.654 -DEAL:cg::Convergence step 17 value 0 -DEAL::FE_Q<2>(2), P_2, rel. error=0 -DEAL:cg::Starting value 0.905 -DEAL:cg::Convergence step 17 value 0 -DEAL::FE_Q<2>(2), P_3, rel. error=2.41e-06 -DEAL:cg::Starting value 1.17 -DEAL:cg::Convergence step 17 value 0 -DEAL::FE_Q<2>(2), P_4, rel. error=6.79e-06 -DEAL::n_dofs=625 -DEAL:cg::Starting value 0.127 +DEAL::FE_Nedelec<3>(1), P_1, rel. error=0.00261 +DEAL:cg::Starting value 16.3 DEAL:cg::Convergence step 18 value 0 -DEAL::FE_Q<2>(3), P_0, rel. error=0 -DEAL:cg::Starting value 0.261 +DEAL::FE_Nedelec<3>(1), P_2, rel. error=0.00450 +DEAL:cg::Starting value 21.9 DEAL:cg::Convergence step 18 value 0 -DEAL::FE_Q<2>(3), P_1, rel. error=0 -DEAL:cg::Starting value 0.406 -DEAL:cg::Convergence step 19 value 0 -DEAL::FE_Q<2>(3), P_2, rel. error=0 -DEAL:cg::Starting value 0.562 -DEAL:cg::Convergence step 19 value 0 -DEAL::FE_Q<2>(3), P_3, rel. error=0 -DEAL:cg::Starting value 0.730 -DEAL:cg::Convergence step 19 value 0 -DEAL::FE_Q<2>(3), P_4, rel. error=2.90e-08 -DEAL:cg::Starting value 0.908 -DEAL:cg::Convergence step 19 value 0 -DEAL::FE_Q<2>(3), P_5, rel. error=1.00e-07 -DEAL::n_dofs=729 -DEAL:cg::Starting value 0.241 -DEAL:cg::Convergence step 22 value 0 -DEAL::FE_Q<3>(1), P_0, rel. error=0 -DEAL:cg::Starting value 0.488 -DEAL:cg::Convergence step 22 value 0 -DEAL::FE_Q<3>(1), P_1, rel. error=0 -DEAL:cg::Starting value 0.744 -DEAL:cg::Convergence step 22 value 0 -DEAL::FE_Q<3>(1), P_2, rel. error=2.51e-05 -DEAL:cg::Starting value 1.01 -DEAL:cg::Convergence step 22 value 0 -DEAL::FE_Q<3>(1), P_3, rel. error=5.72e-05 -DEAL::n_dofs=4913 -DEAL:cg::Starting value 0.108 -DEAL:cg::Convergence step 22 value 0 -DEAL::FE_Q<3>(2), P_0, rel. error=0 -DEAL:cg::Starting value 0.219 -DEAL:cg::Convergence step 23 value 0 -DEAL::FE_Q<3>(2), P_1, rel. error=0 -DEAL:cg::Starting value 0.337 -DEAL:cg::Convergence step 23 value 0 -DEAL::FE_Q<3>(2), P_2, rel. error=0 -DEAL:cg::Starting value 0.461 -DEAL:cg::Convergence step 24 value 0 -DEAL::FE_Q<3>(2), P_3, rel. error=5.06e-07 -DEAL:cg::Starting value 0.592 -DEAL:cg::Convergence step 24 value 0 -DEAL::FE_Q<3>(2), P_4, rel. error=1.44e-06 +DEAL::FE_Nedelec<3>(1), P_3, rel. error=0.00649 diff --git a/tests/deal.II/project_rt_01.cc b/tests/deal.II/project_rt_01.cc index cdf6182372..d455d8d746 100644 --- a/tests/deal.II/project_rt_01.cc +++ b/tests/deal.II/project_rt_01.cc @@ -26,5 +26,5 @@ void test () { if (dim != 1) for (unsigned int p=0; p<6-dim; ++p) - test_no_hanging_nodes (FE_RaviartThomas(p), p); + test_no_hanging_nodes (FE_RaviartThomas(p), p+1, 1); }