From: Wolfgang Bangerth Date: Fri, 25 Sep 2009 02:48:15 +0000 (+0000) Subject: New test. X-Git-Tag: v8.0.0~7041 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=89635660ccc10e4c0a4bba12769e44191342b99b;p=dealii.git New test. git-svn-id: https://svn.dealii.org/trunk@19539 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/tests/hp/Makefile b/tests/hp/Makefile index 947bdb32a3..e04049175c 100644 --- a/tests/hp/Makefile +++ b/tests/hp/Makefile @@ -1,6 +1,6 @@ ############################################################ # $Id$ -# Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008 by the deal.II authors +# Copyright (C) 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009 by the deal.II authors ############################################################ ############################################################ @@ -17,7 +17,7 @@ libraries = $(lib-deal2-1d.g) \ $(lib-lac.g) \ $(lib-base.g) -default: run-tests +default: run-tests ############################################################ @@ -26,6 +26,7 @@ tests_x = hp_dof_handler \ q_collection_* \ mapping_collection_* \ fe_collection_* \ + fe_nothing_* \ continuous_* \ n_dofs \ random \ diff --git a/tests/hp/fe_nothing_01.cc b/tests/hp/fe_nothing_01.cc new file mode 100644 index 0000000000..bfdc0c7fa0 --- /dev/null +++ b/tests/hp/fe_nothing_01.cc @@ -0,0 +1,103 @@ +//---------------------------- fe_nothing_01.cc --------------------------- +// $Id$ +// Version: $Name$ +// +// Copyright (C) 2009 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_nothing_01.cc --------------------------- + + +// test that FE_Nothing works as intended + + +#include "../tests.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include + + +template +void test () +{ + Triangulation triangulation; + GridGenerator :: hyper_cube (triangulation, -0.5, 0.5); + triangulation.refine_global(4); + + hp::FECollection fe_collection; + fe_collection.push_back (FE_Q(1)); + fe_collection.push_back (FE_Nothing()); + + hp::DoFHandler dof_handler (triangulation); + + // loop over cells, and set cells + // within a circle to be of type + // FE_Nothing, while outside the + // circle to be of type FE_Q(1) + typename hp::DoFHandler::active_cell_iterator + cell = dof_handler.begin_active(), + endc = dof_handler.end(); + + for(; cell != endc; cell++) + { + Point center = cell->center(); + if( std::sqrt(center.square()) < 0.25 ) + cell->set_active_fe_index(1); + else + cell->set_active_fe_index(0); + } + + // Attempt to distribute dofs. + // Fails here with assertion from + // hp_vertex_dof_identities(). + // Seems this function expects all + // elements to be of type FE_Q, and + // therefore have dofs at the cell + // vertices. + + dof_handler.distribute_dofs (fe_collection); + + deallog << " Number of active cells: " + << triangulation.n_active_cells() + << std::endl + << " Number of degrees of freedom: " + << dof_handler.n_dofs() + << std::endl; +} + + + +int main () +{ + std::ofstream logfile("fe_nothing_01/output"); + logfile.precision(2); + + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test<1> (); + test<2> (); + test<3> (); + + deallog << "OK" << std::endl; +} diff --git a/tests/hp/fe_nothing_01/cmp/generic b/tests/hp/fe_nothing_01/cmp/generic new file mode 100644 index 0000000000..0fd8fc12f0 --- /dev/null +++ b/tests/hp/fe_nothing_01/cmp/generic @@ -0,0 +1,2 @@ + +DEAL::OK