]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Fix a case reported on the mailing list. extract_dofs for hp DoF handlers still to...
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 13 Feb 2007 18:33:23 +0000 (18:33 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Tue, 13 Feb 2007 18:33:23 +0000 (18:33 +0000)
git-svn-id: https://svn.dealii.org/trunk@14468 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/dofs/dof_tools.h
deal.II/deal.II/source/dofs/dof_tools.cc
deal.II/doc/news/changes.html
tests/bits/dof_tools_13a.cc [new file with mode: 0644]
tests/bits/dof_tools_13a/cmp/generic [new file with mode: 0644]

index 9b66f549e6e5014b51dfce71e742c718fe33b96b..d4d2720f5058fb9f8eb0b9ee82c308b63e17fdec 100644 (file)
@@ -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
+                                     * <tt>dof_handler.n_dofs()</tt>.
                                      *
                                      * 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<bool>       &selected_dofs,
                  const bool               blocks = false);
 
+                                    /**
+                                     * The same function as above,
+                                     * but for a hp::DoFHandler.
+                                     */
+    template <int dim>
+    static void
+    extract_dofs (const hp::DoFHandler<dim>   &dof_handler,
+                 const std::vector<bool> &select,
+                 std::vector<bool>       &selected_dofs,
+                 const bool               blocks = false);
+    
                                     /**
                                      * Do the same thing as
                                      * extract_dofs() for one level
index 95c8367d1d0f966d0cbdee447c1a475f81aa4ac4..c51dde72973d412c4cbea09af56e4f281c9f1442 100644 (file)
@@ -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<bool> component_dofs (dof_handler.n_dofs());
+      std::vector<bool> 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<dof_data.size(); ++i)
+       dof_data(i) = 0;
+    }
   
                                   // count how often we have added a value
                                   // in the sum for each dof
@@ -2612,8 +2628,8 @@ void DoFTools::distribute_cell_to_dof_vector (
                                             // note that we added another
                                             // summand
            ++touch_count[dof_indices[i]];
-         };
-    };
+         }
+    }
   
                                   // compute the mean value on all the
                                   // dofs by dividing with the number
@@ -2628,7 +2644,7 @@ void DoFTools::distribute_cell_to_dof_vector (
              ExcInternalError());
       if (touch_count[i] != 0)
        dof_data(i) /=  touch_count[i];
-    };
+    }
 }
 
 
@@ -2746,6 +2762,124 @@ DoFTools::extract_dofs (
 }
 
 
+
+template <int dim>
+void
+DoFTools::extract_dofs (
+  const hp::DoFHandler<dim>   &/*dof*/,
+  const std::vector<bool> &/*component_select*/,
+  std::vector<bool>       &/*selected_dofs*/,
+  const bool               /*count_by_blocks*/)
+{
+  Assert (false, ExcNotImplemented());
+/*  
+  const FiniteElement<dim> &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<signed int>(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<bool> local_selected_dofs (fe.dofs_per_cell, false);
+  for (unsigned int i=0; i<fe.dofs_per_cell; ++i)
+    if (count_by_blocks == true)
+      local_selected_dofs[i]
+        = component_select[fe.system_to_block_index(i).first];
+    else
+      if (fe.is_primitive(i))
+       local_selected_dofs[i]
+         = component_select[fe.system_to_component_index(i).first];
+      else
+                                        // if this shape function is
+                                        // not primitive, then we have
+                                        // to work harder. we have to
+                                        // find out whether _any_ of
+                                        // the vector components of
+                                        // this element is selected or
+                                        // not
+                                        //
+                                        // to do so, get the first and
+                                        // last vector components of
+                                        // the base element to which
+                                        // the local dof with index i
+                                        // belongs
+       {
+         unsigned int first_comp = 0;
+         const unsigned int this_base = fe.system_to_base_index(i).first.first;
+         const unsigned int this_multiplicity
+           = fe.system_to_base_index(i).first.second;
+         
+         for (unsigned int b=0; b<this_base; ++b)
+           first_comp += fe.base_element(b).n_components() *
+                         fe.element_multiplicity(b);
+         for (unsigned int m=0; m<this_multiplicity; ++m)
+           first_comp += fe.base_element(this_base).n_components();
+         const unsigned int end_comp = first_comp +
+                                       fe.base_element(this_base).n_components();
+         
+         Assert (first_comp < fe.n_components(), ExcInternalError());
+         Assert (end_comp <= fe.n_components(),  ExcInternalError());
+         
+                                          // now check whether any of
+                                          // the components in between
+                                          // is set
+         for (unsigned int c=first_comp; c<end_comp; ++c)
+           if (component_select[c] == true)
+             {
+               local_selected_dofs[i] = true;
+               break;
+             }
+       }
+  
+                                   // then loop over all cells and do
+                                   // the work
+  std::vector<unsigned int> indices(fe.dofs_per_cell);
+  typename DoFHandler<dim>::active_cell_iterator c;
+  for (c=dof.begin_active(); c!=dof.end(); ++ c)
+    {
+      c->get_dof_indices(indices);
+      for (unsigned int i=0; i<fe.dofs_per_cell; ++i)
+        selected_dofs[indices[i]] = local_selected_dofs[i];
+    }
+*/  
+}
+
+
+
 template<int dim>
 void
 DoFTools::extract_level_dofs(
@@ -4942,6 +5076,10 @@ template void DoFTools::extract_dofs<deal_II_dimension>
 (const DoFHandler<deal_II_dimension>&,
  const std::vector<bool>&, std::vector<bool>&, bool);
 
+template void DoFTools::extract_dofs<deal_II_dimension>
+(const hp::DoFHandler<deal_II_dimension>&,
+ const std::vector<bool>&, std::vector<bool>&, bool);
+
 template void DoFTools::extract_level_dofs<deal_II_dimension>
 (const unsigned int level, const MGDoFHandler<deal_II_dimension>&,
  const std::vector<bool>&, std::vector<bool>&, bool);
index abc8b101b3a44b473e323e43227de3a708a945f2..2e011d7927a1c6005c63cf099a4ef57bfc3e2279 100644 (file)
@@ -1016,6 +1016,14 @@ inconvenience this causes.
 <h3>deal.II</h3>
 
 <ol>
+   <li> <p>Fixed: The function <code class="class">DoFTools</code>::<code 
+       class="member">distribute_cell_to_dof_vector</code> produced
+       wrong results if the vector into which the result is to be
+       stored contained nonzero values. This is now fixed.
+       <br>
+       (Rohallah Tavakoli, WB 2007/02/13)
+       </p>
+
    <li> <p>Fixed: A local variable in
        <code>TriaAccessor&lt;3,3&gt;::measure</code> and <code
        class="member"> 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 (file)
index 0000000..5766db2
--- /dev/null
@@ -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 <lac/vector.h>
+
+// 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 <int dim>
+void
+check_this (const DoFHandler<dim> &dof_handler)
+{
+                                   // this doesn't make much sense if
+                                   // the element is not primitive
+  if (dof_handler.get_fe().is_primitive() == false)
+    return;
+  
+  Vector<double> cell_data (dof_handler.get_tria().n_active_cells());
+  for (unsigned int i=0; i<cell_data.size(); ++i)
+    cell_data(i) = i;
+
+                                   // distribute to first component
+  Vector<double> 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<bool> component_dofs (dof_handler.n_dofs());
+  {
+    std::vector<bool> 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<dof_data.size(); ++i)
+      if (component_dofs[i] == true)
+       dof_data(i) = i+1;
+      else
+       dof_data(i) = 0;
+  }
+  
+  DoFTools::distribute_cell_to_dof_vector (dof_handler,
+                                           cell_data,
+                                           dof_data);
+                                   // output every third element
+  for (unsigned int i=0; i<dof_data.size(); i+=3)
+    deallog << dof_data(i) << " ";
+  deallog << std::endl;  
+
+                                  // check that no other values were
+                                  // set
+  for (unsigned int i=0; i<dof_data.size(); ++i)
+    if (component_dofs[i] == false)
+      Assert (dof_data(i) == 0,
+             ExcInternalError());
+  
+
+                                   // distribute to last component. by
+                                   // default we distribute to
+                                   // component zero
+  
+                                  // preset the vector again to make
+                                  // sure that the function zeroes out
+                                  // previous content. 
+  {
+    std::vector<bool> 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<dof_data.size(); ++i)
+      if (component_dofs[i] == true)
+       dof_data(i) = i+1;
+      else
+       dof_data(i) = 0;
+  }
+  DoFTools::distribute_cell_to_dof_vector (dof_handler,
+                                           cell_data,
+                                           dof_data,
+                                           dof_handler.get_fe().n_components()-1);
+  for (unsigned int i=0; i<dof_data.size(); i+=3)
+    deallog << dof_data(i) << " ";
+  deallog << std::endl;  
+
+                                  // check that no other values were
+                                  // set
+  for (unsigned int i=0; i<dof_data.size(); ++i)
+    if (component_dofs[i] == false)
+      Assert (dof_data(i) == 0,
+             ExcInternalError());
+}
diff --git a/tests/bits/dof_tools_13a/cmp/generic b/tests/bits/dof_tools_13a/cmp/generic
new file mode 100644 (file)
index 0000000..29ea757
--- /dev/null
@@ -0,0 +1,167 @@
+
+DEAL::Checking Q1 in 1d:
+DEAL::0 2.5 
+DEAL::0 3.8 
+DEAL::Checking Q1 in 2d:
+DEAL::2.0 0.50 2.0 3.5 4.5 7.0 
+DEAL::3.0 0.75 4.0 4.4 6.8 14. 
+DEAL::Checking Q1 in 3d:
+DEAL::4.0 0.50 2.0 1.0 6.0 2.5 11. 4.0 6.0 7.5 9.0 12. 8.5 14. 12. 14. 18. 17. 18. 20. 
+DEAL::6.0 0.75 3.0 2.0 9.0 3.8 16. 8.0 12. 9.4 11. 14. 13. 18. 14. 22. 20. 26. 23. 24. 
+DEAL::Checking Q2 in 1d:
+DEAL::0 1.5 2.0 
+DEAL::0 2.2 4.0 
+DEAL::Checking Q2 in 2d:
+DEAL::2.0 0.50 0 5.0 1.0 2.0 3.5 2.0 4.5 3.0 4.5 4.0 5.0 7.5 7.0 8.0 8.0 8.5 9.0 
+DEAL::3.0 0.75 0 7.5 2.0 4.0 4.4 4.0 6.8 6.0 6.8 8.0 10. 9.4 10. 12. 12. 13. 18. 
+DEAL::Checking Q2 in 3d:
+DEAL::4.0 0.50 2.0 0.50 2.0 2.0 0 0.50 0 9.0 3.0 1.0 3.0 1.0 1.0 6.0 2.5 2.0 2.0 3.0 3.0 2.5 2.0 11. 3.0 3.0 4.0 4.0 3.0 4.0 4.0 4.5 4.0 5.0 5.0 6.0 7.5 9.0 6.5 8.0 9.0 7.0 6.5 6.0 10. 14. 8.0 10. 10. 7.0 8.5 8.0 10. 8.0 8.5 10. 12. 11. 9.0 9.0 12. 10. 10. 10. 11. 16. 12. 14. 11. 12. 12. 12. 12. 16. 13. 16. 14. 16. 14. 14. 16. 16. 15. 17. 15. 15. 17. 18. 18. 16. 18. 17. 19. 17. 17. 18. 18. 18. 18. 19. 20. 20. 20. 20. 20. 21. 21. 
+DEAL::6.0 0.75 3.0 0.75 3.0 3.0 0 0.75 0 14. 4.5 2.0 4.5 2.0 2.0 9.0 3.8 4.0 4.0 4.5 4.5 3.8 4.0 16. 6.0 6.0 6.0 6.0 6.0 8.0 8.0 6.8 8.0 10. 10. 12. 9.4 11. 9.8 12. 11. 10. 9.8 12. 16. 15. 12. 12. 16. 14. 13. 16. 15. 16. 13. 15. 19. 16. 18. 18. 14. 20. 16. 20. 16. 19. 18. 22. 22. 24. 24. 19. 24. 25. 26. 19. 22. 21. 22. 28. 24. 24. 30. 26. 30. 30. 26. 23. 23. 25. 27. 34. 28. 34. 34. 28. 28. 36. 36. 38. 30. 30. 31. 31. 40. 42. 42. 
+DEAL::Checking Q3 in 1d:
+DEAL::0 0 1.0 2.0 3.0 
+DEAL::0 0 2.0 4.0 6.0 
+DEAL::Checking Q3 in 2d:
+DEAL::2.0 0.50 0.50 0 0 0 1.0 1.0 1.0 1.0 3.0 2.0 2.0 3.0 2.0 5.5 3.0 4.0 3.0 4.0 4.5 4.0 4.0 5.0 5.0 6.5 6.5 7.0 6.0 7.0 7.0 8.0 7.0 8.5 8.0 8.0 9.0 9.0 9.0 
+DEAL::3.0 0.75 0.75 0 0 0 2.0 2.0 2.0 2.0 4.5 4.0 4.0 4.5 4.0 6.9 6.0 6.0 6.0 8.0 6.8 8.0 8.0 10. 10. 9.8 9.8 10. 12. 14. 14. 12. 14. 13. 16. 16. 18. 18. 18. 
+DEAL::Checking Q3 in 3d:
+DEAL::4.0 0.50 2.0 0 0 0 2.5 2.0 0 0.50 0.50 0 0.50 0.50 0 0 0 0 2.0 0 0 0 7.5 1.0 1.0 3.0 3.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 3.0 1.0 1.0 1.0 2.0 3.5 2.5 2.0 2.5 2.0 2.0 2.5 3.5 2.0 2.5 2.5 2.0 3.0 2.0 2.0 2.0 2.0 2.0 2.0 4.0 3.0 3.0 4.0 3.0 3.0 3.0 3.0 4.0 3.0 3.0 3.0 3.0 3.0 3.0 4.0 4.5 4.0 4.5 4.0 4.5 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 7.0 8.5 6.0 6.5 7.0 8.0 8.0 9.0 6.5 7.0 6.0 6.0 6.5 6.0 7.0 7.0 6.0 8.0 6.0 6.0 6.0 12. 10. 7.0 12. 9.0 10. 12. 10. 7.0 8.0 8.0 7.0 9.0 7.0 7.0 7.0 10. 8.0 8.0 10. 10. 8.0 8.0 8.0 8.5 8.0 8.0 8.0 10. 8.0 8.0 8.0 12. 14. 11. 12. 12. 9.0 9.0 11. 11. 9.0 9.0 10. 10. 10. 11. 10. 11. 12. 10. 10. 10. 10. 11. 10. 10. 10. 10. 14. 11. 14. 16. 14. 11. 12. 12. 11. 11. 11. 11. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 16. 13. 16. 16. 13. 13. 13. 13. 13. 16. 14. 14. 16. 16. 14. 16. 14. 14. 15. 15. 14. 16. 14. 14. 14. 16. 15. 15. 17. 17. 15. 16. 15. 15. 16. 16. 15. 17. 15. 15. 15. 18. 16. 18. 16. 16. 16. 16. 16. 18. 16. 16. 16. 17. 17. 19. 17. 17. 17. 17. 17. 19. 17. 17. 17. 18. 18. 18. 20. 18. 18. 19. 19. 18. 18. 18. 18. 19. 20. 19. 19. 19. 19. 20. 19. 19. 19. 19. 20. 20. 20. 20. 20. 20. 20. 20. 20. 21. 21. 21. 21. 21. 21. 21. 21. 21. 
+DEAL::6.0 0.75 3.0 0 0 0 3.1 2.7 0 0.75 0.75 0 0.75 0.75 0 0 0 0 3.0 0 0 0 9.4 2.0 2.0 4.5 4.5 2.0 2.0 2.0 2.0 2.0 2.0 2.0 4.5 2.0 2.0 2.0 4.0 4.4 3.8 4.0 3.8 4.0 4.0 3.8 4.4 4.0 3.8 3.8 4.0 4.5 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 6.0 6.0 6.0 6.0 6.0 6.0 6.0 6.0 8.0 6.8 8.0 6.8 8.0 6.8 8.0 8.0 8.0 8.0 8.0 8.0 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 11. 12. 9.8 10. 12. 12. 11. 9.8 10. 12. 12. 9.8 12. 10. 10. 12. 12. 12. 12. 12. 14. 16. 14. 16. 14. 16. 14. 16. 14. 12. 12. 14. 14. 14. 14. 14. 15. 16. 16. 15. 15. 16. 16. 16. 13. 16. 16. 16. 15. 16. 16. 16. 19. 18. 16. 19. 19. 18. 18. 16. 16. 18. 18. 16. 20. 16. 16. 20. 16. 14. 20. 16. 20. 20. 16. 20. 20. 20. 20. 22. 22. 22. 19. 22. 22. 18. 18. 22. 22. 22. 22. 24. 24. 24. 24. 24. 19. 24. 24. 24. 24. 24. 25. 26. 25. 25. 26. 26. 26. 26. 26. 19. 22. 28. 21. 24. 22. 19. 22. 28. 22. 22. 28. 24. 28. 28. 28. 24. 30. 30. 26. 26. 30. 24. 30. 30. 24. 24. 30. 26. 30. 30. 30. 23. 32. 23. 25. 25. 32. 32. 32. 27. 32. 32. 32. 34. 34. 28. 34. 34. 34. 34. 34. 28. 34. 34. 34. 28. 36. 28. 24. 28. 36. 28. 28. 36. 36. 36. 36. 38. 30. 38. 38. 38. 38. 30. 38. 38. 38. 38. 31. 40. 31. 31. 40. 40. 40. 40. 40. 42. 42. 42. 42. 42. 42. 42. 42. 42. 
+DEAL::Checking DGQ0 in 1d:
+DEAL::0 3.0 
+DEAL::0 6.0 
+DEAL::Checking DGQ0 in 2d:
+DEAL::0 3.0 6.0 9.0 
+DEAL::0 6.0 12. 18. 
+DEAL::Checking DGQ0 in 3d:
+DEAL::0 3.0 6.0 9.0 12. 15. 18. 21. 
+DEAL::0 6.0 12. 18. 24. 30. 36. 42. 
+DEAL::Checking DGQ1 in 1d:
+DEAL::0 1.0 3.0 
+DEAL::0 2.0 6.0 
+DEAL::Checking DGQ1 in 2d:
+DEAL::0 0 1.0 2.0 3.0 3.0 4.0 5.0 6.0 6.0 7.0 8.0 9.0 9.0 
+DEAL::0 0 2.0 4.0 6.0 6.0 8.0 10. 12. 12. 14. 16. 18. 18. 
+DEAL::Checking DGQ1 in 3d:
+DEAL::0 0 0 1.0 1.0 1.0 2.0 2.0 3.0 3.0 3.0 4.0 4.0 4.0 5.0 5.0 6.0 6.0 6.0 7.0 7.0 7.0 8.0 8.0 9.0 9.0 9.0 10. 10. 10. 11. 11. 12. 12. 12. 13. 13. 13. 14. 14. 15. 15. 15. 16. 16. 16. 17. 17. 18. 18. 18. 19. 19. 19. 20. 20. 21. 21. 21. 
+DEAL::0 0 0 2.0 2.0 2.0 4.0 4.0 6.0 6.0 6.0 8.0 8.0 8.0 10. 10. 12. 12. 12. 14. 14. 14. 16. 16. 18. 18. 18. 20. 20. 20. 22. 22. 24. 24. 24. 26. 26. 26. 28. 28. 30. 30. 30. 32. 32. 32. 34. 34. 36. 36. 36. 38. 38. 38. 40. 40. 42. 42. 42. 
+DEAL::Checking DGQ3 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 DGQ3 in 2d:
+DEAL::0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.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 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 8.0 8.0 8.0 8.0 8.0 9.0 9.0 9.0 9.0 9.0 9.0 
+DEAL::0 0 0 0 0 0 2.0 2.0 2.0 2.0 2.0 4.0 4.0 4.0 4.0 4.0 6.0 6.0 6.0 6.0 6.0 6.0 8.0 8.0 8.0 8.0 8.0 10. 10. 10. 10. 10. 12. 12. 12. 12. 12. 12. 14. 14. 14. 14. 14. 16. 16. 16. 16. 16. 18. 18. 18. 18. 18. 18. 
+DEAL::Checking DGQ3 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 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 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 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 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 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 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 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 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 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 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. 10. 10. 10. 11. 11. 11. 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. 12. 12. 12. 12. 13. 13. 13. 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. 14. 14. 14. 15. 15. 15. 15. 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. 16. 16. 16. 17. 17. 17. 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. 18. 18. 18. 18. 19. 19. 19. 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. 20. 20. 20. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 21. 
+DEAL::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 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 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 4.0 4.0 4.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 6.0 6.0 6.0 6.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 8.0 8.0 8.0 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 12. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 14. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 16. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 18. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 22. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 24. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 26. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 28. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 30. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 32. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 34. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 36. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 38. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 40. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 42. 
+DEAL::Checking DGP0 in 1d:
+DEAL::0 3.0 
+DEAL::0 6.0 
+DEAL::Checking DGP0 in 2d:
+DEAL::0 3.0 6.0 9.0 
+DEAL::0 6.0 12. 18. 
+DEAL::Checking DGP0 in 3d:
+DEAL::0 3.0 6.0 9.0 12. 15. 18. 21. 
+DEAL::0 6.0 12. 18. 24. 30. 36. 42. 
+DEAL::Checking DGP1 in 1d:
+DEAL::0 1.0 3.0 
+DEAL::0 2.0 6.0 
+DEAL::Checking DGP1 in 2d:
+DEAL::0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 
+DEAL::0 2.0 4.0 6.0 8.0 10. 12. 14. 16. 18. 
+DEAL::Checking DGP1 in 3d:
+DEAL::0 0 1.0 2.0 3.0 3.0 4.0 5.0 6.0 6.0 7.0 8.0 9.0 9.0 10. 11. 12. 12. 13. 14. 15. 15. 16. 17. 18. 18. 19. 20. 21. 21. 
+DEAL::0 0 2.0 4.0 6.0 6.0 8.0 10. 12. 12. 14. 16. 18. 18. 20. 22. 24. 24. 26. 28. 30. 30. 32. 34. 36. 36. 38. 40. 42. 42. 
+DEAL::Checking DGP3 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 DGP3 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 DGP3 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 Nedelec1 in 2d:
+DEAL::Checking Nedelec1 in 3d:
+DEAL::Checking RaviartThomas0 in 2d:
+DEAL::Checking RaviartThomas1 in 2d:
+DEAL::Checking RaviartThomas2 in 2d:
+DEAL::Checking RaviartThomasNodal0 in 2d:
+DEAL::Checking RaviartThomasNodal1 in 2d:
+DEAL::Checking RaviartThomasNodal2 in 2d:
+DEAL::Checking RaviartThomasNodal0 in 3d:
+DEAL::Checking RaviartThomasNodal1 in 3d:
+DEAL::Checking RaviartThomasNodal2 in 3d:
+DEAL::Checking FE_Q<1>(1)3 in 1d:
+DEAL::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:

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.