From: bangerth Date: Tue, 13 Feb 2007 18:33:23 +0000 (+0000) Subject: Fix a case reported on the mailing list. extract_dofs for hp DoF handlers still to... X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=461cc14d0ba4b602c9c245203a7e67872de2c2df;p=dealii-svn.git Fix a case reported on the mailing list. extract_dofs for hp DoF handlers still to be implemented. git-svn-id: https://svn.dealii.org/trunk@14468 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/dofs/dof_tools.h b/deal.II/deal.II/include/dofs/dof_tools.h index 9b66f549e6..d4d2720f50 100644 --- a/deal.II/deal.II/include/dofs/dof_tools.h +++ b/deal.II/deal.II/include/dofs/dof_tools.h @@ -690,22 +690,22 @@ class DoFTools * It is assumed that the number * of elements in @p cell_data * equals the number of active - * cells. The size of - * @p dof_data is adjusted to - * the right size. + * cells and that the number of + * elements in @p dof_data equals + * dof_handler.n_dofs(). * * Note that the input vector may * be a vector of any data type * as long as it is convertible * to @p double. The output * vector, being a data vector on - * the grid, always consists of + * a DoF handler, always consists of * elements of type @p double. * * In case the finite element * used by this DoFHandler * consists of more than one - * component, you should give + * component, you need to specify * which component in the output * vector should be used to store * the finite element field in; @@ -717,11 +717,6 @@ class DoFTools * remain untouched, i.e. their * contents are not changed. * - * It is assumed that the output - * vector @p dof_data already - * has the right size, - * i.e. n_dofs() elements. - * * This function cannot be used * if the finite element in use * has shape functions that are @@ -795,6 +790,17 @@ class DoFTools std::vector &selected_dofs, const bool blocks = false); + /** + * The same function as above, + * but for a hp::DoFHandler. + */ + template + static void + extract_dofs (const hp::DoFHandler &dof_handler, + const std::vector &select, + std::vector &selected_dofs, + const bool blocks = false); + /** * Do the same thing as * extract_dofs() for one level diff --git a/deal.II/deal.II/source/dofs/dof_tools.cc b/deal.II/deal.II/source/dofs/dof_tools.cc index 95c8367d1d..c51dde7297 100644 --- a/deal.II/deal.II/source/dofs/dof_tools.cc +++ b/deal.II/deal.II/source/dofs/dof_tools.cc @@ -2582,6 +2582,22 @@ void DoFTools::distribute_cell_to_dof_vector ( // for this at every single place // equally well const bool consider_components = (n_components(dof_handler) != 1); + + // zero out the components that we + // will touch + if (consider_components == false) + dof_data = 0; + else + { + std::vector component_dofs (dof_handler.n_dofs()); + std::vector component_mask (dof_handler.get_fe().n_components(), + false); + component_mask[component] = true; + DoFTools::extract_dofs (dof_handler, component_mask, component_dofs); + + for (unsigned int i=0; i +void +DoFTools::extract_dofs ( + const hp::DoFHandler &/*dof*/, + const std::vector &/*component_select*/, + std::vector &/*selected_dofs*/, + const bool /*count_by_blocks*/) +{ + Assert (false, ExcNotImplemented()); +/* + const FiniteElement &fe = dof.get_fe(); + + if (count_by_blocks == true) + { + Assert(component_select.size() == fe.n_blocks(), + ExcDimensionMismatch(component_select.size(), fe.n_blocks())); + } + else + { + Assert(component_select.size() == n_components(dof), + ExcDimensionMismatch(component_select.size(), n_components(dof))); + } + + Assert(selected_dofs.size() == dof.n_dofs(), + ExcDimensionMismatch(selected_dofs.size(), dof.n_dofs())); + + // two special cases: no component + // is selected, and all components + // are selected; both rather + // stupid, but easy to catch + if (std::count (component_select.begin(), component_select.end(), true) + == 0) + { + std::fill_n (selected_dofs.begin(), dof.n_dofs(), false); + return; + }; + if (std::count (component_select.begin(), component_select.end(), true) + == static_cast(component_select.size())) + { + std::fill_n (selected_dofs.begin(), dof.n_dofs(), true); + return; + }; + + + // preset all values by false + std::fill_n (selected_dofs.begin(), dof.n_dofs(), false); + + // next set up a table for the + // degrees of freedom on each of + // the cells whether it is + // something interesting or not + std::vector local_selected_dofs (fe.dofs_per_cell, false); + for (unsigned int i=0; i indices(fe.dofs_per_cell); + typename DoFHandler::active_cell_iterator c; + for (c=dof.begin_active(); c!=dof.end(); ++ c) + { + c->get_dof_indices(indices); + for (unsigned int i=0; i void DoFTools::extract_level_dofs( @@ -4942,6 +5076,10 @@ template void DoFTools::extract_dofs (const DoFHandler&, const std::vector&, std::vector&, bool); +template void DoFTools::extract_dofs +(const hp::DoFHandler&, + const std::vector&, std::vector&, bool); + template void DoFTools::extract_level_dofs (const unsigned int level, const MGDoFHandler&, const std::vector&, std::vector&, bool); diff --git a/deal.II/doc/news/changes.html b/deal.II/doc/news/changes.html index abc8b101b3..2e011d7927 100644 --- a/deal.II/doc/news/changes.html +++ b/deal.II/doc/news/changes.html @@ -1016,6 +1016,14 @@ inconvenience this causes.

deal.II

    +
  1. Fixed: The function DoFTools::distribute_cell_to_dof_vector produced + wrong results if the vector into which the result is to be + stored contained nonzero values. This is now fixed. +
    + (Rohallah Tavakoli, WB 2007/02/13) +

    +
  2. Fixed: A local variable in TriaAccessor<3,3>::measure and erroneously marked as static could lead to diff --git a/tests/bits/dof_tools_13a.cc b/tests/bits/dof_tools_13a.cc new file mode 100644 index 0000000000..5766db2dcd --- /dev/null +++ b/tests/bits/dof_tools_13a.cc @@ -0,0 +1,115 @@ +//---------------------------- dof_tools_13a.cc --------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2003, 2004, 2007 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. +// +//---------------------------- dof_tools_13a.cc --------------------------- + +#include "../tests.h" +#include "dof_tools_common.cc" +#include + +// check +// DoFTools::distribute_cell_to_dof_vector + +// this is a variant of dof_tools_13. it turned out that the function +// tested here didn't zero out its argument up front, instead adding +// to the previous content. this is not what we intended, so test with +// a preset vector and make sure that we get the same result as in +// dof_tools_13. + + + +std::string output_file_name = "dof_tools_13a/output"; + + +template +void +check_this (const DoFHandler &dof_handler) +{ + // this doesn't make much sense if + // the element is not primitive + if (dof_handler.get_fe().is_primitive() == false) + return; + + Vector cell_data (dof_handler.get_tria().n_active_cells()); + for (unsigned int i=0; i dof_data (dof_handler.n_dofs()); + + // preset the vector to make sure + // that the function zeroes out + // previous content. however, only + // touch those elements that we + // will actually use + std::vector component_dofs (dof_handler.n_dofs()); + { + std::vector component_mask (dof_handler.get_fe().n_components(), + false); + component_mask[0] = true; + DoFTools::extract_dofs (dof_handler, component_mask, component_dofs); + + for (unsigned int i=0; i component_mask (dof_handler.get_fe().n_components(), + false); + component_mask.back() = true; + DoFTools::extract_dofs (dof_handler, component_mask, component_dofs); + for (unsigned int i=0; i(1)3 in 1d: +DEAL::0 0.50 1.5 2.5 3.0 +DEAL::0 0.50 1.5 2.5 3.0 +DEAL::Checking FE_DGQ<1>(2)2 in 1d: +DEAL::0 0 1.0 0 2.0 0 3.0 0 +DEAL::0 0 1.0 1.0 2.0 2.0 3.0 3.0 +DEAL::Checking FE_DGP<1>(3)1 in 1d: +DEAL::0 0 1.0 2.0 3.0 3.0 +DEAL::0 0 2.0 4.0 6.0 6.0 +DEAL::Checking FE_Q<2>(1)3 in 2d: +DEAL::2.0 3.5 0 0.50 5.0 1.0 2.0 2.5 3.0 3.5 4.5 5.5 4.5 6.5 7.5 7.0 8.0 8.5 +DEAL::2.0 3.5 0 0.50 5.0 1.0 2.0 2.5 3.0 3.5 4.5 5.5 4.5 6.5 7.5 7.0 8.0 8.5 +DEAL::Checking FE_DGQ<2>(2)2 in 2d: +DEAL::0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 2.0 2.0 2.0 0 0 0 3.0 3.0 3.0 0 0 0 4.0 4.0 4.0 0 0 0 5.0 5.0 5.0 0 0 0 6.0 6.0 6.0 0 0 0 7.0 7.0 7.0 0 0 0 8.0 8.0 8.0 0 0 0 9.0 9.0 9.0 0 0 0 +DEAL::0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0 3.0 3.0 3.0 3.0 3.0 3.0 4.0 4.0 4.0 4.0 4.0 4.0 5.0 5.0 5.0 5.0 5.0 5.0 6.0 6.0 6.0 6.0 6.0 6.0 7.0 7.0 7.0 7.0 7.0 7.0 8.0 8.0 8.0 8.0 8.0 8.0 9.0 9.0 9.0 9.0 9.0 9.0 +DEAL::Checking FE_DGP<2>(3)1 in 2d: +DEAL::0 0 0 0 1.0 1.0 1.0 2.0 2.0 2.0 3.0 3.0 3.0 3.0 4.0 4.0 4.0 5.0 5.0 5.0 6.0 6.0 6.0 6.0 7.0 7.0 7.0 8.0 8.0 8.0 9.0 9.0 9.0 9.0 +DEAL::0 0 0 0 2.0 2.0 2.0 4.0 4.0 4.0 6.0 6.0 6.0 6.0 8.0 8.0 8.0 10. 10. 10. 12. 12. 12. 12. 14. 14. 14. 16. 16. 16. 18. 18. 18. 18. +DEAL::Checking FE_Q<3>(1)3 in 3d: +DEAL::4.0 6.5 0 0.50 4.5 6.0 2.0 2.5 9.0 1.0 7.5 3.0 6.0 8.5 2.0 2.5 3.0 3.5 11. 3.0 4.0 4.0 4.5 5.0 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10. 12. 12. 14. 8.5 10. 10. 14. 10. 11. 12. 16. 12. 14. 16. 16. 18. 15. 16. 17. 18. 16. 18. 19. 18. 20. 20. 20. +DEAL::4.0 6.5 0 0.50 4.5 6.0 2.0 2.5 9.0 1.0 7.5 3.0 6.0 8.5 2.0 2.5 3.0 3.5 11. 3.0 4.0 4.0 4.5 5.0 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10. 12. 12. 14. 8.5 10. 10. 14. 10. 11. 12. 16. 12. 14. 16. 16. 18. 15. 16. 17. 18. 16. 18. 19. 18. 20. 20. 20. +DEAL::Checking FE_DGQ<3>(2)2 in 3d: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 0 0 0 0 0 0 0 0 0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 0 0 0 0 0 0 0 0 0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 0 0 0 0 0 0 0 0 0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 0 0 0 0 0 0 0 0 0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 0 0 0 0 0 0 0 0 0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 0 0 0 0 0 0 0 0 0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 0 0 0 0 0 0 0 0 0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 0 0 0 0 0 0 0 0 0 10. 10. 10. 10. 10. 10. 10. 10. 10. 0 0 0 0 0 0 0 0 0 11. 11. 11. 11. 11. 11. 11. 11. 11. 0 0 0 0 0 0 0 0 0 12. 12. 12. 12. 12. 12. 12. 12. 12. 0 0 0 0 0 0 0 0 0 13. 13. 13. 13. 13. 13. 13. 13. 13. 0 0 0 0 0 0 0 0 0 14. 14. 14. 14. 14. 14. 14. 14. 14. 0 0 0 0 0 0 0 0 0 15. 15. 15. 15. 15. 15. 15. 15. 15. 0 0 0 0 0 0 0 0 0 16. 16. 16. 16. 16. 16. 16. 16. 16. 0 0 0 0 0 0 0 0 0 17. 17. 17. 17. 17. 17. 17. 17. 17. 0 0 0 0 0 0 0 0 0 18. 18. 18. 18. 18. 18. 18. 18. 18. 0 0 0 0 0 0 0 0 0 19. 19. 19. 19. 19. 19. 19. 19. 19. 0 0 0 0 0 0 0 0 0 20. 20. 20. 20. 20. 20. 20. 20. 20. 0 0 0 0 0 0 0 0 0 21. 21. 21. 21. 21. 21. 21. 21. 21. 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 5.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 11. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 13. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 15. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 17. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 19. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. +DEAL::Checking FE_DGP<3>(3)1 in 3d: +DEAL::0 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 2.0 2.0 2.0 2.0 2.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 4.0 4.0 4.0 4.0 4.0 4.0 4.0 5.0 5.0 5.0 5.0 5.0 5.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 7.0 7.0 7.0 7.0 7.0 7.0 7.0 8.0 8.0 8.0 8.0 8.0 8.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0 10. 10. 10. 10. 10. 10. 10. 11. 11. 11. 11. 11. 11. 12. 12. 12. 12. 12. 12. 12. 13. 13. 13. 13. 13. 13. 13. 14. 14. 14. 14. 14. 14. 15. 15. 15. 15. 15. 15. 15. 16. 16. 16. 16. 16. 16. 16. 17. 17. 17. 17. 17. 17. 18. 18. 18. 18. 18. 18. 18. 19. 19. 19. 19. 19. 19. 19. 20. 20. 20. 20. 20. 20. 21. 21. 21. 21. 21. 21. 21. +DEAL::0 0 0 0 0 0 0 2.0 2.0 2.0 2.0 2.0 2.0 2.0 4.0 4.0 4.0 4.0 4.0 4.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 8.0 8.0 8.0 8.0 8.0 8.0 8.0 10. 10. 10. 10. 10. 10. 12. 12. 12. 12. 12. 12. 12. 14. 14. 14. 14. 14. 14. 14. 16. 16. 16. 16. 16. 16. 18. 18. 18. 18. 18. 18. 18. 20. 20. 20. 20. 20. 20. 20. 22. 22. 22. 22. 22. 22. 24. 24. 24. 24. 24. 24. 24. 26. 26. 26. 26. 26. 26. 26. 28. 28. 28. 28. 28. 28. 30. 30. 30. 30. 30. 30. 30. 32. 32. 32. 32. 32. 32. 32. 34. 34. 34. 34. 34. 34. 36. 36. 36. 36. 36. 36. 36. 38. 38. 38. 38. 38. 38. 38. 40. 40. 40. 40. 40. 40. 42. 42. 42. 42. 42. 42. 42. +DEAL::Checking FE_Q<1>(1)3FE_DGQ<1>(2)2 in 1d: +DEAL::0 0.50 0 0 1.5 0 0 2.5 0 0 3.0 0 0 +DEAL::0 0.50 0 0 1.5 0 1.0 2.5 0 2.0 3.0 0 3.0 +DEAL::Checking FE_DGQ<1>(2)2FE_DGP<1>(3)1 in 1d: +DEAL::0 0 0 0 1.0 0 0 2.0 0 0 3.0 0 0 0 +DEAL::0 0 0 0 1.0 0 1.0 2.0 0 2.0 3.0 0 3.0 3.0 +DEAL::Checking FE_DGP<1>(3)1FE_DGQ<1>(2)2 in 1d: +DEAL::0 0 0 0 1.0 0 0 2.0 0 0 3.0 3.0 0 0 +DEAL::0 0 0 0 1.0 0 1.0 2.0 0 2.0 3.0 3.0 0 3.0 +DEAL::Checking FE_Q<2>(1)3FE_DGQ<2>(2)2 in 2d: +DEAL::2.0 3.5 0 0.50 0 0 0 0 0 0 5.0 1.0 0 0 0 0 0 0 2.0 2.5 3.0 3.5 0 0 0 0 0 0 4.5 5.5 0 0 0 0 0 0 4.5 0 0 0 0 0 0 0 0 0 0 0 0 6.5 7.5 0 0 0 0 0 0 7.0 8.0 0 0 0 0 0 0 8.5 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::2.0 3.5 0 0.50 0 0 0 0 0 0 5.0 1.0 0 0 0 1.0 1.0 1.0 2.0 2.5 3.0 3.5 0 0 0 2.0 2.0 2.0 4.5 5.5 0 0 0 3.0 3.0 3.0 4.5 0 0 0 4.0 4.0 4.0 0 0 0 5.0 5.0 5.0 6.5 7.5 0 0 0 6.0 6.0 6.0 7.0 8.0 0 0 0 7.0 7.0 7.0 8.5 0 0 0 8.0 8.0 8.0 0 0 0 9.0 9.0 9.0 +DEAL::Checking FE_DGQ<2>(2)2FE_DGP<2>(3)1 in 2d: +DEAL::0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 2.0 2.0 2.0 0 0 0 0 0 0 3.0 3.0 3.0 0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 0 0 5.0 5.0 5.0 0 0 0 0 0 0 6.0 6.0 6.0 0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 0 0 8.0 8.0 8.0 0 0 0 0 0 0 9.0 9.0 9.0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 1.0 1.0 1.0 2.0 2.0 2.0 0 0 0 2.0 2.0 2.0 3.0 3.0 3.0 0 0 0 3.0 3.0 3.0 3.0 4.0 4.0 4.0 0 0 0 4.0 4.0 4.0 5.0 5.0 5.0 0 0 0 5.0 5.0 5.0 6.0 6.0 6.0 0 0 0 6.0 6.0 6.0 6.0 7.0 7.0 7.0 0 0 0 7.0 7.0 7.0 8.0 8.0 8.0 0 0 0 8.0 8.0 8.0 9.0 9.0 9.0 0 0 0 9.0 9.0 9.0 9.0 +DEAL::Checking FE_DGP<2>(3)1FE_DGQ<2>(2)2 in 2d: +DEAL::0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 2.0 2.0 2.0 0 0 0 0 0 0 3.0 3.0 3.0 3.0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 0 0 5.0 5.0 5.0 0 0 0 0 0 0 6.0 6.0 6.0 6.0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 0 0 8.0 8.0 8.0 0 0 0 0 0 0 9.0 9.0 9.0 9.0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 1.0 1.0 1.0 2.0 2.0 2.0 0 0 0 2.0 2.0 2.0 3.0 3.0 3.0 3.0 0 0 0 3.0 3.0 3.0 4.0 4.0 4.0 0 0 0 4.0 4.0 4.0 5.0 5.0 5.0 0 0 0 5.0 5.0 5.0 6.0 6.0 6.0 6.0 0 0 0 6.0 6.0 6.0 7.0 7.0 7.0 0 0 0 7.0 7.0 7.0 8.0 8.0 8.0 0 0 0 8.0 8.0 8.0 9.0 9.0 9.0 9.0 0 0 0 9.0 9.0 9.0 +DEAL::Checking FE_Q<1>(1)3FE_DGP<1>(3)1FE_Q<1>(1)3 in 1d: +DEAL::0 0 0.50 0 0 0 0 0 0 0 0 0 3.0 0 0 0 +DEAL::0 0 0.50 0 0 0 0 1.5 0 0 0 0 3.0 0 0 0 +DEAL::Checking FE_DGQ<1>(2)2FE_DGQ<1>(2)2FE_Q<1>(3)3 in 1d: +DEAL::0 0 0 0 0 0 0 0 0 1.0 0 0 0 0 0 0 2.0 0 0 0 0 0 0 3.0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 1.0 0 0 0 0 0 0 2.0 0 0 0 0 0 0 3.0 0 0 0 0 0 +DEAL::Checking FE_DGP<1>(3)1FE_DGP<1>(3)1FE_Q<1>(2)3 in 1d: +DEAL::0 0 0 0 0 0 0 1.0 0 0 0 0 2.0 0 0 0 3.0 3.0 0 0 +DEAL::0 0 0 0 0 0 0 1.0 0 0 1.0 2.5 2.0 0 0 0 3.0 3.0 0 0 +DEAL::Checking FE_Q<2>(1)3FE_DGP<2>(3)1FE_Q<2>(1)3 in 2d: +DEAL::2.0 0 3.5 0 0 0 0.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.5 0 5.5 0 0 0 0 0 0 0 0 0 0 0 0 0 6.5 0 7.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::2.0 0 3.5 0 0 0 0.50 0 0 0 0 0 0 5.0 0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.5 0 5.5 0 0 0 0 0 0 4.5 0 0 0 0 0 0 6.5 0 7.5 0 0 0 0 0 0 7.0 0 8.0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::Checking FE_DGQ<2>(2)2FE_DGQ<2>(2)2FE_Q<2>(3)3 in 2d: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.0 2.0 2.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.0 3.0 3.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.0 5.0 5.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.0 6.0 6.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.0 8.0 8.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9.0 9.0 9.0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 2.0 2.0 2.0 0 0 0 0 0 0 0 0 0 0 0 0 2.0 0 0 0 0 0 0 0 0 3.0 3.0 3.0 0 0 0 0 0 0 0 0 0 0 0 0 3.0 0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 0 0 0 0 0 0 0 0 4.0 0 0 0 0 5.0 5.0 5.0 0 0 0 0 0 0 0 0 0 0 0 0 5.0 0 0 0 0 0 0 0 0 6.0 6.0 6.0 0 0 0 0 0 0 0 0 0 0 0 0 6.0 0 0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 0 0 0 0 0 0 0 0 7.0 0 0 0 0 0 8.0 8.0 8.0 0 0 0 0 0 0 0 0 0 0 0 0 8.0 0 0 0 0 9.0 9.0 9.0 0 0 0 0 0 0 0 0 0 0 0 0 9.0 +DEAL::Checking FE_DGP<2>(3)1FE_DGP<2>(3)1FE_Q<2>(2)3 in 2d: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.0 2.0 2.0 0 0 0 0 0 0 0 0 0 3.0 3.0 3.0 3.0 0 0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 0 0 0 5.0 5.0 5.0 0 0 0 0 0 0 0 0 0 6.0 6.0 6.0 6.0 0 0 0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 0 0 0 0 8.0 8.0 8.0 0 0 0 0 0 0 9.0 9.0 9.0 9.0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 1.0 2.0 2.5 3.0 3.5 2.0 2.5 2.0 3.0 2.0 2.0 2.0 0 0 0 0 0 0 0 0 0 3.0 3.0 3.0 3.0 0 0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 4.0 6.5 5.0 5.0 5.0 5.0 0 0 0 0 0 0 0 0 0 6.0 6.0 6.0 6.0 0 0 0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 7.0 8.5 8.5 8.0 8.0 8.0 8.0 0 0 0 0 0 0 9.0 9.0 9.0 9.0 0 0 0 0 +DEAL::Checking FE_DGQ<3>(1)3FE_DGP<3>(3)1FE_Q<3>(1)3 in 3d: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.0 2.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.0 3.0 3.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.0 5.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.0 6.0 6.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8.0 8.0 0 0 0 0 0 0 0 0 0 0 0 0 0 9.0 9.0 9.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10. 10. 10. 0 0 0 0 0 0 0 0 0 0 0 0 0 11. 11. 0 0 0 0 0 0 0 0 0 0 0 0 0 12. 12. 12. 0 0 0 0 0 0 0 0 0 0 0 0 13. 13. 13. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 14. 14. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15. 15. 15. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16. 16. 16. 0 0 0 0 0 0 0 0 0 0 0 0 0 17. 17. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18. 18. 18. 0 0 0 0 0 0 0 0 0 0 0 0 0 19. 19. 19. 0 0 0 0 0 0 0 0 0 0 0 0 0 20. 20. 0 0 0 0 0 0 0 0 0 0 0 0 21. 21. 21. 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 6.0 8.5 2.0 2.5 3.0 3.5 2.0 2.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3.0 3.0 3.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.0 4.0 4.0 0 0 0 0 0 0 0 0 0 0 0 0 5.0 5.0 5.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6.0 6.0 6.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.0 7.0 7.0 0 0 0 0 0 0 0 0 0 0 0 0 8.5 10. 10. 8.0 8.0 0 0 0 0 0 0 0 0 0 0 0 0 0 9.0 9.0 9.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10. 10. 10. 0 0 0 0 0 0 0 0 0 0 0 0 16. 11. 11. 0 0 0 0 0 0 0 0 0 0 0 0 0 12. 12. 12. 0 0 0 0 0 0 0 0 0 0 0 0 13. 13. 13. 0 0 0 0 0 0 0 0 0 0 0 0 14. 16. 16. 18. 14. 14. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15. 15. 15. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16. 16. 16. 0 0 0 0 0 0 0 0 0 0 0 0 19. 17. 17. 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18. 18. 18. 0 0 0 0 0 0 0 0 0 0 0 0 0 19. 19. 19. 0 0 0 0 0 0 0 0 0 0 0 0 20. 20. 20. 0 0 0 0 0 0 0 0 0 0 0 0 21. 21. 21. 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::Checking (FESystem<2>(FE_Q<2>(1),3))3FE_DGQ<2>(0)1FE_Q<2>(1)3 in 2d: +DEAL::2.0 0 0 0 3.5 0 0 0 0 0 0 0 0.50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.5 0 0 0 5.5 0 0 0 0 0 0 0 0 6.5 0 0 0 7.5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::2.0 0 0 0 3.5 0 0 0 0 0 0 0 0.50 0 0 0 0 0 0 0 5.0 0 0 0 1.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.5 0 0 0 5.5 0 0 0 0 0 0 0 4.5 6.5 0 0 0 7.5 0 0 0 0 0 0 0 7.0 0 0 0 8.0 0 0 0 0 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::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 2.0 2.0 2.0 2.0 2.0 0 0 0 0 0 0 3.0 3.0 3.0 3.0 3.0 0 0 0 0 0 4.0 4.0 4.0 4.0 4.0 0 0 0 0 5.0 5.0 5.0 5.0 5.0 0 0 0 0 0 0 6.0 6.0 6.0 6.0 6.0 0 0 0 0 0 0 7.0 7.0 7.0 7.0 7.0 0 0 0 0 0 8.0 8.0 8.0 8.0 8.0 0 0 0 0 9.0 9.0 9.0 9.0 9.0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 0 0 2.0 2.0 2.0 2.0 2.0 0 0 0 0 0 0 3.0 3.0 3.0 3.0 3.0 0 0 0 0 0 4.0 4.0 4.0 4.0 4.0 0 0 4.0 0 5.0 5.0 5.0 5.0 5.0 0 0 5.0 0 0 0 6.0 6.0 6.0 6.0 6.0 0 0 6.0 0 0 0 7.0 7.0 7.0 7.0 7.0 0 0 7.0 0 0 8.0 8.0 8.0 8.0 8.0 0 0 0 0 9.0 9.0 9.0 9.0 9.0 0 0 +DEAL::Checking FE_DGQ<2>(3)1FE_Nedelec<2>(1)2 in 2d: +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: