+++ /dev/null
-//---------------------------- select_fe_values.h ---------------------------
-// $Id$
-// Version: $Name$
-//
-// Copyright (C) 2003, 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.
-//
-//---------------------------- select_fe_values.h ---------------------------
-#ifndef __deal2__select_fe_values_h
-#define __deal2__select_fe_values_h
-
-#include <base/config.h>
-
-template <int> class DoFHandler;
-namespace hp
-{
- template <int> class DoFHandler;
-}
-
-template <int> class FEValues;
-template <int> class FEFaceValues;
-template <int> class FESubfaceValues;
-
-namespace hp
-{
- template <int> class FEValues;
- template <int> class FEFaceValues;
- template <int> class FESubfaceValues;
-}
-
-
-
-/**
- *
- * @ingroup hp
- */
-template <typename> struct SelectFEValues;
-
-/**
- *
- * @ingroup hp
- */
-template <int dim> struct SelectFEValues<DoFHandler<dim> >
-{
- typedef FEValues<dim> FEValues;
- typedef FEFaceValues<dim> FEFaceValues;
- typedef FESubfaceValues<dim> FESubfaceValues;
-};
-
-
-/**
- *
- * @ingroup hp
- */
-template <int dim> struct SelectFEValues<hp::DoFHandler<dim> >
-{
- typedef hp::FEValues<dim> FEValues;
- typedef hp::FEFaceValues<dim> FEFaceValues;
- typedef hp::FESubfaceValues<dim> FESubfaceValues;
-};
-
-
-
-
-#endif
#include <fe/fe_values.h>
#include <fe/hp_fe_values.h>
#include <fe/mapping_q1.h>
-#include <fe/select_fe_values.h>
#include <sstream>
//TODO[?]: This is strange -- Data has a member 'mapping' that should
//be used here, but it isn't. Rather, up until version 1.94, we were
-//actually initializing a local mapping object and used that...
- typename SelectFEValues<DH<dim> >::FEValues
- x_fe_patch_values (this->dofs->get_fe(),
- patch_points, update_values);
+//actually initializing a local mapping object and used that... While
+//we use the mapping to transform the vertex coordinates, we do not
+//use the mapping to transform the shape functions (necessary for
+//example for Raviart-Thomas elements). This could lead to trouble
+//when someone tries to use MappingEulerian with such elements
+
+ // create collection objects from
+ // single quadratures,
+ // and finite elements. if we have
+ // an hp DoFHandler,
+ // dof_handler.get_fe() returns a
+ // collection of which we do a
+ // shallow copy instead
+ const hp::QCollection<dim> q_collection (patch_points);
+ const hp::FECollection<dim> fe_collection(this->dofs->get_fe());
+
+ hp::FEValues<dim> x_fe_patch_values (fe_collection, q_collection,
+ update_values);
const unsigned int n_q_points = patch_points.n_quadrature_points;
#include <fe/fe.h>
#include <fe/fe_values.h>
#include <fe/hp_fe_values.h>
-#include <fe/select_fe_values.h>
#include <fe/mapping_q1.h>
QTrapez<1> q_trapez;
QIterated<dim-1> patch_points (q_trapez, data.n_subdivisions);
- typename SelectFEValues<DH<dim> >::FEFaceValues
- x_fe_patch_values (this->dofs->get_fe(),
- patch_points, update_values);
+//TODO[?]: This is strange -- Data has a member 'mapping' that should
+//be used here, but it isn't. Rather, up until version 1.94, we were
+//actually initializing a local mapping object and used that... While
+//we use the mapping to transform the vertex coordinates, we do not
+//use the mapping to transform the shape functions (necessary for
+//example for Raviart-Thomas elements). This could lead to trouble
+//when someone tries to use MappingEulerian with such elements
+
+ // create collection objects from
+ // single quadratures,
+ // and finite elements. if we have
+ // an hp DoFHandler,
+ // dof_handler.get_fe() returns a
+ // collection of which we do a
+ // shallow copy instead
+ const hp::QCollection<dim-1> q_collection (patch_points);
+ const hp::FECollection<dim> fe_collection(this->dofs->get_fe());
+
+ hp::FEFaceValues<dim> x_fe_patch_values (fe_collection, q_collection,
+ update_values);
const unsigned int n_q_points = patch_points.n_quadrature_points;
#include <fe/fe.h>
#include <fe/fe_values.h>
#include <fe/hp_fe_values.h>
-#include <fe/select_fe_values.h>
#include <fe/mapping_q1.h>
#include <numerics/data_out_rotation.h>
QTrapez<1> q_trapez;
QIterated<dim> patch_points (q_trapez, data.n_subdivisions);
+ // create collection objects from
+ // single quadratures,
+ // and finite elements. if we have
+ // an hp DoFHandler,
+ // dof_handler.get_fe() returns a
+ // collection of which we do a
+ // shallow copy instead
+ //
// since most output formats can't
// handle cells that are not
// transformed using a Q1 mapping,
// we don't support anything else
// as well
- typename SelectFEValues<DH<dim> >::FEValues
- x_fe_patch_values (StaticMappingQ1<dim>::mapping, this->dofs->get_fe(),
- patch_points, update_values);
+ const hp::QCollection<dim> q_collection (patch_points);
+ const hp::FECollection<dim> fe_collection(this->dofs->get_fe());
+
+ hp::FEValues<dim> x_fe_patch_values (fe_collection, q_collection,
+ update_values);
const unsigned int n_patches_per_circle = data.n_patches_per_circle;
#include <fe/fe.h>
#include <fe/fe_values.h>
#include <fe/hp_fe_values.h>
-#include <fe/select_fe_values.h>
#include <fe/mapping_q1.h>
#include <sstream>
QTrapez<1> q_trapez;
QIterated<dim> patch_points (q_trapez, n_subdivisions);
- typename SelectFEValues<DH<dim> >::FEValues
- x_fe_patch_values (dof_handler->get_fe(),
- patch_points, update_values);
+ // create collection objects from
+ // single quadratures,
+ // and finite elements. if we have
+ // an hp DoFHandler,
+ // dof_handler.get_fe() returns a
+ // collection of which we do a
+ // shallow copy instead
+ const hp::QCollection<dim> q_collection (patch_points);
+ const hp::FECollection<dim> fe_collection(dof_handler->get_fe());
+
+ hp::FEValues<dim> x_fe_patch_values (fe_collection, q_collection,
+ update_values);
+
const unsigned int n_q_points = patch_points.n_quadrature_points;
std::vector<double> patch_values (n_q_points);
std::vector<Vector<double> > patch_values_system (n_q_points,