]> https://gitweb.dealii.org/ - dealii.git/commitdiff
check system indices
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Tue, 28 Mar 2006 14:02:00 +0000 (14:02 +0000)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Tue, 28 Mar 2006 14:02:00 +0000 (14:02 +0000)
git-svn-id: https://svn.dealii.org/trunk@12714 0785d39b-7218-0410-832d-ea1e28bc413d

tests/fe/Makefile
tests/fe/system_index.cc [new file with mode: 0644]
tests/fe/system_index/cmp/generic [new file with mode: 0644]

index 9ed0844e3f1a542fb8b32d48c7341cb59c040c2f..53ad4520e052f86d51e017bd2609ee3587633ffe 100644 (file)
@@ -1,6 +1,6 @@
 ############################################################
 # Makefile,v 1.15 2002/06/13 12:51:13 hartmann Exp
-# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors
+# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 by the deal.II authors
 ############################################################
 
 ############################################################
@@ -32,7 +32,7 @@ tests_x=fe_data_test traits fe_tools fe_tools_test mapping \
        rtn_* \
        interpolate_rt interpolate_rtn \
        dgp_monomial_1 dgp_monomial_2 \
-       system_1 interpolate_system \
+       system_index system_1 interpolate_system \
         non_primitive_* \
         nedelec* \
        up_and_down \
diff --git a/tests/fe/system_index.cc b/tests/fe/system_index.cc
new file mode 100644 (file)
index 0000000..5ad030b
--- /dev/null
@@ -0,0 +1,163 @@
+//----------------------------  system_1.cc  ---------------------------
+//    system_1.cc,v 1.3 2003/06/09 21:55:00 wolf Exp
+//    Version: 
+//
+//    Copyright (C) 2006 by the deal.II authors
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    fuqher information on this license.
+//
+//----------------------------  system_1.cc  ---------------------------
+
+// Test the various index conversion methods
+
+#include "../tests.h"
+#include <base/logstream.h>
+#include <fe/fe_q.h>
+#include <fe/fe_dgq.h>
+#include <fe/fe_raviart_thomas.h>
+#include <fe/fe_system.h>
+
+#include <fstream>
+#include <string>
+#include <iomanip>
+
+#define PRECISION 5
+
+
+
+template<int dim>
+void
+check_fe(const FiniteElement<dim> &fe)
+{
+  deallog << fe.get_name() << std::endl;
+  const unsigned int n_dofs = fe.dofs_per_cell;
+  const unsigned int n_base = fe.n_base_elements();
+  const unsigned int n_comp = fe.n_components();
+  const unsigned int n_blocks = fe.n_blocks();
+  
+  deallog << "Base elements:  " << n_base
+         << std::endl
+         << "Multiplicities:";
+  for (unsigned int b=0;b<n_base;++b)
+    deallog << ' ' << fe.element_multiplicity(b);
+  deallog << std::endl
+         << "First block   :";
+  for (unsigned int b=0;b<n_base;++b)
+    deallog << ' ' << fe.first_block_of_base(b);
+  
+  deallog << std::endl << "Blocks : " << n_blocks << std::endl;
+  
+  for (unsigned int i=0;i<n_dofs;++i)
+    {
+      deallog << std::setw(3) << i;
+                                      // Cehck consistency of
+                                      // functions and inverse
+      std::pair<unsigned int, unsigned int> p;
+      if (fe.is_primitive(i))
+       {
+         p = fe.system_to_component_index(i);
+         Assert(fe.component_to_system_index(p.first, p.second) == i,
+                ExcInternalError());
+       }
+    }
+  
+  deallog << std::endl;
+  
+  deallog << "Next two lines: block index_in_block"
+         << std::endl;
+  for (unsigned int i=0;i<n_dofs;++i)
+    deallog << std::setw(3) << fe.system_to_block_index(i).first;
+  deallog << std::endl;
+  for (unsigned int i=0;i<n_dofs;++i)
+    deallog << std::setw(3) << fe.system_to_block_index(i).second;
+  deallog << std::endl;
+  deallog << "Next three lines: base block_in_base index_in_block"
+         << std::endl;
+  for (unsigned int i=0;i<n_dofs;++i)
+    deallog << std::setw(3) << fe.system_to_base_index(i).first.first;
+  deallog << std::endl;
+  for (unsigned int i=0;i<n_dofs;++i)
+    deallog << std::setw(3) << fe.system_to_base_index(i).first.second;
+  deallog << std::endl;
+  for (unsigned int i=0;i<n_dofs;++i)
+    deallog << std::setw(3) << fe.system_to_base_index(i).second;
+  deallog << std::endl;
+
+  deallog << "Next two lines: component index_in_component"
+         << std::endl;
+  for (unsigned int i=0;i<n_dofs;++i)
+    if (fe.is_primitive(i))
+      deallog << std::setw(3) << fe.system_to_component_index(i).first;
+    else
+      deallog << std::setw(3) << 'x';
+  deallog << std::endl;
+  for (unsigned int i=0;i<n_dofs;++i)
+    if (fe.is_primitive(i))
+      deallog << std::setw(3) << fe.system_to_component_index(i).second;
+    else
+      deallog << std::setw(3) << 'x';
+  deallog << std::endl;
+
+  if (fe.is_primitive())
+    {
+      deallog << "Next two lines: component_to_base" << std::endl;
+      for (unsigned int i=0;i<n_comp;++i)
+       deallog << std::setw(3) << fe.component_to_base_index(i).first;
+      deallog << std::endl;
+      for (unsigned int i=0;i<n_comp;++i)
+       deallog << std::setw(3) << fe.component_to_base_index(i).second;
+      deallog << std::endl;
+      deallog << "Next line: component_to_block_index" << std::endl;
+      for (unsigned int i=0;i<n_comp;++i)
+       deallog << std::setw(3) << fe.component_to_block_index(i);
+      deallog << std::endl;
+      
+    }  
+}
+
+
+
+template<int dim>
+void check()
+{
+  FE_DGQ<dim> co(0);
+  FE_Q<dim> q1(1);
+  FE_Q<dim> q2(2);
+  FE_DGQ<dim> dgq1(1);
+  FE_RaviartThomas<dim> rt0(0);
+  FE_RaviartThomas<dim> rt1(1);
+  FE_RaviartThomas<dim> rt2(2);
+
+  check_fe(FESystem<dim>(q1, 1, co, 1));
+  check_fe(FESystem<dim>(q1, 2, co, 3));
+  check_fe(FESystem<dim>(dgq1, 2, co, 3));
+  check_fe(FESystem<dim>(rt1,1, dgq1, 1));
+  check_fe(FESystem<dim>(rt0, 2, co, 3));
+  check_fe(FESystem<dim>(rt1, 2, co, 3));
+  check_fe(FESystem<dim>(q1, 2, q2, 1, co, 2));
+  check_fe(FESystem<dim>(rt1, 2, q2, 1, co, 2));
+  check_fe(FESystem<dim>(rt2,1, q2, 1));
+}
+
+
+int
+main()
+{
+  std::ofstream logfile ("system_index/output");
+  logfile.precision (PRECISION);
+  logfile.setf(std::ios::fixed);  
+  deallog.attach(logfile);
+//  deallog.depth_console(0);
+  deallog.threshold_double(1.e-10);
+
+  check<2>();
+  check<3>();
+  
+  return 0;
+}
+
+
+
diff --git a/tests/fe/system_index/cmp/generic b/tests/fe/system_index/cmp/generic
new file mode 100644 (file)
index 0000000..754989e
--- /dev/null
@@ -0,0 +1,329 @@
+JobId unknown Tue Mar 28 15:59:39 2006
+DEAL::FESystem<2>[FE_Q<2>(1)-FE_DGQ<2>(0)]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 1 1
+DEAL::First block   : 0 1
+DEAL::Blocks : 2
+DEAL::0  1  2  3  4  
+DEAL::Next two lines: block index_in_block
+DEAL::0  0  0  0  1  
+DEAL::0  1  2  3  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  1  
+DEAL::0  0  0  0  0  
+DEAL::0  1  2  3  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  0  0  0  1  
+DEAL::0  1  2  3  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  1  
+DEAL::0  0  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  
+DEAL::FESystem<2>[FE_Q<2>(1)^2-FE_DGQ<2>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 
+DEAL::Next two lines: block index_in_block
+DEAL::0  1  0  1  0  1  0  1  2  3  4  
+DEAL::0  0  1  1  2  2  3  3  0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  1  1  1  
+DEAL::0  1  0  1  0  1  0  1  0  1  2  
+DEAL::0  0  1  1  2  2  3  3  0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  1  0  1  0  1  0  1  2  3  4  
+DEAL::0  0  1  1  2  2  3  3  0  0  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  0  1  1  1  
+DEAL::0  1  0  1  2  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  2  3  4  
+DEAL::FESystem<2>[FE_DGQ<2>(1)^2-FE_DGQ<2>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 
+DEAL::Next two lines: block index_in_block
+DEAL::0  0  0  0  1  1  1  1  2  3  4  
+DEAL::0  1  2  3  0  1  2  3  0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  1  1  1  
+DEAL::0  0  0  0  1  1  1  1  0  1  2  
+DEAL::0  1  2  3  0  1  2  3  0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  0  0  0  1  1  1  1  2  3  4  
+DEAL::0  1  2  3  0  1  2  3  0  0  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  0  1  1  1  
+DEAL::0  1  0  1  2  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  2  3  4  
+DEAL::FESystem<2>[FE_RaviartThomas<2>(1)-FE_DGQ<2>(1)]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 1 1
+DEAL::First block   : 0 1
+DEAL::Blocks : 2
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 
+DEAL::Next two lines: block index_in_block
+DEAL::0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 0  1  2  3  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  
+DEAL::0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 0  1  2  3  
+DEAL::Next two lines: component index_in_component
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  2  2  2  2  
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  0  1  2  3  
+DEAL::FESystem<2>[FE_RaviartThomas<2>(0)^2-FE_DGQ<2>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 
+DEAL::Next two lines: block index_in_block
+DEAL::0  1  0  1  0  1  0  1  2  3  4  
+DEAL::0  0  1  1  2  2  3  3  0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  1  1  1  
+DEAL::0  1  0  1  0  1  0  1  0  1  2  
+DEAL::0  0  1  1  2  2  3  3  0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::x  x  x  x  x  x  x  x  4  5  6  
+DEAL::x  x  x  x  x  x  x  x  0  0  0  
+DEAL::FESystem<2>[FE_RaviartThomas<2>(1)^2-FE_DGQ<2>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 
+DEAL::Next two lines: block index_in_block
+DEAL::0  0  1  1  0  0  1  1  0  0  1  1  0  0  1  1  0  0  0  0  1  1  1  1  2  3  4  
+DEAL::0  1  0  1  2  3  2  3  4  5  4  5  6  7  6  7  8  9  10 11 8  9  10 11 0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+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  1  1  1  
+DEAL::0  0  1  1  0  0  1  1  0  0  1  1  0  0  1  1  0  0  0  0  1  1  1  1  0  1  2  
+DEAL::0  1  0  1  2  3  2  3  4  5  4  5  6  7  6  7  8  9  10 11 8  9  10 11 0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  4  5  6  
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  0  0  0  
+DEAL::FESystem<2>[FE_Q<2>(1)^2-FE_Q<2>(2)-FE_DGQ<2>(0)^2]
+DEAL::Base elements:  3
+DEAL::Multiplicities: 2 1 2
+DEAL::First block   : 0 2 1
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 
+DEAL::Next two lines: block index_in_block
+DEAL::0  1  2  0  1  2  0  1  2  0  1  2  2  2  2  2  2  1  2  
+DEAL::0  0  0  1  1  1  2  2  2  3  3  3  4  5  6  7  8  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  1  0  0  1  0  0  1  0  0  1  1  1  1  1  1  2  2  
+DEAL::0  1  0  0  1  0  0  1  0  0  1  0  0  0  0  0  0  0  1  
+DEAL::0  0  0  1  1  1  2  2  2  3  3  3  4  5  6  7  8  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  1  2  0  1  2  0  1  2  0  1  2  2  2  2  2  2  3  4  
+DEAL::0  0  0  1  1  1  2  2  2  3  3  3  4  5  6  7  8  0  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  0  1  2  2  
+DEAL::0  1  0  0  1  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  2  1  2  
+DEAL::FESystem<2>[FE_RaviartThomas<2>(1)^2-FE_Q<2>(2)-FE_DGQ<2>(0)^2]
+DEAL::Base elements:  3
+DEAL::Multiplicities: 2 1 2
+DEAL::First block   : 0 2 1
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 
+DEAL::Next two lines: block index_in_block
+DEAL::2  2  2  2  0  0  1  1  2  0  0  1  1  2  0  0  1  1  2  0  0  1  1  2  0  0  0  0  1  1  1  1  2  1  2  
+DEAL::0  1  2  3  0  1  0  1  4  2  3  2  3  5  4  5  4  5  6  6  7  6  7  7  8  9  10 11 8  9  10 11 8  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::1  1  1  1  0  0  0  0  1  0  0  0  0  1  0  0  0  0  1  0  0  0  0  1  0  0  0  0  0  0  0  0  1  2  2  
+DEAL::0  0  0  0  0  0  1  1  0  0  0  1  1  0  0  0  1  1  0  0  0  1  1  0  0  0  0  0  1  1  1  1  0  0  1  
+DEAL::0  1  2  3  0  1  0  1  4  2  3  2  3  5  4  5  4  5  6  6  7  6  7  7  8  9  10 11 8  9  10 11 8  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::4  4  4  4  x  x  x  x  4  x  x  x  x  4  x  x  x  x  4  x  x  x  x  4  x  x  x  x  x  x  x  x  4  5  6  
+DEAL::0  1  2  3  x  x  x  x  4  x  x  x  x  5  x  x  x  x  6  x  x  x  x  7  x  x  x  x  x  x  x  x  8  0  0  
+DEAL::FESystem<2>[FE_RaviartThomas<2>(2)-FE_Q<2>(2)]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 1 1
+DEAL::First block   : 0 1
+DEAL::Blocks : 2
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 
+DEAL::Next two lines: block index_in_block
+DEAL::1  1  1  1  0  0  0  1  0  0  0  1  0  0  0  1  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  1  
+DEAL::0  1  2  3  0  1  2  4  3  4  5  5  6  7  8  6  9  10 11 7  12 13 14 15 16 17 18 19 20 21 22 23 8  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::1  1  1  1  0  0  0  1  0  0  0  1  0  0  0  1  0  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  1  
+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  
+DEAL::0  1  2  3  0  1  2  4  3  4  5  5  6  7  8  6  9  10 11 7  12 13 14 15 16 17 18 19 20 21 22 23 8  
+DEAL::Next two lines: component index_in_component
+DEAL::2  2  2  2  x  x  x  2  x  x  x  2  x  x  x  2  x  x  x  2  x  x  x  x  x  x  x  x  x  x  x  x  2  
+DEAL::0  1  2  3  x  x  x  4  x  x  x  5  x  x  x  6  x  x  x  7  x  x  x  x  x  x  x  x  x  x  x  x  8  
+DEAL::FESystem<3>[FE_Q<3>(1)-FE_DGQ<3>(0)]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 1 1
+DEAL::First block   : 0 1
+DEAL::Blocks : 2
+DEAL::0  1  2  3  4  5  6  7  8  
+DEAL::Next two lines: block index_in_block
+DEAL::0  0  0  0  0  0  0  0  1  
+DEAL::0  1  2  3  4  5  6  7  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  1  
+DEAL::0  0  0  0  0  0  0  0  0  
+DEAL::0  1  2  3  4  5  6  7  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  0  0  0  0  0  0  0  1  
+DEAL::0  1  2  3  4  5  6  7  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  1  
+DEAL::0  0  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  
+DEAL::FESystem<3>[FE_Q<3>(1)^2-FE_DGQ<3>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 
+DEAL::Next two lines: block index_in_block
+DEAL::0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  2  3  4  
+DEAL::0  0  1  1  2  2  3  3  4  4  5  5  6  6  7  7  0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  
+DEAL::0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  2  
+DEAL::0  0  1  1  2  2  3  3  4  4  5  5  6  6  7  7  0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  1  0  1  0  1  0  1  0  1  0  1  0  1  0  1  2  3  4  
+DEAL::0  0  1  1  2  2  3  3  4  4  5  5  6  6  7  7  0  0  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  0  1  1  1  
+DEAL::0  1  0  1  2  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  2  3  4  
+DEAL::FESystem<3>[FE_DGQ<3>(1)^2-FE_DGQ<3>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 
+DEAL::Next two lines: block index_in_block
+DEAL::0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  2  3  4  
+DEAL::0  1  2  3  4  5  6  7  0  1  2  3  4  5  6  7  0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  
+DEAL::0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  0  1  2  
+DEAL::0  1  2  3  4  5  6  7  0  1  2  3  4  5  6  7  0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  2  3  4  
+DEAL::0  1  2  3  4  5  6  7  0  1  2  3  4  5  6  7  0  0  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  0  1  1  1  
+DEAL::0  1  0  1  2  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  2  3  4  
+DEAL::FESystem<3>[FE_RaviartThomas<3>(1)-FE_DGQ<3>(1)]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 1 1
+DEAL::First block   : 0 1
+DEAL::Blocks : 2
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 
+DEAL::Next two lines: block index_in_block
+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  1  1  1  1  1  1  1  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 0  1  2  3  4  5  6  7  
+DEAL::Next three lines: base block_in_base index_in_block
+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  1  1  1  1  1  1  1  
+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  0  0  0  0  0  0  0  0  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 0  1  2  3  4  5  6  7  
+DEAL::Next two lines: component index_in_component
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  3  3  3  3  3  3  3  3  
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  0  1  2  3  4  5  6  7  
+DEAL::FESystem<3>[FE_RaviartThomas<3>(0)^2-FE_DGQ<3>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 
+DEAL::Next two lines: block index_in_block
+DEAL::0  1  0  1  0  1  0  1  0  1  0  1  2  3  4  
+DEAL::0  0  1  1  2  2  3  3  4  4  5  5  0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  
+DEAL::0  1  0  1  0  1  0  1  0  1  0  1  0  1  2  
+DEAL::0  0  1  1  2  2  3  3  4  4  5  5  0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  6  7  8  
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  0  0  0  
+DEAL::FESystem<3>[FE_RaviartThomas<3>(1)^2-FE_DGQ<3>(0)^3]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 2 3
+DEAL::First block   : 0 2
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 
+DEAL::Next two lines: block index_in_block
+DEAL::0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  1  1  1  1  2  3  4  
+DEAL::0  1  2  3  0  1  2  3  4  5  6  7  4  5  6  7  8  9  10 11 8  9  10 11 12 13 14 15 12 13 14 15 16 17 18 19 16 17 18 19 20 21 22 23 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 24 25 26 27 28 29 30 31 32 33 34 35 0  0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+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  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  1  1  
+DEAL::0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  1  1  1  1  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  1  1  1  1  0  1  2  
+DEAL::0  1  2  3  0  1  2  3  4  5  6  7  4  5  6  7  8  9  10 11 8  9  10 11 12 13 14 15 12 13 14 15 16 17 18 19 16 17 18 19 20 21 22 23 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 24 25 26 27 28 29 30 31 32 33 34 35 0  0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  6  7  8  
+DEAL::x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  0  0  0  
+DEAL::FESystem<3>[FE_Q<3>(1)^2-FE_Q<3>(2)-FE_DGQ<3>(0)^2]
+DEAL::Base elements:  3
+DEAL::Multiplicities: 2 1 2
+DEAL::First block   : 0 2 1
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 
+DEAL::Next two lines: block index_in_block
+DEAL::0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  1  2  
+DEAL::0  0  0  1  1  1  2  2  2  3  3  3  4  4  4  5  5  5  6  6  6  7  7  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::0  0  1  0  0  1  0  0  1  0  0  1  0  0  1  0  0  1  0  0  1  0  0  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  2  2  
+DEAL::0  1  0  0  1  0  0  1  0  0  1  0  0  1  0  0  1  0  0  1  0  0  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  
+DEAL::0  0  0  1  1  1  2  2  2  3  3  3  4  4  4  5  5  5  6  6  6  7  7  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  0  1  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  3  4  
+DEAL::0  0  0  1  1  1  2  2  2  3  3  3  4  4  4  5  5  5  6  6  6  7  7  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0  0  
+DEAL::Next two lines: component_to_base
+DEAL::0  0  1  2  2  
+DEAL::0  1  0  0  1  
+DEAL::Next line: component_to_block_index
+DEAL::0  1  2  1  2  
+DEAL::FESystem<3>[FE_RaviartThomas<3>(1)^2-FE_Q<3>(2)-FE_DGQ<3>(0)^2]
+DEAL::Base elements:  3
+DEAL::Multiplicities: 2 1 2
+DEAL::First block   : 0 2 1
+DEAL::Blocks : 5
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
+DEAL::Next two lines: block index_in_block
+DEAL::2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  2  0  0  0  0  1  1  1  1  2  0  0  0  0  1  1  1  1  2  0  0  0  0  1  1  1  1  2  0  0  0  0  1  1  1  1  2  0  0  0  0  1  1  1  1  2  0  0  0  0  1  1  1  1  2  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  1  1  1  1  2  1  2  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 0  1  2  3  0  1  2  3  20 4  5  6  7  4  5  6  7  21 8  9  10 11 8  9  10 11 22 12 13 14 15 12 13 14 15 23 16 17 18 19 16 17 18 19 24 20 21 22 23 20 21 22 23 25 24 25 26 27 28 29 30 31 32 33 34 35 24 25 26 27 28 29 30 31 32 33 34 35 26 0  0  
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  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  1  2  2  
+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  1  1  1  1  0  0  0  0  0  1  1  1  1  0  0  0  0  0  1  1  1  1  0  0  0  0  0  1  1  1  1  0  0  0  0  0  1  1  1  1  0  0  0  0  0  1  1  1  1  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1  1  1  1  1  1  1  1  1  0  0  1  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 0  1  2  3  0  1  2  3  20 4  5  6  7  4  5  6  7  21 8  9  10 11 8  9  10 11 22 12 13 14 15 12 13 14 15 23 16 17 18 19 16 17 18 19 24 20 21 22 23 20 21 22 23 25 24 25 26 27 28 29 30 31 32 33 34 35 24 25 26 27 28 29 30 31 32 33 34 35 26 0  0  
+DEAL::Next two lines: component index_in_component
+DEAL::6  6  6  6  6  6  6  6  6  6  6  6  6  6  6  6  6  6  6  6  x  x  x  x  x  x  x  x  6  x  x  x  x  x  x  x  x  6  x  x  x  x  x  x  x  x  6  x  x  x  x  x  x  x  x  6  x  x  x  x  x  x  x  x  6  x  x  x  x  x  x  x  x  6  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  6  7  8  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 x  x  x  x  x  x  x  x  20 x  x  x  x  x  x  x  x  21 x  x  x  x  x  x  x  x  22 x  x  x  x  x  x  x  x  23 x  x  x  x  x  x  x  x  24 x  x  x  x  x  x  x  x  25 x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  26 0  0  
+DEAL::FESystem<3>[FE_RaviartThomas<3>(2)-FE_Q<3>(2)]
+DEAL::Base elements:  2
+DEAL::Multiplicities: 1 1
+DEAL::First block   : 0 1
+DEAL::Blocks : 2
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
+DEAL::Next two lines: block index_in_block
+DEAL::1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  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  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  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 0  1  2  3  4  5  6  7  8  20 9  10 11 12 13 14 15 16 17 21 18 19 20 21 22 23 24 25 26 22 27 28 29 30 31 32 33 34 35 23 36 37 38 39 40 41 42 43 44 24 45 46 47 48 49 50 51 52 53 25 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10010110210310410510610726 
+DEAL::Next three lines: base block_in_base index_in_block
+DEAL::1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  0  1  0  0  0  0  0  0  0  0  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  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  
+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  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  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  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  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 0  1  2  3  4  5  6  7  8  20 9  10 11 12 13 14 15 16 17 21 18 19 20 21 22 23 24 25 26 22 27 28 29 30 31 32 33 34 35 23 36 37 38 39 40 41 42 43 44 24 45 46 47 48 49 50 51 52 53 25 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 10010110210310410510610726 
+DEAL::Next two lines: component index_in_component
+DEAL::3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  x  x  x  x  x  x  x  x  x  3  x  x  x  x  x  x  x  x  x  3  x  x  x  x  x  x  x  x  x  3  x  x  x  x  x  x  x  x  x  3  x  x  x  x  x  x  x  x  x  3  x  x  x  x  x  x  x  x  x  3  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  3  
+DEAL::0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 x  x  x  x  x  x  x  x  x  20 x  x  x  x  x  x  x  x  x  21 x  x  x  x  x  x  x  x  x  22 x  x  x  x  x  x  x  x  x  23 x  x  x  x  x  x  x  x  x  24 x  x  x  x  x  x  x  x  x  25 x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  26 

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.