]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Move HSL and METIS tests to their own subdirectories.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Sep 2010 17:29:22 +0000 (17:29 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Sep 2010 17:29:22 +0000 (17:29 +0000)
git-svn-id: https://svn.dealii.org/trunk@22072 0785d39b-7218-0410-832d-ea1e28bc413d

26 files changed:
tests/Makefile
tests/bits/data_out_common.cc [deleted file]
tests/bits/dof_tools_common.cc [deleted file]
tests/bits/fe_tools_common.cc [deleted file]
tests/hsl/hsl_ma27_01.cc [moved from tests/bits/hsl_ma27_01.cc with 100% similarity]
tests/hsl/hsl_ma27_01/cmp/generic [moved from tests/bits/hsl_ma27_01/cmp/generic with 100% similarity]
tests/hsl/hsl_ma27_01/cmp/i686-pc-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma27_01/cmp/i686-pc-linux-gnu+gcc4.1 with 100% similarity]
tests/hsl/hsl_ma27_01/cmp/x86_64-unknown-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma27_01/cmp/x86_64-unknown-linux-gnu+gcc4.1 with 100% similarity]
tests/hsl/hsl_ma27_02.cc [moved from tests/bits/hsl_ma27_02.cc with 100% similarity]
tests/hsl/hsl_ma27_02/cmp/generic [moved from tests/bits/hsl_ma27_02/cmp/generic with 100% similarity]
tests/hsl/hsl_ma27_02/cmp/i686-pc-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma27_02/cmp/i686-pc-linux-gnu+gcc4.1 with 100% similarity]
tests/hsl/hsl_ma27_02/cmp/x86_64-unknown-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma27_02/cmp/x86_64-unknown-linux-gnu+gcc4.1 with 100% similarity]
tests/hsl/hsl_ma47_01.cc [moved from tests/bits/hsl_ma47_01.cc with 100% similarity]
tests/hsl/hsl_ma47_01/cmp/generic [moved from tests/bits/hsl_ma47_01/cmp/generic with 100% similarity]
tests/hsl/hsl_ma47_01/cmp/i686-pc-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma47_01/cmp/i686-pc-linux-gnu+gcc4.1 with 100% similarity]
tests/hsl/hsl_ma47_01/cmp/x86_64-unknown-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma47_01/cmp/x86_64-unknown-linux-gnu+gcc4.1 with 100% similarity]
tests/hsl/hsl_ma47_02.cc [moved from tests/bits/hsl_ma47_02.cc with 100% similarity]
tests/hsl/hsl_ma47_02/cmp/generic [moved from tests/bits/hsl_ma47_02/cmp/generic with 100% similarity]
tests/hsl/hsl_ma47_02/cmp/i686-pc-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma47_02/cmp/i686-pc-linux-gnu+gcc4.1 with 100% similarity]
tests/hsl/hsl_ma47_02/cmp/x86_64-unknown-linux-gnu+gcc4.1 [moved from tests/bits/hsl_ma47_02/cmp/x86_64-unknown-linux-gnu+gcc4.1 with 100% similarity]
tests/metis/metis_01.cc [moved from tests/bits/metis_01.cc with 100% similarity]
tests/metis/metis_01/cmp/generic [moved from tests/bits/metis_01/cmp/generic with 100% similarity]
tests/metis/metis_02.cc [moved from tests/bits/metis_02.cc with 100% similarity]
tests/metis/metis_02/cmp/generic [moved from tests/bits/metis_02/cmp/generic with 100% similarity]
tests/metis/metis_03.cc [moved from tests/bits/metis_03.cc with 100% similarity]
tests/metis/metis_03/cmp/generic [moved from tests/bits/metis_03/cmp/generic with 100% similarity]

index 13e97f3407adc75eda9a7e91b9c82d0562a0aa4d..1092487163aadc5c3e9ec9708f18172b83d2a084 100644 (file)
@@ -19,6 +19,8 @@ nofail-dirs = a-framework \
              $(shell if test "$(USE_CONTRIB_PETSC)" = yes ; then echo petsc ; fi) \
              $(shell if test "$(USE_CONTRIB_TRILINOS)" = yes ; then echo trilinos ; fi) \
              $(shell if test "$(USE_CONTRIB_UMFPACK)" = yes ; then echo umfpack ; fi) \
+             $(shell if test "$(USE_CONTRIB_METIS)" = yes ; then echo metis ; fi) \
+             $(shell if test "$(USE_CONTRIB_HSL)" = yes ; then echo hsl ; fi) \
              $(shell if grep -q 'define HAVE_LIBLAPACK' $D/base/include/base/config.h ;\
                 then echo lapack ; fi)
 
diff --git a/tests/bits/data_out_common.cc b/tests/bits/data_out_common.cc
deleted file mode 100644 (file)
index de196c0..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-//----------------------------  dof_tools_common.cc  ---------------------------
-//    $Id$
-//    Version: $Name$ 
-//
-//    Copyright (C) 2003, 2004, 2005, 2008, 2010 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_common.cc  ---------------------------
-
-
-// common framework for the various dof_tools_*.cc tests
-
-#include "../tests.h"
-#include <base/logstream.h>
-#include <lac/vector.h>
-#include <lac/block_vector.h>
-#include <grid/tria.h>
-#include <grid/tria_iterator.h>
-#include <grid/grid_generator.h>
-#include <dofs/dof_accessor.h>
-#include <dofs/dof_handler.h>
-#include <dofs/dof_tools.h>
-#include <fe/fe_q.h>
-#include <fe/fe_dgq.h>
-#include <fe/fe_dgp.h>
-#include <fe/fe_nedelec.h>
-#include <fe/fe_system.h>
-
-#include <fstream>
-#include <iomanip>
-#include <iomanip>
-#include <string>
-
-
-// forward declaration of the function that must be provided in the
-// .cc files
-template <int dim>
-void
-check_this (const DoFHandler<dim> &dof_handler,
-            const Vector<double>  &v_node,
-            const Vector<double>  &v_cell);
-
-// forward declaration of a variable with the name of the output file
-extern std::string output_file_name;
-
-
-// take a vector, and make a block vector out of it
-void
-make_block_vector (const Vector<double> &in,
-                   BlockVector<double>  &out)
-{
-  std::vector<unsigned int> block_sizes(2);
-  block_sizes[0] = in.size() / 2;
-  block_sizes[1] = in.size() - block_sizes[0];
-
-  out.reinit (block_sizes);
-  std::copy (in.begin(), in.end(), out.begin());
-}
-
-
-
-
-template <int dim>
-void
-check (const FiniteElement<dim> &fe,
-       const std::string        &name)
-{
-  deallog << "Checking " << name
-          << " in " << dim << "d:"
-          << std::endl;
-  
-                                   // create tria and dofhandler
-                                   // objects. set different boundary
-                                   // and sub-domain ids
-  Triangulation<dim> tria;
-  GridGenerator::hyper_cube(tria, 0., 1.);
-  tria.refine_global (1);
-  tria.begin_active()->set_refine_flag();
-  tria.execute_coarsening_and_refinement ();
-
-  DoFHandler<dim> dof_handler (tria);
-  dof_handler.distribute_dofs (fe);
-
-  Vector<double> v_node (dof_handler.n_dofs());
-  for (unsigned int i=0; i<v_node.size(); ++i) v_node(i) = i;
-
-  Vector<double> v_cell (dof_handler.get_tria().n_active_cells());
-  for (unsigned int i=0; i<v_cell.size(); ++i) v_cell(i) = i;
-  
-                                   // call main function in .cc files
-  check_this (dof_handler, v_node, v_cell);
-}
-
-
-
-
-
-#define CHECK(EL,deg,dim)\
- { FE_ ## EL<dim> EL(deg);   \
-   check(EL, #EL #deg); }
-
-#define CHECK_ALL(EL,deg)\
- { CHECK(EL,deg,1); \
-   CHECK(EL,deg,2); \
-   CHECK(EL,deg,3); \
- }
-
-
-int
-main()
-{
-  try
-    {
-      std::ofstream logfile(output_file_name.c_str());
-      deallog << std::setprecision (2);
-      logfile << std::setprecision (2);
-      deallog.attach(logfile);
-      deallog.depth_console(0);
-  deallog.threshold_double(1.e-10);
-
-      CHECK_ALL(Q,1);
-      CHECK_ALL(Q,2);
-      CHECK_ALL(Q,3);
-
-      CHECK_ALL(DGQ,0);
-      CHECK_ALL(DGQ,1);
-      CHECK_ALL(DGQ,2);
-
-      CHECK(Nedelec, 0, 2);
-      CHECK(Nedelec, 0, 3);
-  
-      return 0;
-    }
-  catch (std::exception &exc)
-    {
-      deallog << std::endl << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      deallog << "Exception on processing: " << std::endl
-               << exc.what() << std::endl
-               << "Aborting!" << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      return 1;
-    }
-  catch (...) 
-    {
-      deallog << std::endl << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      deallog << "Unknown exception!" << std::endl
-               << "Aborting!" << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      return 1;
-    };
-}
-
diff --git a/tests/bits/dof_tools_common.cc b/tests/bits/dof_tools_common.cc
deleted file mode 100644 (file)
index a17a710..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-//----------------------------  dof_tools_common.cc  ---------------------------
-//    $Id$
-//    Version: $Name$ 
-//
-//    Copyright (C) 2003, 2004, 2005, 2006, 2008, 2010 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_common.cc  ---------------------------
-
-
-// common framework for the various dof_tools_*.cc tests
-
-#include "../tests.h"
-#include <base/logstream.h>
-#include <grid/tria.h>
-#include <grid/tria_iterator.h>
-#include <grid/grid_generator.h>
-#include <dofs/dof_accessor.h>
-#include <dofs/dof_handler.h>
-#include <dofs/dof_tools.h>
-#include <fe/fe_q.h>
-#include <fe/fe_dgq.h>
-#include <fe/fe_dgp.h>
-#include <fe/fe_nedelec.h>
-#include <fe/fe_raviart_thomas.h>
-#include <fe/fe_system.h>
-
-#include <fstream>
-#include <iomanip>
-#include <iomanip>
-#include <string>
-
-
-// forward declaration of the function that must be provided in the
-// .cc files
-template <int dim>
-void
-check_this (const DoFHandler<dim> &dof_handler);
-
-// forward declaration of a variable with the name of the output file
-extern std::string output_file_name;
-
-
-void
-output_bool_vector (std::vector<bool> &v)
-{
-for (unsigned int i=0; i<v.size(); ++i)
-    deallog << (v[i] ? '1' : '0');
-  deallog << std::endl;
-}
-
-
-
-template <int dim>
-void
-set_boundary_ids (Triangulation<dim> &tria)
-{  
-  for (unsigned int f=0; f<GeometryInfo<dim>::faces_per_cell; ++f)
-    tria.begin_active()->face(f)->set_boundary_indicator (f);
-}
-
-
-void
-set_boundary_ids (Triangulation<1> &)
-{}
-  
-
-
-template <int dim>
-void
-check (const FiniteElement<dim> &fe,
-       const std::string        &name)
-{
-  deallog << "Checking " << name
-          << " in " << dim << "d:"
-          << std::endl;
-  
-                                   // create tria and dofhandler
-                                   // objects. set different boundary
-                                   // and sub-domain ids
-  Triangulation<dim> tria;
-  GridGenerator::hyper_cube(tria, 0., 1.);
-  set_boundary_ids (tria);
-  tria.refine_global (1);
-  for (int i=0; i<2; ++i)
-    {
-      tria.begin_active()->set_refine_flag();
-      tria.execute_coarsening_and_refinement ();
-    }
-  for (typename Triangulation<dim>::active_cell_iterator
-         cell=tria.begin_active();
-       cell!=tria.end(); ++cell)
-    cell->set_subdomain_id (cell->level());
-  DoFHandler<dim> dof_handler (tria);
-  dof_handler.distribute_dofs (fe);
-
-                                   // call main function in .cc files
-  check_this (dof_handler);
-}
-
-
-
-
-
-#define CHECK(EL,deg,dim)\
- { FE_ ## EL<dim> EL(deg);   \
-   check(EL, #EL #deg); }
-
-#define CHECK_SYS1(sub1,N1,dim) \
- { FESystem<dim> q(sub1, N1);   \
-   check(q, #sub1 #N1); }
-
-#define CHECK_SYS2(sub1,N1,sub2,N2,dim) \
- { FESystem<dim> q(sub1, N1, sub2, N2); \
-   check(q, #sub1 #N1 #sub2 #N2); }
-
-#define CHECK_SYS3(sub1,N1,sub2,N2,sub3,N3,dim)   \
- { FESystem<dim> q(sub1, N1, sub2, N2, sub3, N3); \
-   check(q, #sub1 #N1 #sub2 #N2 #sub3 #N3); }
-
-
-#define CHECK_ALL(EL,deg)\
- { CHECK(EL,deg,1); \
-   CHECK(EL,deg,2); \
-   CHECK(EL,deg,3); \
- }
-
-
-int
-main()
-{
-  try
-    {
-      std::ofstream logfile(output_file_name.c_str());
-      logfile << std::setprecision (2);
-      deallog << std::setprecision (2);
-      deallog.attach(logfile);
-      deallog.depth_console(0);
-  deallog.threshold_double(1.e-10);
-
-      CHECK_ALL(Q,1);
-      CHECK_ALL(Q,2);
-      CHECK_ALL(Q,3);
-
-      CHECK_ALL(DGQ,0);
-      CHECK_ALL(DGQ,1);
-      CHECK_ALL(DGQ,3);
-
-      CHECK_ALL(DGP,0);
-      CHECK_ALL(DGP,1);
-      CHECK_ALL(DGP,3);
-
-      CHECK(Nedelec, 0, 2);
-      CHECK(Nedelec, 0, 3);
-
-      CHECK(RaviartThomas, 0, 2);
-      CHECK(RaviartThomas, 1, 2);
-      CHECK(RaviartThomas, 2, 2);
-
-      CHECK(RaviartThomasNodal, 0, 2);
-      CHECK(RaviartThomasNodal, 1, 2);
-      CHECK(RaviartThomasNodal, 2, 2);
-      CHECK(RaviartThomasNodal, 0, 3);
-      CHECK(RaviartThomasNodal, 1, 3);
-      CHECK(RaviartThomasNodal, 2, 3);
-      
-      CHECK_SYS1(FE_Q<1>(1),  3,1);
-      CHECK_SYS1(FE_DGQ<1>(2),2,1);
-      CHECK_SYS1(FE_DGP<1>(3),1,1);
-
-      CHECK_SYS1(FE_Q<2>(1),  3,2);
-      CHECK_SYS1(FE_DGQ<2>(2),2,2);
-      CHECK_SYS1(FE_DGP<2>(3),1,2);
-
-      CHECK_SYS1(FE_Q<3>(1),  3,3);
-      CHECK_SYS1(FE_DGQ<3>(2),2,3);
-      CHECK_SYS1(FE_DGP<3>(3),1,3);
-
-
-      CHECK_SYS2(FE_Q<1>(1),  3,FE_DGQ<1>(2),2,1);
-      CHECK_SYS2(FE_DGQ<1>(2),2,FE_DGP<1>(3),1,1);
-      CHECK_SYS2(FE_DGP<1>(3),1,FE_DGQ<1>(2),2,1);
-
-      CHECK_SYS2(FE_Q<2>(1),  3,FE_DGQ<2>(2),2,2);
-      CHECK_SYS2(FE_DGQ<2>(2),2,FE_DGP<2>(3),1,2);
-      CHECK_SYS2(FE_DGP<2>(3),1,FE_DGQ<2>(2),2,2);
-
-      CHECK_SYS3(FE_Q<1>(1),  3,FE_DGP<1>(3),1,FE_Q<1>(1),3,1);
-      CHECK_SYS3(FE_DGQ<1>(2),2,FE_DGQ<1>(2),2,FE_Q<1>(3),3,1);
-      CHECK_SYS3(FE_DGP<1>(3),1,FE_DGP<1>(3),1,FE_Q<1>(2),3,1);
-
-      CHECK_SYS3(FE_Q<2>(1),  3,FE_DGP<2>(3),1,FE_Q<2>(1),3,2);
-      CHECK_SYS3(FE_DGQ<2>(2),2,FE_DGQ<2>(2),2,FE_Q<2>(3),3,2);
-      CHECK_SYS3(FE_DGP<2>(3),1,FE_DGP<2>(3),1,FE_Q<2>(2),3,2);
-
-      CHECK_SYS3(FE_DGQ<3>(1),  3,FE_DGP<3>(3),1,FE_Q<3>(1),3,3);
-
-                                       // systems of systems  
-      CHECK_SYS3((FESystem<2>(FE_Q<2>(1),3)), 3,
-                 FE_DGQ<2>(0), 1,
-                 FE_Q<2>(1), 3,
-                 2);
-      CHECK_SYS3(FE_DGQ<2>(3), 1,
-                 FESystem<2>(FE_DGQ<2>(0),3), 1,
-                 FESystem<2>(FE_Q<2>(2),1,
-                             FE_DGQ<2>(0),1),2,
-                 2);
-
-                                       // systems with Nedelec elements
-      CHECK_SYS2 (FE_DGQ<2>(3), 1,
-                  FE_Nedelec<2>(0), 2,
-                  2);
-      CHECK_SYS3(FE_Nedelec<2>(0), 1,
-                 FESystem<2>(FE_DGQ<2>(1),2), 1,
-                 FESystem<2>(FE_Q<2>(2),1,
-                             FE_Nedelec<2>(0),2),2,
-                 2);
-  
-      return 0;
-    }
-  catch (std::exception &exc)
-    {
-      deallog << std::endl << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      deallog << "Exception on processing: " << std::endl
-               << exc.what() << std::endl
-               << "Aborting!" << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      return 1;
-    }
-  catch (...) 
-    {
-      deallog << std::endl << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      deallog << "Unknown exception!" << std::endl
-               << "Aborting!" << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      return 1;
-    };
-}
-
diff --git a/tests/bits/fe_tools_common.cc b/tests/bits/fe_tools_common.cc
deleted file mode 100644 (file)
index e363d63..0000000
+++ /dev/null
@@ -1,318 +0,0 @@
-//----------------------------  fe_tools_common.cc  ---------------------------
-//    $Id$
-//    Version: $Name$ 
-//
-//    Copyright (C) 2003, 2004, 2005, 2006, 2007, 2010 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.
-//
-//----------------------------  fe_tools_common.cc  ---------------------------
-
-
-// common framework for the various fe_tools_*.cc tests
-
-#include "../tests.h"
-#include <base/logstream.h>
-#include <grid/tria.h>
-#include <grid/tria_iterator.h>
-#include <grid/grid_generator.h>
-#include <dofs/dof_accessor.h>
-#include <dofs/dof_handler.h>
-#include <dofs/dof_tools.h>
-#include <lac/constraint_matrix.h>
-#include <lac/vector.h>
-#include <fe/fe_q.h>
-#include <fe/fe_dgq.h>
-#include <fe/fe_dgp.h>
-#include <fe/fe_nedelec.h>
-#include <fe/fe_system.h>
-#include <fe/fe_tools.h>
-
-#include <fstream>
-#include <iomanip>
-#include <iomanip>
-#include <string>
-#include <memory>
-
-
-// forward declaration of the function that must be provided in the
-// .cc files
-template <int dim>
-void
-check_this (const FiniteElement<dim> &fe1,
-            const FiniteElement<dim> &fe2);
-
-// forward declaration of a variable with the name of the output file
-extern std::string output_file_name;
-
-  
-
-// output some indicators for a given matrix. we don't write out the
-// entire matrix since this would blow up our output files beyond
-// reasonable limits
-void
-output_matrix (const FullMatrix<double> &m)
-{
-  if ((m.m() == 0) || (m.n() == 0))
-    {
-      deallog << "(Empty matrix)" << std::endl;
-      return;
-    }
-  
-  deallog << m.l1_norm() << ' ' << m.linfty_norm()
-          << std::endl;
-  if (m.m() == m.n())
-    deallog << m.frobenius_norm() << std::endl;
-  
-  for (unsigned int i=0; i<std::min(m.m(),m.n()); ++i)
-    deallog << m(i,i) << ' ' << m(i,std::min(m.m(),m.n())-i-1) << ' ';
-  deallog << std::endl;
-}
-
-
-// output some indicators for a given vector
-template <class VECTOR>
-void
-output_vector (const VECTOR &v)
-{
-  deallog << v.l1_norm() << ' ' << v.l2_norm() << ' ' << v.linfty_norm()
-          << std::endl;
-
-                                   // write out at most 20 equispaced
-                                   // elements of the vector
-  for (unsigned int i=0; i<v.size(); i+=std::max(1U,v.size()/20))
-    deallog << v(i) << ' ';
-  deallog << std::endl;
-}
-
-
-
-
-template <int dim>
-Triangulation<dim> * make_tria ()
-{
-  Triangulation<dim> *tria = new Triangulation<dim>();
-  GridGenerator::hyper_cube(*tria, 0., 1.);
-  tria->refine_global (1);
-  for (int i=0; i<2; ++i)
-    {
-      tria->begin_active()->set_refine_flag();
-      tria->execute_coarsening_and_refinement ();
-    }
-  return tria;
-}
-
-
-
-template <int dim>
-DoFHandler<dim> * make_dof_handler (const Triangulation<dim> &tria,
-                                    const FiniteElement<dim> &fe)
-{
-  DoFHandler<dim> *dof_handler = new DoFHandler<dim>(tria);
-  dof_handler->distribute_dofs (fe);
-  return dof_handler;
-}
-
-
-
-template <int dim>
-void
-check (const FiniteElement<dim> &fe1,
-       const FiniteElement<dim> &fe2,
-       const std::string        &name)
-{
-  deallog << "Checking " << name
-          << " in " << dim << "d:"
-          << std::endl;
-  
-                                   // call main function in .cc files
-  check_this (fe1, fe2);
-}
-
-
-
-
-
-#define CHECK(EL1,deg1,EL2,deg2,dim)\
- { FE_ ## EL1<dim> fe1(deg1);   \
-   FE_ ## EL2<dim> fe2(deg2);   \
-   check(fe1, fe2, #EL1 #deg1 " against " #EL2 #deg2); \
-   check(fe2, fe1, #EL2 #deg2 " against " #EL1 #deg1); \
- }
-
-#define CHECK_SYS1(sub1_1,N1_1,sub2_1,N2_1,dim) \
- { FESystem<dim> fe1(sub1_1, N1_1);   \
-   FESystem<dim> fe2(sub2_1, N2_1);   \
-   check(fe1, fe2, #sub1_1 #N1_1 " against " #sub2_1 #N2_1); \
-   check(fe2, fe1, #sub2_1 #N2_1 " against " #sub1_1 #N1_1); \
- }
-
-/*
-#define CHECK_SYS2(sub1,N1,sub2,N2,dim) \
- { FESystem<dim> q(sub1, N1, sub2, N2); \
-   check(q, #sub1 #N1 #sub2 #N2); }
-
-#define CHECK_SYS3(sub1,N1,sub2,N2,sub3,N3,dim)   \
- { FESystem<dim> q(sub1, N1, sub2, N2, sub3, N3); \
-   check(q, #sub1 #N1 #sub2 #N2 #sub3 #N3); }
-
-*/
-#define CHECK_ALL(EL1,deg1,EL2,deg2)\
- { CHECK(EL1,deg1,EL2,deg2,1); \
-   CHECK(EL1,deg1,EL2,deg2,2); \
-   CHECK(EL1,deg1,EL2,deg2,3); \
- }
-
-
-int
-main()
-{
-  try
-    {
-      std::ofstream logfile(output_file_name.c_str());
-      deallog << std::setprecision (2);
-      deallog.attach(logfile);
-      deallog.depth_console(0);
-      deallog.threshold_double(1.e-10);
-
-      CHECK_ALL(Q,1,Q,1);
-      CHECK_ALL(Q,1,Q,2);
-      CHECK_ALL(Q,1,Q,3);
-      CHECK_ALL(Q,2,Q,2);
-      CHECK_ALL(Q,2,Q,3);
-      CHECK_ALL(Q,3,Q,3);
-
-      CHECK_ALL(DGQ,0,DGQ,0);
-      CHECK_ALL(DGQ,0,DGQ,1);
-      CHECK_ALL(DGQ,0,DGQ,2);
-      CHECK_ALL(DGQ,0,DGQ,4);
-      CHECK_ALL(DGQ,1,DGQ,1);
-      CHECK_ALL(DGQ,1,DGQ,3);
-      CHECK_ALL(DGQ,2,DGQ,2);
-      CHECK_ALL(DGQ,2,DGQ,2);
-      CHECK_ALL(DGQ,2,DGQ,4);
-      CHECK_ALL(DGQ,3,DGQ,3);
-
-      CHECK_ALL(DGP,0,DGP,0);
-      CHECK_ALL(DGP,0,DGP,1);
-      CHECK_ALL(DGP,0,DGP,2);
-      CHECK_ALL(DGP,0,DGP,4);
-      CHECK_ALL(DGP,1,DGP,1);
-      CHECK_ALL(DGP,1,DGP,3);
-      CHECK_ALL(DGP,2,DGP,2);
-      CHECK_ALL(DGP,2,DGP,2);
-      CHECK_ALL(DGP,2,DGP,4);
-      CHECK_ALL(DGP,3,DGP,3);
-      
-      CHECK(Nedelec, 0, Nedelec, 0, 2);
-      CHECK(Nedelec, 0, Nedelec, 0, 3);
-  
-
-      CHECK_SYS1(FE_Q<1>(1),  3,
-                 FE_Q<1>(2),  3,
-                 1);
-      CHECK_SYS1(FE_DGQ<1>(2),2,
-                 FE_DGQ<1>(3),2,
-                 1);
-      CHECK_SYS1(FE_DGP<1>(3),1,
-                 FE_DGP<1>(1),1,
-                 1);
-
-      CHECK_SYS1(FE_Q<2>(1),  3,
-                 FE_Q<2>(2),  3,
-                 2);
-      CHECK_SYS1(FE_DGQ<2>(2),2,
-                 FE_DGQ<2>(3),2,
-                 2);
-      CHECK_SYS1(FE_DGP<2>(3),1,
-                 FE_DGP<2>(1),1,
-                 2);
-
-      CHECK_SYS1(FE_Q<3>(1),  3,
-                 FE_Q<3>(2),  3,
-                 3);
-      CHECK_SYS1(FE_DGQ<3>(2),2,
-                 FE_DGQ<3>(3),2,
-                 3);
-      CHECK_SYS1(FE_DGP<3>(3),1,
-                 FE_DGP<3>(1),1,
-                 3);
-
-
-/*
-      CHECK_SYS2(FE_Q<1>(1),  3,FE_DGQ<1>(2),2,1);
-      CHECK_SYS2(FE_DGQ<1>(2),2,FE_DGP<1>(3),1,1);
-      CHECK_SYS2(FE_DGP<1>(3),1,FE_DGQ<1>(2),2,1);
-
-      CHECK_SYS2(FE_Q<2>(1),  3,FE_DGQ<2>(2),2,2);
-      CHECK_SYS2(FE_DGQ<2>(2),2,FE_DGP<2>(3),1,2);
-      CHECK_SYS2(FE_DGP<2>(3),1,FE_DGQ<2>(2),2,2);
-
-      CHECK_SYS2(FE_Q<3>(1)  ,3,FE_DGQ<3>(2),2,3);
-      CHECK_SYS2(FE_DGQ<3>(2),2,FE_DGP<3>(3),1,3);
-      CHECK_SYS2(FE_DGP<3>(3),1,FE_DGQ<3>(2),2,3);
-
-
-      CHECK_SYS3(FE_Q<1>(1),  3,FE_DGP<1>(3),1,FE_Q<1>(1),3,1);
-      CHECK_SYS3(FE_DGQ<1>(2),2,FE_DGQ<1>(2),2,FE_Q<1>(3),3,1);
-      CHECK_SYS3(FE_DGP<1>(3),1,FE_DGP<1>(3),1,FE_Q<1>(2),3,1);
-
-      CHECK_SYS3(FE_Q<2>(1),  3,FE_DGP<2>(3),1,FE_Q<2>(1),3,2);
-      CHECK_SYS3(FE_DGQ<2>(2),2,FE_DGQ<2>(2),2,FE_Q<2>(3),3,2);
-      CHECK_SYS3(FE_DGP<2>(3),1,FE_DGP<2>(3),1,FE_Q<2>(2),3,2);
-
-      CHECK_SYS3(FE_Q<3>(1),  3,FE_DGP<3>(3),1,FE_Q<3>(1),3,3);
-      CHECK_SYS3(FE_DGQ<3>(2),2,FE_DGQ<3>(2),2,FE_Q<3>(3),3,3);
-      CHECK_SYS3(FE_DGP<3>(3),1,FE_DGP<3>(3),1,FE_Q<3>(2),3,3);
-
-                                       // systems of systems  
-      CHECK_SYS3((FESystem<2>(FE_Q<2>(1),3)), 3,
-                 FE_DGQ<2>(3), 1,
-                 FE_Q<2>(1), 3,
-                 2);
-      CHECK_SYS3(FE_DGQ<2>(3), 1,
-                 FESystem<2>(FE_DGQ<2>(3),3), 1,
-                 FESystem<2>(FE_Q<2>(2),3,
-                             FE_DGQ<2>(0),1),2,
-                 2);
-
-                                       // systems with Nedelec elements
-      CHECK_SYS2 (FE_DGQ<2>(3), 1,
-                  FE_Nedelec<2>(0), 2,
-                  2);
-      CHECK_SYS3(FE_Nedelec<2>(0), 1,
-                 FESystem<2>(FE_DGQ<2>(3),3), 1,
-                 FESystem<2>(FE_Q<2>(2),3,
-                             FE_Nedelec<2>(0),2),2,
-                 2);
-*/  
-      return 0;
-    }
-  catch (std::exception &exc)
-    {
-      deallog << std::endl << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      deallog << "Exception on processing: " << std::endl
-               << exc.what() << std::endl
-               << "Aborting!" << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      return 1;
-    }
-  catch (...) 
-    {
-      deallog << std::endl << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      deallog << "Unknown exception!" << std::endl
-               << "Aborting!" << std::endl
-               << "----------------------------------------------------"
-               << std::endl;
-      return 1;
-    };
-}
-

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.