From: Daniel Arndt Date: Thu, 2 Feb 2017 00:15:09 +0000 (+0100) Subject: Simplify FETools::back_interpolate X-Git-Tag: v8.5.0-rc1~155^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F3907%2Fhead;p=dealii.git Simplify FETools::back_interpolate --- diff --git a/include/deal.II/fe/fe_tools.h b/include/deal.II/fe/fe_tools.h index c727630ca3..e1b50ecebe 100644 --- a/include/deal.II/fe/fe_tools.h +++ b/include/deal.II/fe/fe_tools.h @@ -656,27 +656,19 @@ namespace FETools * nodes. For that case use the @p back_interpolate function, below, that * takes an additional @p ConstraintMatrix object. * + * @p dof1 might be a DoFHandler or a hp::DoFHandler onject. + * * Furthermore note, that for the specific case when the finite element * space corresponding to @p fe1 is a subset of the finite element space * corresponding to @p fe2, this function is simply an identity mapping. */ - template - void back_interpolate (const DoFHandler &dof1, - const InVector &u1, - const FiniteElement &fe2, - OutVector &u1_interpolated); - - /** - * Same as last function, except that the dof handler objects might be of - * type @p hp::DoFHandler. - */ template class DoFHandlerType, + template class DoFHandlerType, class InVector, class OutVector, int spacedim> - void back_interpolate (const DoFHandlerType &dof1, - const InVector &u1, - const FiniteElement &fe2, - OutVector &u1_interpolated); + void back_interpolate (const DoFHandlerType &dof1, + const InVector &u1, + const FiniteElement &fe2, + OutVector &u1_interpolated); /** * Gives the interpolation of the @p dof1-function @p u1 to a @p diff --git a/source/fe/fe_tools_interpolate.cc b/source/fe/fe_tools_interpolate.cc index b82ece6a35..27e89ab095 100644 --- a/source/fe/fe_tools_interpolate.cc +++ b/source/fe/fe_tools_interpolate.cc @@ -237,85 +237,17 @@ namespace FETools - template - void - back_interpolate(const DoFHandler &dof1, - const InVector &u1, - const FiniteElement &fe2, - OutVector &u1_interpolated) - { - Assert(dof1.get_fe().n_components() == fe2.n_components(), - ExcDimensionMismatch(dof1.get_fe().n_components(), fe2.n_components())); - Assert(u1.size()==dof1.n_dofs(), ExcDimensionMismatch(u1.size(), dof1.n_dofs())); - Assert(u1_interpolated.size()==dof1.n_dofs(), - ExcDimensionMismatch(u1_interpolated.size(), dof1.n_dofs())); - -#ifdef DEBUG - const IndexSet &dof1_local_dofs = dof1.locally_owned_dofs(); - const IndexSet u1_elements = u1.locally_owned_elements(); - const IndexSet u1_interpolated_elements = u1_interpolated.locally_owned_elements(); - Assert(u1_elements == dof1_local_dofs, - ExcMessage("The provided vector and DoF handler should have the same" - " index sets.")); - Assert(u1_interpolated_elements == dof1_local_dofs, - ExcMessage("The provided vector and DoF handler should have the same" - " index sets.")); -#endif - - // For continuous elements on grids - // with hanging nodes we need - // hanging node - // constraints. Consequently, when - // the elements are continuous no - // hanging node constraints are - // allowed. - const bool hanging_nodes_not_allowed= - (dof1.get_fe().dofs_per_vertex != 0) || (fe2.dofs_per_vertex != 0); - - const unsigned int dofs_per_cell1=dof1.get_fe().dofs_per_cell; - - Vector u1_local(dofs_per_cell1); - Vector u1_int_local(dofs_per_cell1); - - const types::subdomain_id subdomain_id = - dof1.get_triangulation().locally_owned_subdomain(); - - typename DoFHandler::active_cell_iterator cell = dof1.begin_active(), - endc = dof1.end(); - - FullMatrix interpolation_matrix(dofs_per_cell1, dofs_per_cell1); - get_back_interpolation_matrix(dof1.get_fe(), fe2, - interpolation_matrix); - for (; cell!=endc; ++cell) - if ((cell->subdomain_id() == subdomain_id) - || - (subdomain_id == numbers::invalid_subdomain_id)) - { - if (hanging_nodes_not_allowed) - for (unsigned int face=0; face::faces_per_cell; ++face) - Assert (cell->at_boundary(face) || - cell->neighbor(face)->level() == cell->level(), - ExcHangingNodesNotAllowed(0)); - - cell->get_dof_values(u1, u1_local); - interpolation_matrix.vmult(u1_int_local, u1_local); - cell->set_dof_values(u1_int_local, u1_interpolated); - } - - u1_interpolated.compress(VectorOperation::insert); - } - - - template class DoFHandlerType, + template class DoFHandlerType, class InVector, class OutVector, int spacedim> void - back_interpolate(const DoFHandlerType &dof1, - const InVector &u1, - const FiniteElement &fe2, - OutVector &u1_interpolated) + back_interpolate(const DoFHandlerType &dof1, + const InVector &u1, + const FiniteElement &fe2, + OutVector &u1_interpolated) { + Assert(dof1.get_fe().n_components() == fe2.n_components(), + ExcDimensionMismatch(dof1.get_fe().n_components(), fe2.n_components())); Assert(u1.size() == dof1.n_dofs(), ExcDimensionMismatch(u1.size(), dof1.n_dofs())); Assert(u1_interpolated.size() == dof1.n_dofs(), @@ -339,8 +271,8 @@ namespace FETools const types::subdomain_id subdomain_id = dof1.get_triangulation().locally_owned_subdomain(); - typename DoFHandlerType::active_cell_iterator cell = dof1.begin_active(), - endc = dof1.end(); + typename DoFHandlerType::active_cell_iterator cell = dof1.begin_active(), + endc = dof1.end(); // map from possible fe objects in // dof1 to the back_interpolation @@ -353,10 +285,6 @@ namespace FETools || (subdomain_id == numbers::invalid_subdomain_id)) { - Assert(cell->get_fe().n_components() == fe2.n_components(), - ExcDimensionMismatch(cell->get_fe().n_components(), - fe2.n_components())); - // For continuous elements on // grids with hanging nodes we // need hanging node @@ -377,12 +305,12 @@ namespace FETools // make sure back_interpolation // matrix is available - if (interpolation_matrices[&cell->get_fe()] != 0) + if (interpolation_matrices[&cell->get_fe()] == 0) { interpolation_matrices[&cell->get_fe()] = std_cxx11::shared_ptr > (new FullMatrix(dofs_per_cell1, dofs_per_cell1)); - get_back_interpolation_matrix(dof1.get_fe(), fe2, + get_back_interpolation_matrix(cell->get_fe(), fe2, *interpolation_matrices[&cell->get_fe()]); } @@ -394,8 +322,7 @@ namespace FETools cell->set_dof_values(u1_int_local, u1_interpolated); }; - // if we work on a parallel PETSc vector - // we have to finish the work + // if we work on a parallel vector, we have to finish the work u1_interpolated.compress(VectorOperation::insert); } diff --git a/source/fe/fe_tools_interpolate.inst.in b/source/fe/fe_tools_interpolate.inst.in index d051fdfbe6..a4abf2e258 100644 --- a/source/fe/fe_tools_interpolate.inst.in +++ b/source/fe/fe_tools_interpolate.inst.in @@ -74,6 +74,11 @@ for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS (const DoFHandler &, const VEC &, const FiniteElement &, VEC &); + template + void back_interpolate + (const hp::DoFHandler &, const VEC &, + const FiniteElement &, VEC &); + template void back_interpolate (const DoFHandler &, const ConstraintMatrix &, diff --git a/tests/bits/fe_tools_06c.cc b/tests/bits/fe_tools_06c.cc new file mode 100644 index 0000000000..8eea0d2d5b --- /dev/null +++ b/tests/bits/fe_tools_06c.cc @@ -0,0 +1,62 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2003 - 2015 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 "fe_tools_common.h" +#include + +// check +// FETools::back_interpolate(6) +// for hp::DoFHandler without hanging nodes + + + +template +void +check_this (const FiniteElement &fe1, + const FiniteElement &fe2) +{ + // only check if both elements have + // support points. otherwise, + // interpolation doesn't really + // work + if ((fe1.get_unit_support_points().size() == 0) || + (fe2.get_unit_support_points().size() == 0)) + return; + // likewise for non-primitive elements + if (!fe1.is_primitive() || !fe2.is_primitive()) + return; + // we need to have dof_constraints + // for this test + if (!fe1.constraints_are_implemented() || + !fe2.constraints_are_implemented()) + return; + + Triangulation tria; + GridGenerator::hyper_cube(tria, 0., 1.); + tria.refine_global (2); + + std_cxx11::unique_ptr > dof1(make_dof_handler (tria, fe1)); + + Vector in (dof1->n_dofs()); + for (unsigned int i=0; i out (dof1->n_dofs()); + + FETools::back_interpolate (*dof1, in, fe2, out); + output_vector (out); +} + diff --git a/tests/bits/fe_tools_06c.output b/tests/bits/fe_tools_06c.output new file mode 100644 index 0000000000..fe2ed23d8d --- /dev/null +++ b/tests/bits/fe_tools_06c.output @@ -0,0 +1,367 @@ + +DEAL::Checking Q1 against Q1 in 1d: +DEAL::Checking Q1 against Q1 in 1d: +DEAL::Checking Q1 against Q1 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q1 against Q1 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q1 against Q1 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q1 against Q1 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q1 against Q2 in 1d: +DEAL::Checking Q2 against Q1 in 1d: +DEAL::Checking Q1 against Q2 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q2 against Q1 in 2d: +DEAL::2753.7500 366.41106 77.000000 +DEAL::0 1.0000000 1.5000000 5.0000000 16.000000 9.0000000 12.500000 17.000000 32.000000 28.500000 23.500000 34.000000 31.000000 36.000000 56.000000 50.500000 53.500000 43.500000 53.000000 62.500000 71.000000 +DEAL::Checking Q1 against Q2 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q2 against Q1 in 3d: +DEAL::232173.38 10158.911 721.00000 +DEAL::0 18.500000 35.000000 92.000000 144.00000 159.25000 123.75000 144.50000 196.00000 276.25000 298.00000 321.25000 251.00000 432.00000 453.75000 377.00000 499.00000 445.00000 636.00000 535.00000 658.00000 +DEAL::Checking Q1 against Q3 in 1d: +DEAL::Checking Q3 against Q1 in 1d: +DEAL::Checking Q1 against Q3 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q3 against Q1 in 2d: +DEAL::11358.000 1059.4576 160.00000 +DEAL::0 0.27639320 16.000000 5.6222912 10.186223 40.000000 30.373452 40.879024 61.723607 58.406888 42.763932 64.440325 74.587228 57.412772 112.00000 97.080650 120.95967 111.29180 125.41641 137.97508 160.00000 152.53738 +DEAL::Checking Q1 against Q3 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q3 against Q1 in 3d: +DEAL::2005454.0 51078.396 2170.0000 +DEAL::0 48.787228 143.48529 172.75503 379.45673 270.23932 638.44721 698.61215 823.41277 611.70906 532.38244 470.80009 588.80009 1391.3358 814.71944 1401.4393 1341.1062 1529.8737 1845.4128 1772.5130 2125.2243 +DEAL::Checking Q2 against Q2 in 1d: +DEAL::Checking Q2 against Q2 in 1d: +DEAL::Checking Q2 against Q2 in 2d: +DEAL::3240.0000 416.98921 80.000000 +DEAL::0 4.0000000 8.0000000 12.000000 16.000000 20.000000 24.000000 28.000000 32.000000 36.000000 40.000000 44.000000 48.000000 52.000000 56.000000 60.000000 64.000000 68.000000 72.000000 76.000000 80.000000 +DEAL::Checking Q2 against Q2 in 2d: +DEAL::3240.0000 416.98921 80.000000 +DEAL::0 4.0000000 8.0000000 12.000000 16.000000 20.000000 24.000000 28.000000 32.000000 36.000000 40.000000 44.000000 48.000000 52.000000 56.000000 60.000000 64.000000 68.000000 72.000000 76.000000 80.000000 +DEAL::Checking Q2 against Q2 in 3d: +DEAL::265356.00 11352.293 728.00000 +DEAL::0 36.000000 72.000000 108.00000 144.00000 180.00000 216.00000 252.00000 288.00000 324.00000 360.00000 396.00000 432.00000 468.00000 504.00000 540.00000 576.00000 612.00000 648.00000 684.00000 720.00000 +DEAL::Checking Q2 against Q2 in 3d: +DEAL::265356.00 11352.293 728.00000 +DEAL::0 36.000000 72.000000 108.00000 144.00000 180.00000 216.00000 252.00000 288.00000 324.00000 360.00000 396.00000 432.00000 468.00000 504.00000 540.00000 576.00000 612.00000 648.00000 684.00000 720.00000 +DEAL::Checking Q2 against Q3 in 1d: +DEAL::Checking Q3 against Q2 in 1d: +DEAL::Checking Q2 against Q3 in 2d: +DEAL::3240.0000 416.98921 80.000000 +DEAL::0 4.0000000 8.0000000 12.000000 16.000000 20.000000 24.000000 28.000000 32.000000 36.000000 40.000000 44.000000 48.000000 52.000000 56.000000 60.000000 64.000000 68.000000 72.000000 76.000000 80.000000 +DEAL::Checking Q3 against Q2 in 2d: +DEAL::14196.000 1265.7837 172.53738 +DEAL::0 8.2763932 16.000000 22.319505 26.686223 40.000000 53.058204 62.879024 63.723607 73.630495 76.816718 86.637539 109.58723 90.412772 112.00000 116.35704 129.95967 129.79180 156.91641 148.47508 160.00000 172.53738 +DEAL::Checking Q2 against Q3 in 3d: +DEAL::265356.00 11352.293 728.00000 +DEAL::0 36.000000 72.000000 108.00000 144.00000 180.00000 216.00000 252.00000 288.00000 324.00000 360.00000 396.00000 432.00000 468.00000 504.00000 540.00000 576.00000 612.00000 648.00000 684.00000 720.00000 +DEAL::Checking Q3 against Q2 in 3d: +DEAL::2412306.0 59610.150 2345.6185 +DEAL::0 118.23313 257.74922 287.25356 445.23313 519.17407 653.94721 781.49412 858.41277 871.37988 927.51146 978.80009 1087.8001 1434.8358 1310.9430 1612.5185 2049.2690 2065.1625 1948.4128 2261.0130 2214.7243 +DEAL::Checking Q3 against Q3 in 1d: +DEAL::Checking Q3 against Q3 in 1d: +DEAL::Checking Q3 against Q3 in 2d: +DEAL::14196.000 1262.8080 168.00000 +DEAL::0 8.0000000 16.000000 24.000000 32.000000 40.000000 48.000000 56.000000 64.000000 72.000000 80.000000 88.000000 96.000000 104.00000 112.00000 120.00000 128.00000 136.00000 144.00000 152.00000 160.00000 168.00000 +DEAL::Checking Q3 against Q3 in 2d: +DEAL::14196.000 1262.8080 168.00000 +DEAL::0 8.0000000 16.000000 24.000000 32.000000 40.000000 48.000000 56.000000 64.000000 72.000000 80.000000 88.000000 96.000000 104.00000 112.00000 120.00000 128.00000 136.00000 144.00000 152.00000 160.00000 168.00000 +DEAL::Checking Q3 against Q3 in 3d: +DEAL::2412306.0 59434.166 2196.0000 +DEAL::0 109.00000 218.00000 327.00000 436.00000 545.00000 654.00000 763.00000 872.00000 981.00000 1090.0000 1199.0000 1308.0000 1417.0000 1526.0000 1635.0000 1744.0000 1853.0000 1962.0000 2071.0000 2180.0000 +DEAL::Checking Q3 against Q3 in 3d: +DEAL::2412306.0 59434.166 2196.0000 +DEAL::0 109.00000 218.00000 327.00000 436.00000 545.00000 654.00000 763.00000 872.00000 981.00000 1090.0000 1199.0000 1308.0000 1417.0000 1526.0000 1635.0000 1744.0000 1853.0000 1962.0000 2071.0000 2180.0000 +DEAL::Checking DGQ0 against DGQ0 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ0 against DGQ0 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ0 against DGQ0 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ0 against DGQ0 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ0 against DGQ0 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ0 against DGQ0 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ0 against DGQ1 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ1 against DGQ0 in 1d: +DEAL::28.000000 11.747340 6.5000000 +DEAL::0.50000000 0.50000000 2.5000000 2.5000000 4.5000000 4.5000000 6.5000000 6.5000000 +DEAL::Checking DGQ0 against DGQ1 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ1 against DGQ0 in 2d: +DEAL::2016.0000 292.00000 61.500000 +DEAL::1.5000000 1.5000000 5.5000000 9.5000000 13.500000 13.500000 17.500000 21.500000 25.500000 25.500000 29.500000 33.500000 37.500000 37.500000 41.500000 45.500000 49.500000 49.500000 53.500000 57.500000 61.500000 61.500000 +DEAL::Checking DGQ0 against DGQ1 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ1 against DGQ0 in 3d: +DEAL::130816.00 6678.7400 507.50000 +DEAL::3.5000000 27.500000 51.500000 75.500000 99.500000 123.50000 147.50000 171.50000 203.50000 227.50000 251.50000 275.50000 299.50000 323.50000 347.50000 371.50000 403.50000 427.50000 451.50000 475.50000 499.50000 +DEAL::Checking DGQ0 against DGQ2 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ2 against DGQ0 in 1d: +DEAL::66.000000 22.315914 10.000000 +DEAL::1.0000000 1.0000000 1.0000000 4.0000000 4.0000000 4.0000000 7.0000000 7.0000000 7.0000000 10.000000 10.000000 10.000000 +DEAL::Checking DGQ0 against DGQ2 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ2 against DGQ0 in 2d: +DEAL::10296.000 991.97984 139.00000 +DEAL::4.0000000 4.0000000 13.000000 22.000000 31.000000 31.000000 40.000000 49.000000 58.000000 67.000000 67.000000 76.000000 85.000000 94.000000 94.000000 103.00000 112.00000 121.00000 130.00000 130.00000 139.00000 +DEAL::Checking DGQ0 against DGQ2 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ2 against DGQ0 in 3d: +DEAL::1492128.0 41452.735 1714.0000 +DEAL::13.000000 94.000000 175.00000 256.00000 337.00000 418.00000 526.00000 607.00000 688.00000 769.00000 850.00000 958.00000 1039.0000 1120.0000 1201.0000 1282.0000 1363.0000 1471.0000 1552.0000 1633.0000 1714.0000 +DEAL::Checking DGQ0 against DGQ4 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ4 against DGQ0 in 1d: +DEAL::190.00000 49.295030 17.000000 +DEAL::2.0000000 2.0000000 2.0000000 2.0000000 2.0000000 7.0000000 7.0000000 7.0000000 7.0000000 7.0000000 12.000000 12.000000 12.000000 12.000000 12.000000 17.000000 17.000000 17.000000 17.000000 17.000000 +DEAL::Checking DGQ0 against DGQ4 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ4 against DGQ0 in 2d: +DEAL::79800.000 4607.8845 387.00000 +DEAL::12.000000 12.000000 37.000000 62.000000 87.000000 112.00000 112.00000 137.00000 162.00000 187.00000 212.00000 212.00000 237.00000 262.00000 287.00000 312.00000 312.00000 337.00000 362.00000 387.00000 +DEAL::Checking DGQ0 against DGQ4 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ4 against DGQ0 in 3d: +DEAL::31996000. 413066.89 7937.0000 +DEAL::62.000000 437.00000 812.00000 1187.0000 1562.0000 2062.0000 2437.0000 2812.0000 3187.0000 3562.0000 4062.0000 4437.0000 4812.0000 5187.0000 5562.0000 6062.0000 6437.0000 6812.0000 7187.0000 7562.0000 +DEAL::Checking DGQ1 against DGQ1 in 1d: +DEAL::28.000000 11.832160 7.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 +DEAL::Checking DGQ1 against DGQ1 in 1d: +DEAL::28.000000 11.832160 7.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 +DEAL::Checking DGQ1 against DGQ1 in 2d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ1 against DGQ1 in 2d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ1 against DGQ1 in 3d: +DEAL::130816.00 6678.9412 511.00000 +DEAL::0 25.000000 50.000000 75.000000 100.00000 125.00000 150.00000 175.00000 200.00000 225.00000 250.00000 275.00000 300.00000 325.00000 350.00000 375.00000 400.00000 425.00000 450.00000 475.00000 500.00000 +DEAL::Checking DGQ1 against DGQ1 in 3d: +DEAL::130816.00 6678.9412 511.00000 +DEAL::0 25.000000 50.000000 75.000000 100.00000 125.00000 150.00000 175.00000 200.00000 225.00000 250.00000 275.00000 300.00000 325.00000 350.00000 375.00000 400.00000 425.00000 450.00000 475.00000 500.00000 +DEAL::Checking DGQ1 against DGQ3 in 1d: +DEAL::28.000000 11.832160 7.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 +DEAL::Checking DGQ3 against DGQ1 in 1d: +DEAL::120.00000 35.236345 15.000000 +DEAL::0 0.82917961 2.1708204 3.0000000 4.0000000 4.8291796 6.1708204 7.0000000 8.0000000 8.8291796 10.170820 11.000000 12.000000 12.829180 14.170820 15.000000 +DEAL::Checking DGQ1 against DGQ3 in 2d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ3 against DGQ1 in 2d: +DEAL::32640.000 2357.9897 255.00000 +DEAL::0 12.000000 24.683282 35.316718 48.000000 60.000000 72.683282 83.316718 96.000000 108.00000 120.68328 131.31672 144.00000 156.00000 168.68328 179.31672 192.00000 204.00000 216.68328 227.31672 240.00000 252.00000 +DEAL::Checking DGQ1 against DGQ3 in 3d: +DEAL::130816.00 6678.9412 511.00000 +DEAL::0 25.000000 50.000000 75.000000 100.00000 125.00000 150.00000 175.00000 200.00000 225.00000 250.00000 275.00000 300.00000 325.00000 350.00000 375.00000 400.00000 425.00000 450.00000 475.00000 500.00000 +DEAL::Checking DGQ3 against DGQ1 in 3d: +DEAL::8386560.0 151321.57 4095.0000 +DEAL::0 204.00000 405.95016 614.04984 816.00000 1020.0000 1224.6833 1424.5836 1634.7331 1838.7331 2040.6833 2243.3167 2445.2669 2649.2669 2859.4164 3059.3167 3264.0000 3468.0000 3669.9502 3878.0498 4080.0000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ4 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ4 against DGQ2 in 1d: +DEAL::190.00000 49.756550 19.000000 +DEAL::0 0.69069266 2.0000000 3.3093073 4.0000000 5.0000000 5.6906927 7.0000000 8.3093073 9.0000000 10.000000 10.690693 12.000000 13.309307 14.000000 15.000000 15.690693 17.000000 18.309307 19.000000 +DEAL::Checking DGQ2 against DGQ4 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ4 against DGQ2 in 2d: +DEAL::79800.000 4610.4633 399.00000 +DEAL::0 20.000000 41.546537 60.000000 78.453463 100.00000 120.00000 141.54654 160.00000 178.45346 200.00000 220.00000 241.54654 260.00000 278.45346 300.00000 320.00000 341.54654 360.00000 378.45346 +DEAL::Checking DGQ2 against DGQ4 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ4 against DGQ2 in 3d: +DEAL::31996000. 413081.29 7999.0000 +DEAL::0 392.26732 800.00000 1207.7327 1600.0000 2000.0000 2392.2673 2800.0000 3207.7327 3600.0000 4000.0000 4392.2673 4800.0000 5207.7327 5600.0000 6000.0000 6392.2673 6800.0000 7207.7327 7600.0000 +DEAL::Checking DGQ3 against DGQ3 in 1d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ3 against DGQ3 in 1d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ3 against DGQ3 in 2d: +DEAL::32640.000 2357.8974 255.00000 +DEAL::0 12.000000 24.000000 36.000000 48.000000 60.000000 72.000000 84.000000 96.000000 108.00000 120.00000 132.00000 144.00000 156.00000 168.00000 180.00000 192.00000 204.00000 216.00000 228.00000 240.00000 252.00000 +DEAL::Checking DGQ3 against DGQ3 in 2d: +DEAL::32640.000 2357.8974 255.00000 +DEAL::0 12.000000 24.000000 36.000000 48.000000 60.000000 72.000000 84.000000 96.000000 108.00000 120.00000 132.00000 144.00000 156.00000 168.00000 180.00000 192.00000 204.00000 216.00000 228.00000 240.00000 252.00000 +DEAL::Checking DGQ3 against DGQ3 in 3d: +DEAL::8386560.0 151321.20 4095.0000 +DEAL::0 204.00000 408.00000 612.00000 816.00000 1020.0000 1224.0000 1428.0000 1632.0000 1836.0000 2040.0000 2244.0000 2448.0000 2652.0000 2856.0000 3060.0000 3264.0000 3468.0000 3672.0000 3876.0000 4080.0000 +DEAL::Checking DGQ3 against DGQ3 in 3d: +DEAL::8386560.0 151321.20 4095.0000 +DEAL::0 204.00000 408.00000 612.00000 816.00000 1020.0000 1224.0000 1428.0000 1632.0000 1836.0000 2040.0000 2244.0000 2448.0000 2652.0000 2856.0000 3060.0000 3264.0000 3468.0000 3672.0000 3876.0000 4080.0000 +DEAL::Checking DGP0 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP1 in 3d: +DEAL::Checking DGP1 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP4 in 1d: +DEAL::Checking DGP4 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP4 in 2d: +DEAL::Checking DGP4 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP4 in 3d: +DEAL::Checking DGP4 against DGP0 in 3d: +DEAL::Checking DGP1 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP1 in 3d: +DEAL::Checking DGP1 against DGP1 in 3d: +DEAL::Checking DGP1 against DGP3 in 1d: +DEAL::Checking DGP3 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP3 in 2d: +DEAL::Checking DGP3 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP3 in 3d: +DEAL::Checking DGP3 against DGP1 in 3d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP4 in 1d: +DEAL::Checking DGP4 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP4 in 2d: +DEAL::Checking DGP4 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP4 in 3d: +DEAL::Checking DGP4 against DGP2 in 3d: +DEAL::Checking DGP3 against DGP3 in 1d: +DEAL::Checking DGP3 against DGP3 in 1d: +DEAL::Checking DGP3 against DGP3 in 2d: +DEAL::Checking DGP3 against DGP3 in 2d: +DEAL::Checking DGP3 against DGP3 in 3d: +DEAL::Checking DGP3 against DGP3 in 3d: +DEAL::Checking Nedelec0 against Nedelec0 in 2d: +DEAL::Checking Nedelec0 against Nedelec0 in 2d: +DEAL::Checking Nedelec0 against Nedelec0 in 3d: +DEAL::Checking Nedelec0 against Nedelec0 in 3d: +DEAL::Checking FE_Q<1>(1)3 against FE_Q<1>(2)3 in 1d: +DEAL::Checking FE_Q<1>(2)3 against FE_Q<1>(1)3 in 1d: +DEAL::Checking FE_DGQ<1>(2)2 against FE_DGQ<1>(3)2 in 1d: +DEAL::276.00000 65.757129 23.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 +DEAL::Checking FE_DGQ<1>(3)2 against FE_DGQ<1>(2)2 in 1d: +DEAL::496.00000 102.07448 31.000000 +DEAL::0 0.82917961 2.1708204 3.0000000 4.0000000 4.8291796 6.1708204 7.0000000 8.0000000 8.8291796 10.170820 11.000000 12.000000 12.829180 14.170820 15.000000 16.000000 16.829180 18.170820 19.000000 20.000000 20.829180 22.170820 23.000000 24.000000 24.829180 26.170820 27.000000 28.000000 28.829180 30.170820 31.000000 +DEAL::Checking FE_DGP<1>(3)1 against FE_DGP<1>(1)1 in 1d: +DEAL::Checking FE_DGP<1>(1)1 against FE_DGP<1>(3)1 in 1d: +DEAL::Checking FE_Q<2>(1)3 against FE_Q<2>(2)3 in 2d: +DEAL::2775.0000 371.24790 74.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 66.000000 69.000000 72.000000 +DEAL::Checking FE_Q<2>(2)3 against FE_Q<2>(1)3 in 2d: +DEAL::25026.750 1917.0063 233.00000 +DEAL::0 3.0000000 4.5000000 15.000000 48.000000 27.000000 37.500000 51.000000 96.000000 85.500000 70.500000 102.00000 93.000000 108.00000 168.00000 151.50000 160.50000 130.50000 159.00000 187.50000 213.00000 +DEAL::Checking FE_DGQ<2>(2)2 against FE_DGQ<2>(3)2 in 2d: +DEAL::41328.000 2814.4626 287.00000 +DEAL::0 14.000000 28.000000 42.000000 56.000000 70.000000 84.000000 98.000000 112.00000 126.00000 140.00000 154.00000 168.00000 182.00000 196.00000 210.00000 224.00000 238.00000 252.00000 266.00000 280.00000 +DEAL::Checking FE_DGQ<2>(3)2 against FE_DGQ<2>(2)2 in 2d: +DEAL::130816.00 6679.0064 511.00000 +DEAL::0 25.512461 50.170820 75.683282 99.316718 124.82918 149.48754 175.00000 200.68328 224.82918 250.85410 275.00000 300.00000 324.14590 350.17082 374.31672 400.00000 425.51246 450.17082 475.68328 499.31672 +DEAL::Checking FE_DGP<2>(3)1 against FE_DGP<2>(1)1 in 2d: +DEAL::Checking FE_DGP<2>(1)1 against FE_DGP<2>(3)1 in 2d: +DEAL::Checking FE_Q<3>(1)3 against FE_Q<3>(2)3 in 3d: +DEAL::70125.000 4184.2413 374.00000 +DEAL::0 18.000000 36.000000 54.000000 72.000000 90.000000 108.00000 126.00000 144.00000 162.00000 180.00000 198.00000 216.00000 234.00000 252.00000 270.00000 288.00000 306.00000 324.00000 342.00000 360.00000 +DEAL::Checking FE_Q<3>(2)3 against FE_Q<3>(1)3 in 3d: +DEAL::2091747.4 52826.853 2165.0000 +DEAL::0 56.500000 107.00000 316.50000 436.00000 504.50000 622.50000 436.75000 770.00000 729.00000 1048.0000 1181.0000 1308.0000 1295.5000 1394.0000 1635.0000 1643.5000 1853.0000 1876.5000 2044.0000 2105.0000 +DEAL::Checking FE_DGQ<3>(2)2 against FE_DGQ<3>(3)2 in 3d: +DEAL::5970240.0 117275.07 3455.0000 +DEAL::0 172.00000 344.00000 516.00000 688.00000 860.00000 1032.0000 1204.0000 1376.0000 1548.0000 1720.0000 1892.0000 2064.0000 2236.0000 2408.0000 2580.0000 2752.0000 2924.0000 3096.0000 3268.0000 3440.0000 +DEAL::Checking FE_DGQ<3>(3)2 against FE_DGQ<3>(2)2 in 3d: +DEAL::33550336. 428040.43 8191.0000 +DEAL::0 406.77933 818.17082 1227.6833 1638.0498 2044.8292 2450.7544 2865.7331 3272.6833 3683.5623 4090.8541 4496.2669 4910.7331 5316.1459 5723.4377 6134.3167 6541.2669 6956.2456 7362.1708 7768.9502 8179.3167 +DEAL::Checking FE_DGP<3>(3)1 against FE_DGP<3>(1)1 in 3d: +DEAL::Checking FE_DGP<3>(1)1 against FE_DGP<3>(3)1 in 3d: diff --git a/tests/bits/fe_tools_06d.cc b/tests/bits/fe_tools_06d.cc new file mode 100644 index 0000000000..c85ec7ecdf --- /dev/null +++ b/tests/bits/fe_tools_06d.cc @@ -0,0 +1,63 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2003 - 2015 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 "fe_tools_common.h" +#include + +// check +// FETools::back_interpolate(6) +// for hp::DoFHandler without hanging nodes + + + +template +void +check_this (const FiniteElement &fe1, + const FiniteElement &fe2) +{ + // only check if both elements have + // support points. otherwise, + // interpolation doesn't really + // work + if ((fe1.get_unit_support_points().size() == 0) || + (fe2.get_unit_support_points().size() == 0)) + return; + // likewise for non-primitive elements + if (!fe1.is_primitive() || !fe2.is_primitive()) + return; + // we need to have dof_constraints + // for this test + if (!fe1.constraints_are_implemented() || + !fe2.constraints_are_implemented()) + return; + + Triangulation tria; + GridGenerator::hyper_cube(tria, 0., 1.); + tria.refine_global (2); + + hp::FECollection hp_fe1(fe1); + std_cxx11::unique_ptr > hp_dof1(make_hp_dof_handler (tria, hp_fe1)); + + Vector in (hp_dof1->n_dofs()); + for (unsigned int i=0; i out (hp_dof1->n_dofs()); + + FETools::back_interpolate (*hp_dof1, in, fe2, out); + output_vector (out); +} + diff --git a/tests/bits/fe_tools_06d.output b/tests/bits/fe_tools_06d.output new file mode 100644 index 0000000000..fe2ed23d8d --- /dev/null +++ b/tests/bits/fe_tools_06d.output @@ -0,0 +1,367 @@ + +DEAL::Checking Q1 against Q1 in 1d: +DEAL::Checking Q1 against Q1 in 1d: +DEAL::Checking Q1 against Q1 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q1 against Q1 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q1 against Q1 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q1 against Q1 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q1 against Q2 in 1d: +DEAL::Checking Q2 against Q1 in 1d: +DEAL::Checking Q1 against Q2 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q2 against Q1 in 2d: +DEAL::2753.7500 366.41106 77.000000 +DEAL::0 1.0000000 1.5000000 5.0000000 16.000000 9.0000000 12.500000 17.000000 32.000000 28.500000 23.500000 34.000000 31.000000 36.000000 56.000000 50.500000 53.500000 43.500000 53.000000 62.500000 71.000000 +DEAL::Checking Q1 against Q2 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q2 against Q1 in 3d: +DEAL::232173.38 10158.911 721.00000 +DEAL::0 18.500000 35.000000 92.000000 144.00000 159.25000 123.75000 144.50000 196.00000 276.25000 298.00000 321.25000 251.00000 432.00000 453.75000 377.00000 499.00000 445.00000 636.00000 535.00000 658.00000 +DEAL::Checking Q1 against Q3 in 1d: +DEAL::Checking Q3 against Q1 in 1d: +DEAL::Checking Q1 against Q3 in 2d: +DEAL::300.00000 70.000000 24.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 24.000000 +DEAL::Checking Q3 against Q1 in 2d: +DEAL::11358.000 1059.4576 160.00000 +DEAL::0 0.27639320 16.000000 5.6222912 10.186223 40.000000 30.373452 40.879024 61.723607 58.406888 42.763932 64.440325 74.587228 57.412772 112.00000 97.080650 120.95967 111.29180 125.41641 137.97508 160.00000 152.53738 +DEAL::Checking Q1 against Q3 in 3d: +DEAL::7750.0000 802.02868 124.00000 +DEAL::0 6.0000000 12.000000 18.000000 24.000000 30.000000 36.000000 42.000000 48.000000 54.000000 60.000000 66.000000 72.000000 78.000000 84.000000 90.000000 96.000000 102.00000 108.00000 114.00000 120.00000 +DEAL::Checking Q3 against Q1 in 3d: +DEAL::2005454.0 51078.396 2170.0000 +DEAL::0 48.787228 143.48529 172.75503 379.45673 270.23932 638.44721 698.61215 823.41277 611.70906 532.38244 470.80009 588.80009 1391.3358 814.71944 1401.4393 1341.1062 1529.8737 1845.4128 1772.5130 2125.2243 +DEAL::Checking Q2 against Q2 in 1d: +DEAL::Checking Q2 against Q2 in 1d: +DEAL::Checking Q2 against Q2 in 2d: +DEAL::3240.0000 416.98921 80.000000 +DEAL::0 4.0000000 8.0000000 12.000000 16.000000 20.000000 24.000000 28.000000 32.000000 36.000000 40.000000 44.000000 48.000000 52.000000 56.000000 60.000000 64.000000 68.000000 72.000000 76.000000 80.000000 +DEAL::Checking Q2 against Q2 in 2d: +DEAL::3240.0000 416.98921 80.000000 +DEAL::0 4.0000000 8.0000000 12.000000 16.000000 20.000000 24.000000 28.000000 32.000000 36.000000 40.000000 44.000000 48.000000 52.000000 56.000000 60.000000 64.000000 68.000000 72.000000 76.000000 80.000000 +DEAL::Checking Q2 against Q2 in 3d: +DEAL::265356.00 11352.293 728.00000 +DEAL::0 36.000000 72.000000 108.00000 144.00000 180.00000 216.00000 252.00000 288.00000 324.00000 360.00000 396.00000 432.00000 468.00000 504.00000 540.00000 576.00000 612.00000 648.00000 684.00000 720.00000 +DEAL::Checking Q2 against Q2 in 3d: +DEAL::265356.00 11352.293 728.00000 +DEAL::0 36.000000 72.000000 108.00000 144.00000 180.00000 216.00000 252.00000 288.00000 324.00000 360.00000 396.00000 432.00000 468.00000 504.00000 540.00000 576.00000 612.00000 648.00000 684.00000 720.00000 +DEAL::Checking Q2 against Q3 in 1d: +DEAL::Checking Q3 against Q2 in 1d: +DEAL::Checking Q2 against Q3 in 2d: +DEAL::3240.0000 416.98921 80.000000 +DEAL::0 4.0000000 8.0000000 12.000000 16.000000 20.000000 24.000000 28.000000 32.000000 36.000000 40.000000 44.000000 48.000000 52.000000 56.000000 60.000000 64.000000 68.000000 72.000000 76.000000 80.000000 +DEAL::Checking Q3 against Q2 in 2d: +DEAL::14196.000 1265.7837 172.53738 +DEAL::0 8.2763932 16.000000 22.319505 26.686223 40.000000 53.058204 62.879024 63.723607 73.630495 76.816718 86.637539 109.58723 90.412772 112.00000 116.35704 129.95967 129.79180 156.91641 148.47508 160.00000 172.53738 +DEAL::Checking Q2 against Q3 in 3d: +DEAL::265356.00 11352.293 728.00000 +DEAL::0 36.000000 72.000000 108.00000 144.00000 180.00000 216.00000 252.00000 288.00000 324.00000 360.00000 396.00000 432.00000 468.00000 504.00000 540.00000 576.00000 612.00000 648.00000 684.00000 720.00000 +DEAL::Checking Q3 against Q2 in 3d: +DEAL::2412306.0 59610.150 2345.6185 +DEAL::0 118.23313 257.74922 287.25356 445.23313 519.17407 653.94721 781.49412 858.41277 871.37988 927.51146 978.80009 1087.8001 1434.8358 1310.9430 1612.5185 2049.2690 2065.1625 1948.4128 2261.0130 2214.7243 +DEAL::Checking Q3 against Q3 in 1d: +DEAL::Checking Q3 against Q3 in 1d: +DEAL::Checking Q3 against Q3 in 2d: +DEAL::14196.000 1262.8080 168.00000 +DEAL::0 8.0000000 16.000000 24.000000 32.000000 40.000000 48.000000 56.000000 64.000000 72.000000 80.000000 88.000000 96.000000 104.00000 112.00000 120.00000 128.00000 136.00000 144.00000 152.00000 160.00000 168.00000 +DEAL::Checking Q3 against Q3 in 2d: +DEAL::14196.000 1262.8080 168.00000 +DEAL::0 8.0000000 16.000000 24.000000 32.000000 40.000000 48.000000 56.000000 64.000000 72.000000 80.000000 88.000000 96.000000 104.00000 112.00000 120.00000 128.00000 136.00000 144.00000 152.00000 160.00000 168.00000 +DEAL::Checking Q3 against Q3 in 3d: +DEAL::2412306.0 59434.166 2196.0000 +DEAL::0 109.00000 218.00000 327.00000 436.00000 545.00000 654.00000 763.00000 872.00000 981.00000 1090.0000 1199.0000 1308.0000 1417.0000 1526.0000 1635.0000 1744.0000 1853.0000 1962.0000 2071.0000 2180.0000 +DEAL::Checking Q3 against Q3 in 3d: +DEAL::2412306.0 59434.166 2196.0000 +DEAL::0 109.00000 218.00000 327.00000 436.00000 545.00000 654.00000 763.00000 872.00000 981.00000 1090.0000 1199.0000 1308.0000 1417.0000 1526.0000 1635.0000 1744.0000 1853.0000 1962.0000 2071.0000 2180.0000 +DEAL::Checking DGQ0 against DGQ0 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ0 against DGQ0 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ0 against DGQ0 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ0 against DGQ0 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ0 against DGQ0 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ0 against DGQ0 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ0 against DGQ1 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ1 against DGQ0 in 1d: +DEAL::28.000000 11.747340 6.5000000 +DEAL::0.50000000 0.50000000 2.5000000 2.5000000 4.5000000 4.5000000 6.5000000 6.5000000 +DEAL::Checking DGQ0 against DGQ1 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ1 against DGQ0 in 2d: +DEAL::2016.0000 292.00000 61.500000 +DEAL::1.5000000 1.5000000 5.5000000 9.5000000 13.500000 13.500000 17.500000 21.500000 25.500000 25.500000 29.500000 33.500000 37.500000 37.500000 41.500000 45.500000 49.500000 49.500000 53.500000 57.500000 61.500000 61.500000 +DEAL::Checking DGQ0 against DGQ1 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ1 against DGQ0 in 3d: +DEAL::130816.00 6678.7400 507.50000 +DEAL::3.5000000 27.500000 51.500000 75.500000 99.500000 123.50000 147.50000 171.50000 203.50000 227.50000 251.50000 275.50000 299.50000 323.50000 347.50000 371.50000 403.50000 427.50000 451.50000 475.50000 499.50000 +DEAL::Checking DGQ0 against DGQ2 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ2 against DGQ0 in 1d: +DEAL::66.000000 22.315914 10.000000 +DEAL::1.0000000 1.0000000 1.0000000 4.0000000 4.0000000 4.0000000 7.0000000 7.0000000 7.0000000 10.000000 10.000000 10.000000 +DEAL::Checking DGQ0 against DGQ2 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ2 against DGQ0 in 2d: +DEAL::10296.000 991.97984 139.00000 +DEAL::4.0000000 4.0000000 13.000000 22.000000 31.000000 31.000000 40.000000 49.000000 58.000000 67.000000 67.000000 76.000000 85.000000 94.000000 94.000000 103.00000 112.00000 121.00000 130.00000 130.00000 139.00000 +DEAL::Checking DGQ0 against DGQ2 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ2 against DGQ0 in 3d: +DEAL::1492128.0 41452.735 1714.0000 +DEAL::13.000000 94.000000 175.00000 256.00000 337.00000 418.00000 526.00000 607.00000 688.00000 769.00000 850.00000 958.00000 1039.0000 1120.0000 1201.0000 1282.0000 1363.0000 1471.0000 1552.0000 1633.0000 1714.0000 +DEAL::Checking DGQ0 against DGQ4 in 1d: +DEAL::6.0000000 3.7416574 3.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 +DEAL::Checking DGQ4 against DGQ0 in 1d: +DEAL::190.00000 49.295030 17.000000 +DEAL::2.0000000 2.0000000 2.0000000 2.0000000 2.0000000 7.0000000 7.0000000 7.0000000 7.0000000 7.0000000 12.000000 12.000000 12.000000 12.000000 12.000000 17.000000 17.000000 17.000000 17.000000 17.000000 +DEAL::Checking DGQ0 against DGQ4 in 2d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ4 against DGQ0 in 2d: +DEAL::79800.000 4607.8845 387.00000 +DEAL::12.000000 12.000000 37.000000 62.000000 87.000000 112.00000 112.00000 137.00000 162.00000 187.00000 212.00000 212.00000 237.00000 262.00000 287.00000 312.00000 312.00000 337.00000 362.00000 387.00000 +DEAL::Checking DGQ0 against DGQ4 in 3d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ4 against DGQ0 in 3d: +DEAL::31996000. 413066.89 7937.0000 +DEAL::62.000000 437.00000 812.00000 1187.0000 1562.0000 2062.0000 2437.0000 2812.0000 3187.0000 3562.0000 4062.0000 4437.0000 4812.0000 5187.0000 5562.0000 6062.0000 6437.0000 6812.0000 7187.0000 7562.0000 +DEAL::Checking DGQ1 against DGQ1 in 1d: +DEAL::28.000000 11.832160 7.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 +DEAL::Checking DGQ1 against DGQ1 in 1d: +DEAL::28.000000 11.832160 7.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 +DEAL::Checking DGQ1 against DGQ1 in 2d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ1 against DGQ1 in 2d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ1 against DGQ1 in 3d: +DEAL::130816.00 6678.9412 511.00000 +DEAL::0 25.000000 50.000000 75.000000 100.00000 125.00000 150.00000 175.00000 200.00000 225.00000 250.00000 275.00000 300.00000 325.00000 350.00000 375.00000 400.00000 425.00000 450.00000 475.00000 500.00000 +DEAL::Checking DGQ1 against DGQ1 in 3d: +DEAL::130816.00 6678.9412 511.00000 +DEAL::0 25.000000 50.000000 75.000000 100.00000 125.00000 150.00000 175.00000 200.00000 225.00000 250.00000 275.00000 300.00000 325.00000 350.00000 375.00000 400.00000 425.00000 450.00000 475.00000 500.00000 +DEAL::Checking DGQ1 against DGQ3 in 1d: +DEAL::28.000000 11.832160 7.0000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 +DEAL::Checking DGQ3 against DGQ1 in 1d: +DEAL::120.00000 35.236345 15.000000 +DEAL::0 0.82917961 2.1708204 3.0000000 4.0000000 4.8291796 6.1708204 7.0000000 8.0000000 8.8291796 10.170820 11.000000 12.000000 12.829180 14.170820 15.000000 +DEAL::Checking DGQ1 against DGQ3 in 2d: +DEAL::2016.0000 292.13695 63.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 +DEAL::Checking DGQ3 against DGQ1 in 2d: +DEAL::32640.000 2357.9897 255.00000 +DEAL::0 12.000000 24.683282 35.316718 48.000000 60.000000 72.683282 83.316718 96.000000 108.00000 120.68328 131.31672 144.00000 156.00000 168.68328 179.31672 192.00000 204.00000 216.68328 227.31672 240.00000 252.00000 +DEAL::Checking DGQ1 against DGQ3 in 3d: +DEAL::130816.00 6678.9412 511.00000 +DEAL::0 25.000000 50.000000 75.000000 100.00000 125.00000 150.00000 175.00000 200.00000 225.00000 250.00000 275.00000 300.00000 325.00000 350.00000 375.00000 400.00000 425.00000 450.00000 475.00000 500.00000 +DEAL::Checking DGQ3 against DGQ1 in 3d: +DEAL::8386560.0 151321.57 4095.0000 +DEAL::0 204.00000 405.95016 614.04984 816.00000 1020.0000 1224.6833 1424.5836 1634.7331 1838.7331 2040.6833 2243.3167 2445.2669 2649.2669 2859.4164 3059.3167 3264.0000 3468.0000 3669.9502 3878.0498 4080.0000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ2 against DGQ4 in 1d: +DEAL::66.000000 22.494444 11.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 +DEAL::Checking DGQ4 against DGQ2 in 1d: +DEAL::190.00000 49.756550 19.000000 +DEAL::0 0.69069266 2.0000000 3.3093073 4.0000000 5.0000000 5.6906927 7.0000000 8.3093073 9.0000000 10.000000 10.690693 12.000000 13.309307 14.000000 15.000000 15.690693 17.000000 18.309307 19.000000 +DEAL::Checking DGQ2 against DGQ4 in 2d: +DEAL::10296.000 992.46360 143.00000 +DEAL::0 7.0000000 14.000000 21.000000 28.000000 35.000000 42.000000 49.000000 56.000000 63.000000 70.000000 77.000000 84.000000 91.000000 98.000000 105.00000 112.00000 119.00000 126.00000 133.00000 140.00000 +DEAL::Checking DGQ4 against DGQ2 in 2d: +DEAL::79800.000 4610.4633 399.00000 +DEAL::0 20.000000 41.546537 60.000000 78.453463 100.00000 120.00000 141.54654 160.00000 178.45346 200.00000 220.00000 241.54654 260.00000 278.45346 300.00000 320.00000 341.54654 360.00000 378.45346 +DEAL::Checking DGQ2 against DGQ4 in 3d: +DEAL::1492128.0 41454.000 1727.0000 +DEAL::0 86.000000 172.00000 258.00000 344.00000 430.00000 516.00000 602.00000 688.00000 774.00000 860.00000 946.00000 1032.0000 1118.0000 1204.0000 1290.0000 1376.0000 1462.0000 1548.0000 1634.0000 1720.0000 +DEAL::Checking DGQ4 against DGQ2 in 3d: +DEAL::31996000. 413081.29 7999.0000 +DEAL::0 392.26732 800.00000 1207.7327 1600.0000 2000.0000 2392.2673 2800.0000 3207.7327 3600.0000 4000.0000 4392.2673 4800.0000 5207.7327 5600.0000 6000.0000 6392.2673 6800.0000 7207.7327 7600.0000 +DEAL::Checking DGQ3 against DGQ3 in 1d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ3 against DGQ3 in 1d: +DEAL::120.00000 35.213634 15.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 +DEAL::Checking DGQ3 against DGQ3 in 2d: +DEAL::32640.000 2357.8974 255.00000 +DEAL::0 12.000000 24.000000 36.000000 48.000000 60.000000 72.000000 84.000000 96.000000 108.00000 120.00000 132.00000 144.00000 156.00000 168.00000 180.00000 192.00000 204.00000 216.00000 228.00000 240.00000 252.00000 +DEAL::Checking DGQ3 against DGQ3 in 2d: +DEAL::32640.000 2357.8974 255.00000 +DEAL::0 12.000000 24.000000 36.000000 48.000000 60.000000 72.000000 84.000000 96.000000 108.00000 120.00000 132.00000 144.00000 156.00000 168.00000 180.00000 192.00000 204.00000 216.00000 228.00000 240.00000 252.00000 +DEAL::Checking DGQ3 against DGQ3 in 3d: +DEAL::8386560.0 151321.20 4095.0000 +DEAL::0 204.00000 408.00000 612.00000 816.00000 1020.0000 1224.0000 1428.0000 1632.0000 1836.0000 2040.0000 2244.0000 2448.0000 2652.0000 2856.0000 3060.0000 3264.0000 3468.0000 3672.0000 3876.0000 4080.0000 +DEAL::Checking DGQ3 against DGQ3 in 3d: +DEAL::8386560.0 151321.20 4095.0000 +DEAL::0 204.00000 408.00000 612.00000 816.00000 1020.0000 1224.0000 1428.0000 1632.0000 1836.0000 2040.0000 2244.0000 2448.0000 2652.0000 2856.0000 3060.0000 3264.0000 3468.0000 3672.0000 3876.0000 4080.0000 +DEAL::Checking DGP0 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP1 in 3d: +DEAL::Checking DGP1 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP0 in 3d: +DEAL::Checking DGP0 against DGP4 in 1d: +DEAL::Checking DGP4 against DGP0 in 1d: +DEAL::Checking DGP0 against DGP4 in 2d: +DEAL::Checking DGP4 against DGP0 in 2d: +DEAL::Checking DGP0 against DGP4 in 3d: +DEAL::Checking DGP4 against DGP0 in 3d: +DEAL::Checking DGP1 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP1 in 3d: +DEAL::Checking DGP1 against DGP1 in 3d: +DEAL::Checking DGP1 against DGP3 in 1d: +DEAL::Checking DGP3 against DGP1 in 1d: +DEAL::Checking DGP1 against DGP3 in 2d: +DEAL::Checking DGP3 against DGP1 in 2d: +DEAL::Checking DGP1 against DGP3 in 3d: +DEAL::Checking DGP3 against DGP1 in 3d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::Checking DGP2 against DGP4 in 1d: +DEAL::Checking DGP4 against DGP2 in 1d: +DEAL::Checking DGP2 against DGP4 in 2d: +DEAL::Checking DGP4 against DGP2 in 2d: +DEAL::Checking DGP2 against DGP4 in 3d: +DEAL::Checking DGP4 against DGP2 in 3d: +DEAL::Checking DGP3 against DGP3 in 1d: +DEAL::Checking DGP3 against DGP3 in 1d: +DEAL::Checking DGP3 against DGP3 in 2d: +DEAL::Checking DGP3 against DGP3 in 2d: +DEAL::Checking DGP3 against DGP3 in 3d: +DEAL::Checking DGP3 against DGP3 in 3d: +DEAL::Checking Nedelec0 against Nedelec0 in 2d: +DEAL::Checking Nedelec0 against Nedelec0 in 2d: +DEAL::Checking Nedelec0 against Nedelec0 in 3d: +DEAL::Checking Nedelec0 against Nedelec0 in 3d: +DEAL::Checking FE_Q<1>(1)3 against FE_Q<1>(2)3 in 1d: +DEAL::Checking FE_Q<1>(2)3 against FE_Q<1>(1)3 in 1d: +DEAL::Checking FE_DGQ<1>(2)2 against FE_DGQ<1>(3)2 in 1d: +DEAL::276.00000 65.757129 23.000000 +DEAL::0 1.0000000 2.0000000 3.0000000 4.0000000 5.0000000 6.0000000 7.0000000 8.0000000 9.0000000 10.000000 11.000000 12.000000 13.000000 14.000000 15.000000 16.000000 17.000000 18.000000 19.000000 20.000000 21.000000 22.000000 23.000000 +DEAL::Checking FE_DGQ<1>(3)2 against FE_DGQ<1>(2)2 in 1d: +DEAL::496.00000 102.07448 31.000000 +DEAL::0 0.82917961 2.1708204 3.0000000 4.0000000 4.8291796 6.1708204 7.0000000 8.0000000 8.8291796 10.170820 11.000000 12.000000 12.829180 14.170820 15.000000 16.000000 16.829180 18.170820 19.000000 20.000000 20.829180 22.170820 23.000000 24.000000 24.829180 26.170820 27.000000 28.000000 28.829180 30.170820 31.000000 +DEAL::Checking FE_DGP<1>(3)1 against FE_DGP<1>(1)1 in 1d: +DEAL::Checking FE_DGP<1>(1)1 against FE_DGP<1>(3)1 in 1d: +DEAL::Checking FE_Q<2>(1)3 against FE_Q<2>(2)3 in 2d: +DEAL::2775.0000 371.24790 74.000000 +DEAL::0 3.0000000 6.0000000 9.0000000 12.000000 15.000000 18.000000 21.000000 24.000000 27.000000 30.000000 33.000000 36.000000 39.000000 42.000000 45.000000 48.000000 51.000000 54.000000 57.000000 60.000000 63.000000 66.000000 69.000000 72.000000 +DEAL::Checking FE_Q<2>(2)3 against FE_Q<2>(1)3 in 2d: +DEAL::25026.750 1917.0063 233.00000 +DEAL::0 3.0000000 4.5000000 15.000000 48.000000 27.000000 37.500000 51.000000 96.000000 85.500000 70.500000 102.00000 93.000000 108.00000 168.00000 151.50000 160.50000 130.50000 159.00000 187.50000 213.00000 +DEAL::Checking FE_DGQ<2>(2)2 against FE_DGQ<2>(3)2 in 2d: +DEAL::41328.000 2814.4626 287.00000 +DEAL::0 14.000000 28.000000 42.000000 56.000000 70.000000 84.000000 98.000000 112.00000 126.00000 140.00000 154.00000 168.00000 182.00000 196.00000 210.00000 224.00000 238.00000 252.00000 266.00000 280.00000 +DEAL::Checking FE_DGQ<2>(3)2 against FE_DGQ<2>(2)2 in 2d: +DEAL::130816.00 6679.0064 511.00000 +DEAL::0 25.512461 50.170820 75.683282 99.316718 124.82918 149.48754 175.00000 200.68328 224.82918 250.85410 275.00000 300.00000 324.14590 350.17082 374.31672 400.00000 425.51246 450.17082 475.68328 499.31672 +DEAL::Checking FE_DGP<2>(3)1 against FE_DGP<2>(1)1 in 2d: +DEAL::Checking FE_DGP<2>(1)1 against FE_DGP<2>(3)1 in 2d: +DEAL::Checking FE_Q<3>(1)3 against FE_Q<3>(2)3 in 3d: +DEAL::70125.000 4184.2413 374.00000 +DEAL::0 18.000000 36.000000 54.000000 72.000000 90.000000 108.00000 126.00000 144.00000 162.00000 180.00000 198.00000 216.00000 234.00000 252.00000 270.00000 288.00000 306.00000 324.00000 342.00000 360.00000 +DEAL::Checking FE_Q<3>(2)3 against FE_Q<3>(1)3 in 3d: +DEAL::2091747.4 52826.853 2165.0000 +DEAL::0 56.500000 107.00000 316.50000 436.00000 504.50000 622.50000 436.75000 770.00000 729.00000 1048.0000 1181.0000 1308.0000 1295.5000 1394.0000 1635.0000 1643.5000 1853.0000 1876.5000 2044.0000 2105.0000 +DEAL::Checking FE_DGQ<3>(2)2 against FE_DGQ<3>(3)2 in 3d: +DEAL::5970240.0 117275.07 3455.0000 +DEAL::0 172.00000 344.00000 516.00000 688.00000 860.00000 1032.0000 1204.0000 1376.0000 1548.0000 1720.0000 1892.0000 2064.0000 2236.0000 2408.0000 2580.0000 2752.0000 2924.0000 3096.0000 3268.0000 3440.0000 +DEAL::Checking FE_DGQ<3>(3)2 against FE_DGQ<3>(2)2 in 3d: +DEAL::33550336. 428040.43 8191.0000 +DEAL::0 406.77933 818.17082 1227.6833 1638.0498 2044.8292 2450.7544 2865.7331 3272.6833 3683.5623 4090.8541 4496.2669 4910.7331 5316.1459 5723.4377 6134.3167 6541.2669 6956.2456 7362.1708 7768.9502 8179.3167 +DEAL::Checking FE_DGP<3>(3)1 against FE_DGP<3>(1)1 in 3d: +DEAL::Checking FE_DGP<3>(1)1 against FE_DGP<3>(3)1 in 3d: diff --git a/tests/bits/fe_tools_common.h b/tests/bits/fe_tools_common.h index c0b5146015..156769eb40 100644 --- a/tests/bits/fe_tools_common.h +++ b/tests/bits/fe_tools_common.h @@ -47,9 +47,6 @@ void check_this (const FiniteElement &fe1, const FiniteElement &fe2); -// forward declaration of a variable with the name of the output file -extern std::string output_file_name; - // output some indicators for a given matrix. we don't write out the @@ -121,6 +118,17 @@ DoFHandler *make_dof_handler (const Triangulation &tria, +template +hp::DoFHandler *make_hp_dof_handler (const Triangulation &tria, + const hp::FECollection &fe) +{ + hp::DoFHandler *dof_handler = new hp::DoFHandler(tria); + dof_handler->distribute_dofs (fe); + return dof_handler; +} + + + template void check (const FiniteElement &fe1, @@ -175,7 +183,7 @@ main() { try { - std::ofstream logfile(output_file_name.c_str()); + std::ofstream logfile("output"); deallog << std::setprecision (8); deallog.attach(logfile); deallog.depth_console(0);