From ebbf80844798a46bff73e52f01738023ad3d9e36 Mon Sep 17 00:00:00 2001 From: bangerth Date: Fri, 11 Aug 2006 13:19:55 +0000 Subject: [PATCH] New test git-svn-id: https://svn.dealii.org/trunk@13659 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/bits/Makefile | 3 +- tests/bits/face_interpolation.cc | 101 ++++ tests/bits/face_interpolation/cmp/generic | 535 ++++++++++++++++++++++ 3 files changed, 638 insertions(+), 1 deletion(-) create mode 100644 tests/bits/face_interpolation.cc create mode 100644 tests/bits/face_interpolation/cmp/generic diff --git a/tests/bits/Makefile b/tests/bits/Makefile index cef31fedbf..1eb0179cce 100644 --- a/tests/bits/Makefile +++ b/tests/bits/Makefile @@ -79,7 +79,8 @@ tests_x = grid_generator_?? \ get_dof_indices_* \ n_dofs_per_object \ step-* \ - hp_constraints* + hp_constraints* \ + face_interpolation # tests for the hp branch: # fe_collection_* diff --git a/tests/bits/face_interpolation.cc b/tests/bits/face_interpolation.cc new file mode 100644 index 0000000000..7847accce8 --- /dev/null +++ b/tests/bits/face_interpolation.cc @@ -0,0 +1,101 @@ +//---------------------------- face_interpolation.cc --------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2005, 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 +// further information on this license. +// +//---------------------------- face_interpolation.cc --------------------------- + +#include "../tests.h" +#include "fe_tools_common.cc" + +// check +// FE::face_interpolation + + +std::string output_file_name = "face_interpolation/output"; + + + +template +void +check_this (const FiniteElement &fe1, + const FiniteElement &fe2) +{ + if (dim == 1) + return; + + // check all combinations of fe1 and fe2 + FullMatrix face_constraints; + try + { + face_constraints.reinit (fe1.dofs_per_face, + fe1.dofs_per_face); + fe1.get_face_interpolation_matrix (fe1, face_constraints); + + deallog << fe1.get_name() + << " vs. " + << fe1.get_name() + << std::endl; + output_matrix (face_constraints); + } + catch (...) + { + } + + try + { + face_constraints.reinit (fe2.dofs_per_face, + fe2.dofs_per_face); + fe2.get_face_interpolation_matrix (fe2, face_constraints); + + deallog << fe2.get_name() + << " vs. " + << fe2.get_name() + << std::endl; + output_matrix (face_constraints); + } + catch (...) + { + } + + if (fe1.dofs_per_face <= fe2.dofs_per_face) + try + { + face_constraints.reinit (fe1.dofs_per_face, + fe2.dofs_per_face); + fe1.get_face_interpolation_matrix (fe2, face_constraints); + + deallog << fe1.get_name() + << " vs. " + << fe2.get_name() + << std::endl; + output_matrix (face_constraints); + } + catch (...) + { + } + + if (fe2.dofs_per_face <= fe1.dofs_per_face) + try + { + face_constraints.reinit (fe2.dofs_per_face, + fe1.dofs_per_face); + fe2.get_face_interpolation_matrix (fe1, face_constraints); + + deallog << fe2.get_name() + << " vs. " + << fe1.get_name() + << std::endl; + output_matrix (face_constraints); + } + catch (...) + { + } +} + diff --git a/tests/bits/face_interpolation/cmp/generic b/tests/bits/face_interpolation/cmp/generic new file mode 100644 index 0000000000..d355d7a6ef --- /dev/null +++ b/tests/bits/face_interpolation/cmp/generic @@ -0,0 +1,535 @@ + +DEAL::Checking Q1 against Q1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q1 against Q3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q2 against Q3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Q3 against Q3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ4 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ4 against DGQ0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ4 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ4 against DGQ0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ0 against DGQ4 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ4 against DGQ0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ1 against DGQ3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ4 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ4 against DGQ2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ4 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ4 against DGQ2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ2 against DGQ4 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ4 against DGQ2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGQ3 against DGQ3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP4 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP4 against DGP0 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP4 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP4 against DGP0 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP0 against DGP4 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP4 against DGP0 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP1 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP1 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP1 against DGP3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP1 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP4 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP4 against DGP2 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP4 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP4 against DGP2 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP2 against DGP4 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP4 against DGP2 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP3 in 1d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP3 in 2d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking DGP3 against DGP3 in 3d: +DEAL::true +DEAL::true +DEAL::Checking Nedelec1 against Nedelec1 in 2d: +DEAL::false +DEAL::false +DEAL::Checking Nedelec1 against Nedelec1 in 2d: +DEAL::false +DEAL::false +DEAL::Checking Nedelec1 against Nedelec1 in 3d: +DEAL::false +DEAL::false +DEAL::Checking Nedelec1 against Nedelec1 in 3d: +DEAL::false +DEAL::false +DEAL::Checking FE_Q<1>(1)3 against FE_Q<1>(2)3 in 1d: +DEAL::false +DEAL::false +DEAL::Checking FE_Q<1>(2)3 against FE_Q<1>(1)3 in 1d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGQ<1>(2)2 against FE_DGQ<1>(3)2 in 1d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGQ<1>(3)2 against FE_DGQ<1>(2)2 in 1d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGP<1>(3)1 against FE_DGP<1>(1)1 in 1d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGP<1>(1)1 against FE_DGP<1>(3)1 in 1d: +DEAL::false +DEAL::false +DEAL::Checking FE_Q<2>(1)3 against FE_Q<2>(2)3 in 2d: +DEAL::false +DEAL::false +DEAL::Checking FE_Q<2>(2)3 against FE_Q<2>(1)3 in 2d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGQ<2>(2)2 against FE_DGQ<2>(3)2 in 2d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGQ<2>(3)2 against FE_DGQ<2>(2)2 in 2d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGP<2>(3)1 against FE_DGP<2>(1)1 in 2d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGP<2>(1)1 against FE_DGP<2>(3)1 in 2d: +DEAL::false +DEAL::false +DEAL::Checking FE_Q<3>(1)3 against FE_Q<3>(2)3 in 3d: +DEAL::false +DEAL::false +DEAL::Checking FE_Q<3>(2)3 against FE_Q<3>(1)3 in 3d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGQ<3>(2)2 against FE_DGQ<3>(3)2 in 3d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGQ<3>(3)2 against FE_DGQ<3>(2)2 in 3d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGP<3>(3)1 against FE_DGP<3>(1)1 in 3d: +DEAL::false +DEAL::false +DEAL::Checking FE_DGP<3>(1)1 against FE_DGP<3>(3)1 in 3d: +DEAL::false +DEAL::false -- 2.39.5