+++ /dev/null
-//----------------------------------------------------------------------
-// $Id$
-// Version: $Name$
-//
-// Copyright (C) 2009, 2011 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.
-//
-//----------------------------------------------------------------------
-
-
-// The FEValues class stores a copy of the current cell so that when we move
-// on to the next cell we can compare the two for shape similarity and decide
-// which parts of the data we need to re-compute. But this runs into trouble
-// if the lifetime of FEValues object extends beyond a refinement or
-// coarsening step in the triangulation since in that case the stored copy of
-// the cell previously worked on may no longer be valid. The solution is to
-// invalidate the stored cell once mesh refinement happens.
-
-#include "../tests.h"
-#include <deal.II/base/logstream.h>
-#include <deal.II/base/quadrature_lib.h>
-#include <deal.II/grid/grid_generator.h>
-#include <deal.II/dofs/dof_handler.h>
-#include <deal.II/fe/fe_values.h>
-#include <deal.II/fe/fe_q.h>
-
-#include <fstream>
-
-
-
-template <int dim>
-void test()
-{
- Triangulation<dim> tr;
- GridGenerator::hyper_cube(tr);
- tr.refine_global (2);
-
- FE_Q<dim> fe(1);
- DoFHandler<dim> dof(tr);
- dof.distribute_dofs(fe);
-
- const QGauss<dim> quadrature(2);
- FEValues<dim> fe_values (fe, quadrature, update_values);
-
- // initialize FEValues with the first cell
- fe_values.reinit (dof.begin_active());
-
- // then make this first cell invalid by
- // coarsening it away
- for (unsigned int c=0; c<GeometryInfo<dim>::max_children_per_cell; ++c)
- tr.begin(1)->child(c)->set_coarsen_flag();
- tr.execute_coarsening_and_refinement ();
- dof.distribute_dofs(fe);
-
- // initialize FEValues with what is now the
- // first cell. this used to fail (see the
- // reason given at the top)
- fe_values.reinit (dof.begin_active());
-
- deallog << "OK" << std::endl;
-}
-
-
-int main()
-{
- std::ofstream logfile ("cell_similarity_01/output");
- deallog << std::setprecision (4);
-
- deallog.attach(logfile);
- deallog.depth_console (0);
- deallog.threshold_double(1.e-7);
-
- test<1>();
- test<2>();
- test<3>();
-}
{
// Vector DG elements
fe_datas.push_back(
- new FE_DGVector<PolynomialsRaviartThomas<dim>,dim>(0, mapping_raviart_thomas));
+ new FE_DGRaviartThomas<dim>(0));
deallog << (*fe_datas.rbegin())->get_name() << std::endl;
fe_datas.push_back(
- new FE_DGVector<PolynomialsRaviartThomas<dim>,dim>(1, mapping_raviart_thomas));
+ new FE_DGRaviartThomas<dim>(1));
deallog << (*fe_datas.rbegin())->get_name() << std::endl;
fe_datas.push_back(
- new FE_DGVector<PolynomialsNedelec<dim>,dim>(0, mapping_nedelec));
+ new FE_DGNedelec<dim>(0));
deallog << (*fe_datas.rbegin())->get_name() << std::endl;
fe_datas.push_back(
- new FE_DGVector<PolynomialsNedelec<dim>,dim>(1, mapping_nedelec));
+ new FE_DGNedelec<dim>(1));
deallog << (*fe_datas.rbegin())->get_name() << std::endl;
// Hdiv elements
if (dim==2)
{
fe_datas.push_back(
- new FE_DGVector<PolynomialsBDM<dim>,dim>(1, mapping_bdm));
+ new FE_DGBDM<dim>(1));
deallog << (*fe_datas.rbegin())->get_name() << std::endl;
fe_datas.push_back(
- new FE_DGVector<PolynomialsBDM<dim>,dim>(2, mapping_bdm));
+ new FE_DGBDM<dim>(2));
deallog << (*fe_datas.rbegin())->get_name() << std::endl;
fe_datas.push_back(new FE_BDM<dim>(1));
DEAL::FE_DGP<2>(4)
DEAL::FESystem<2>[FE_Q<2>(2)^2]
DEAL::FESystem<2>[FE_Q<2>(1)^2-FE_Q<2>(2)]
-DEAL::FE_DGVector_RaviartThomas<2>(0)
-DEAL::FE_DGVector_RaviartThomas<2>(1)
-DEAL::FE_DGVector_Nedelec<2>(0)
-DEAL::FE_DGVector_Nedelec<2>(1)
+DEAL::FE_DGRaviartThomas<2,2>(0)
+DEAL::FE_DGRaviartThomas<2,2>(1)
+DEAL::FE_DGNedelec<2,2>(0)
+DEAL::FE_DGNedelec<2,2>(1)
DEAL::FE_RaviartThomas<2>(0)
DEAL::FE_RaviartThomas<2>(1)
DEAL::FE_RaviartThomas<2>(2)
DEAL::FESystem<2>[FE_RaviartThomas<2>(1)-FE_DGQ<2>(1)]
DEAL::FE_Nedelec<2>(0)
DEAL::FE_Nedelec<2>(1)
-DEAL::FE_DGVector_BDM<2>(1)
-DEAL::FE_DGVector_BDM<2>(2)
+DEAL::FE_DGBDM<2,2>(1)
+DEAL::FE_DGBDM<2,2>(2)
DEAL::FE_BDM<2>(1)
DEAL::FE_BDM<2>(2)
DEAL::FE_RaviartThomasNodal<2>(0)
DEAL::support on face 2: 0 1 2 3 4 5 14
DEAL::support on face 3: 6 7 8 9 10 11 15
DEAL::
-DEAL::fe_data[14]:FE_DGVector_RaviartThomas<2>(0)
+DEAL::fe_data[14]:FE_DGRaviartThomas<2,2>(0)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=4
DEAL::support on face 2: 0 1 2 3
DEAL::support on face 3: 0 1 2 3
DEAL::
-DEAL::fe_data[15]:FE_DGVector_RaviartThomas<2>(1)
+DEAL::fe_data[15]:FE_DGRaviartThomas<2,2>(1)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=12
DEAL::support on face 2: 0 1 2 3 4 5 6 7 8 9 10 11
DEAL::support on face 3: 0 1 2 3 4 5 6 7 8 9 10 11
DEAL::
-DEAL::fe_data[16]:FE_DGVector_Nedelec<2>(0)
+DEAL::fe_data[16]:FE_DGNedelec<2,2>(0)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=4
DEAL::support on face 2: 0 1 2 3
DEAL::support on face 3: 0 1 2 3
DEAL::
-DEAL::fe_data[17]:FE_DGVector_Nedelec<2>(1)
+DEAL::fe_data[17]:FE_DGNedelec<2,2>(1)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=12
DEAL::support on face 2: 0 1 2 3 4 5
DEAL::support on face 3: 0 1 2 3 6 7 8 9 10 11
DEAL::
-DEAL::fe_data[24]:FE_DGVector_BDM<2>(1)
+DEAL::fe_data[24]:FE_DGBDM<2,2>(1)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=8
DEAL::support on face 2: 0 1 2 3 4 5 6 7
DEAL::support on face 3: 0 1 2 3 4 5 6 7
DEAL::
-DEAL::fe_data[25]:FE_DGVector_BDM<2>(2)
+DEAL::fe_data[25]:FE_DGBDM<2,2>(2)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=14
DEAL::FE_DGP<3>(4)
DEAL::FESystem<3>[FE_Q<3>(2)^2]
DEAL::FESystem<3>[FE_Q<3>(1)^2-FE_Q<3>(2)]
-DEAL::FE_DGVector_RaviartThomas<3>(0)
-DEAL::FE_DGVector_RaviartThomas<3>(1)
-DEAL::FE_DGVector_Nedelec<3>(0)
-DEAL::FE_DGVector_Nedelec<3>(1)
+DEAL::FE_DGRaviartThomas<3,3>(0)
+DEAL::FE_DGRaviartThomas<3,3>(1)
+DEAL::FE_DGNedelec<3,3>(0)
+DEAL::FE_DGNedelec<3,3>(1)
DEAL::FE_RaviartThomas<3>(0)
DEAL::FE_RaviartThomas<3>(1)
DEAL::FE_RaviartThomas<3>(2)
DEAL::support on face 4: 0 1 2 3 4 5 6 7 8 9 10 11 24 25 26 27 40
DEAL::support on face 5: 12 13 14 15 16 17 18 19 20 21 22 23 28 29 30 31 41
DEAL::
-DEAL::fe_data[14]:FE_DGVector_RaviartThomas<3>(0)
+DEAL::fe_data[14]:FE_DGRaviartThomas<3,3>(0)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=0
DEAL::support on face 4: 0 1 2 3 4 5
DEAL::support on face 5: 0 1 2 3 4 5
DEAL::
-DEAL::fe_data[15]:FE_DGVector_RaviartThomas<3>(1)
+DEAL::fe_data[15]:FE_DGRaviartThomas<3,3>(1)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=0
DEAL::support on face 4: 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
DEAL::support on face 5: 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
DEAL::
-DEAL::fe_data[16]:FE_DGVector_Nedelec<3>(0)
+DEAL::fe_data[16]:FE_DGNedelec<3,3>(0)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=0
DEAL::support on face 4: 0 1 2 3 4 5 6 7 8 9 10 11
DEAL::support on face 5: 0 1 2 3 4 5 6 7 8 9 10 11
DEAL::
-DEAL::fe_data[17]:FE_DGVector_Nedelec<3>(1)
+DEAL::fe_data[17]:FE_DGNedelec<3,3>(1)
DEAL::dofs_per_vertex=0
DEAL::dofs_per_line=0
DEAL::dofs_per_quad=0