<h3>deal.II</h3>
<ol>
- <li><p>New: The class hp::FEFaceValues and hp::FESubfaceValues were not
- previously available for meshes that were embedded in a higher
- dimensional space (i.e. if the codimension was greater than 1). This is
- now fixed. As a consequence, the VectorTools::interpolate_boundary_values
- function is now also available for such meshes.
- <br>
- (WB, 2010/11/02)
- </p></li>
-
<li><p>Fixed: The FEValuesExtractors::Vector class did not work when the dimension
of the domain was not equal to the dimension of the space in which it is
embedded. This is now fixed.
*
* A hint to implementators: no function except the two functions
* @p update_once and @p update_each may add any flags.
- *
+ *
* For more information about the <tt>spacedim</tt> template parameter
* check the documentation of FiniteElement or the one of
* Triangulation.
class Mapping : public Subscriptor
{
public:
-
+
/**
* Virtual destructor.
*/
virtual ~Mapping ();
-
+
/**
* Transforms the point @p p on
* the unit cell to the point
transform_unit_to_real_cell (
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Point<dim> &p) const = 0;
-
+
/**
* Transforms the point @p p on
* the real cell to the point
transform_real_to_unit_cell (
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Point<spacedim> &p) const = 0;
-
+
/**
* Base class for internal data
* of finite element and mapping
* @p first_cell to @p true.
*/
InternalDataBase ();
-
+
/**
* Virtual destructor for
* derived classes
* by reinit.
*/
UpdateFlags update_flags;
-
+
/**
* Values computed by
* constructor.
* the first cell.
*/
virtual void clear_first_cell ();
-
+
/**
* Return an estimate (in
* bytes) or the memory
* if #update_volume_elements.
*/
std::vector<double> volume_elements;
-
+
/**
* The positions of the
* mapped (generalized)
* support points.
*/
std::vector<Point<spacedim> > support_point_values;
-
+
/*
* The Jacobian of the
* transformation in the
* points.
*/
std::vector<Tensor<2,spacedim> > support_point_gradients;
-
+
/*
* The inverse of the
* Jacobian of the
* points.
*/
std::vector<Tensor<2,spacedim> > support_point_inverse_gradients;
-
-
+
+
private:
/**
* The value returned by
*/
bool first_cell;
};
-
+
/**
* Transform a field of
* vectors accorsing to
VectorSlice<std::vector<Tensor<2,spacedim> > > output,
const InternalDataBase &internal,
const MappingType type) const = 0;
-
+
/**
* @deprecated Use transform() instead.
*/
/**
* @deprecated Use transform() instead.
*/
-
+
void
transform_contravariant (const VectorSlice<const std::vector<Tensor<2,dim> > > intput,
const unsigned int offset,
const Point<spacedim>& support_point_value(
const unsigned int index,
const typename Mapping<dim,spacedim>::InternalDataBase &internal) const;
-
+
/**
* The Jacobian
* matrix of the transformation
const Tensor<2,spacedim>& support_point_gradient(
const unsigned int index,
const typename Mapping<dim,spacedim>::InternalDataBase &internal) const;
-
+
/**
* The inverse Jacobian
* matrix of the transformation
const Tensor<2,spacedim>& support_point_inverse_gradient(
const unsigned int index,
const typename Mapping<dim,spacedim>::InternalDataBase &internal) const;
-
+
/**
* Return a pointer to a copy of the
* present object. The caller of this
*/
virtual
Mapping<dim,spacedim> * clone () const = 0;
-
+
/**
* Returns whether the mapping preserves
* vertex locations, i.e. whether the
DeclException0 (ExcInvalidData);
private:
-
+
/**
* Indicate fields to be updated
* in the constructor of
* See @ref UpdateFlagsEssay.
*/
virtual UpdateFlags update_once (const UpdateFlags) const = 0;
-
+
/**
* The same as update_once(),
* but for the flags to be updated for
virtual InternalDataBase*
get_face_data (const UpdateFlags flags,
const Quadrature<dim-1>& quadrature) const = 0;
-
+
/**
* Prepare internal data
* structure for transformation
const unsigned int face_no,
const Quadrature<dim-1> &quadrature,
InternalDataBase &internal,
- std::vector<Point<spacedim> > &quadrature_points,
+ std::vector<Point<dim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<1,dim> > &boundary_form,
std::vector<Point<spacedim> > &normal_vectors) const = 0;
const unsigned int sub_no,
const Quadrature<dim-1> &quadrature,
InternalDataBase &internal,
- std::vector<Point<spacedim> > &quadrature_points,
+ std::vector<Point<dim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<1,dim> > &boundary_form,
std::vector<Point<spacedim> > &normal_vectors) const = 0;
const typename Mapping<dim,spacedim>::InternalDataBase& internal) const
{
AssertIndexRange(index, internal.support_point_values.size());
- return internal.support_point_values[index];
+ return internal.support_point_values[index];
}
* @ingroup hp hpcollection
* @author Wolfgang Bangerth, 2003
*/
- template <int dim, int spacedim=dim>
- class FEFaceValues : public internal::hp::FEValuesBase<dim,dim-1,dealii::FEFaceValues<dim,spacedim> >
+ template <int dim>
+ class FEFaceValues : public internal::hp::FEValuesBase<dim,dim-1,dealii::FEFaceValues<dim> >
{
public:
/**
* <tt>DoFHandler::get_fe()</tt>
* function.
*/
- FEFaceValues (const hp::MappingCollection<dim,spacedim> &mapping_collection,
- const hp::FECollection<dim,spacedim> &fe_collection,
+ FEFaceValues (const hp::MappingCollection<dim> &mapping_collection,
+ const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags);
* <tt>DoFHandler::get_fe()</tt>
* function.
*/
- FEFaceValues (const hp::FECollection<dim,spacedim> &fe_collection,
+ FEFaceValues (const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags);
* this argument is specified.
*/
void
- reinit (const typename hp::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
const unsigned int mapping_index = numbers::invalid_unsigned_int,
* these last three arguments.
*/
void
- reinit (const typename dealii::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename dealii::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
const unsigned int mapping_index = numbers::invalid_unsigned_int,
* these last three arguments.
*/
void
- reinit (const typename MGDoFHandler<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename MGDoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
const unsigned int mapping_index = numbers::invalid_unsigned_int,
* three arguments.
*/
void
- reinit (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename Triangulation<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
const unsigned int mapping_index = numbers::invalid_unsigned_int,
* @ingroup hp hpcollection
* @author Wolfgang Bangerth, 2003
*/
- template <int dim, int spacedim=dim>
- class FESubfaceValues : public internal::hp::FEValuesBase<dim,dim-1,dealii::FESubfaceValues<dim,spacedim> >
+ template <int dim>
+ class FESubfaceValues : public internal::hp::FEValuesBase<dim,dim-1,dealii::FESubfaceValues<dim> >
{
public:
/**
* <tt>DoFHandler::get_fe()</tt>
* function.
*/
- FESubfaceValues (const hp::MappingCollection<dim,spacedim> &mapping_collection,
- const hp::FECollection<dim,spacedim> &fe_collection,
+ FESubfaceValues (const hp::MappingCollection<dim> &mapping_collection,
+ const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags);
* <tt>DoFHandler::get_fe()</tt>
* function.
*/
- FESubfaceValues (const hp::FECollection<dim,spacedim> &fe_collection,
+ FESubfaceValues (const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags);
* this argument is specified.
*/
void
- reinit (const typename hp::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
* these last three arguments.
*/
void
- reinit (const typename dealii::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename dealii::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
* these last three arguments.
*/
void
- reinit (const typename MGDoFHandler<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename MGDoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
* three arguments.
*/
void
- reinit (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
+ reinit (const typename Triangulation<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index = numbers::invalid_unsigned_int,
const std::vector<bool> &component_mask_)
{
const unsigned int dim=DH::dimension;
- const unsigned int spacedim=DH::space_dimension;
Assert ((component_mask_.size() == 0) ||
(component_mask_.size() == dof.get_fe().n_components()),
const unsigned int n_components = DoFTools::n_components(dof);
const bool fe_is_system = (n_components != 1);
- for (typename FunctionMap<spacedim>::type::const_iterator i=function_map.begin();
+ for (typename FunctionMap<DH::space_dimension>::type::const_iterator i=function_map.begin();
i!=function_map.end(); ++i)
Assert (n_components == i->second->n_components,
ExcDimensionMismatch(n_components, i->second->n_components));
std::vector<unsigned int> face_dofs;
face_dofs.reserve (DoFTools::max_dofs_per_face(dof));
- std::vector<Point<spacedim> > dof_locations;
+ std::vector<Point<DH::space_dimension> > dof_locations;
dof_locations.reserve (DoFTools::max_dofs_per_face(dof));
// array to store the values of
// the interpolation points of all
// finite elements that may ever be
// in use
- hp::FECollection<dim,spacedim> finite_elements (dof.get_fe());
+ hp::FECollection<dim> finite_elements (dof.get_fe());
hp::QCollection<dim-1> q_collection;
for (unsigned int f=0; f<finite_elements.size(); ++f)
{
- const FiniteElement<dim,spacedim> &fe = finite_elements[f];
+ const FiniteElement<dim> &fe = finite_elements[f];
// generate a quadrature rule
// on the face from the unit
// hp::FEFaceValues object that we
// can use to evaluate the boundary
// values at
- hp::MappingCollection<dim,spacedim> mapping_collection (mapping);
- hp::FEFaceValues<dim,spacedim> x_fe_values (mapping_collection, finite_elements, q_collection,
- update_quadrature_points);
+ hp::MappingCollection<dim> mapping_collection (mapping);
+ hp::FEFaceValues<dim> x_fe_values (mapping_collection, finite_elements, q_collection,
+ update_quadrature_points);
typename DH::active_cell_iterator cell = dof.begin_active(),
endc = dof.end();
for (unsigned int face_no = 0; face_no < GeometryInfo<dim>::faces_per_cell;
++face_no)
{
- const FiniteElement<dim,spacedim> &fe = cell->get_fe();
+ const FiniteElement<dim,DH::space_dimension> &fe = cell->get_fe();
// we can presently deal only with
// primitive elements for boundary
{
// face is of the right component
x_fe_values.reinit(cell, face_no);
- const FEFaceValues<dim,spacedim> &fe_values = x_fe_values.get_present_fe_values();
+ const FEFaceValues<dim> &fe_values = x_fe_values.get_present_fe_values();
// get indices, physical location and
// boundary values of dofs on this
// face
face_dofs.resize (fe.dofs_per_face);
face->get_dof_indices (face_dofs, cell->active_fe_index());
- const std::vector<Point<spacedim> > &dof_locations
+ const std::vector<Point<DH::space_dimension> > &dof_locations
= fe_values.get_quadrature_points ();
if (fe_is_system)
&& ! excluded_dofs[dof_to_boundary_mapping[i]])
{
Assert(numbers::is_finite(boundary_projection(dof_to_boundary_mapping[i])), ExcNumberNotFinite());
-
+
// this dof is on one of the
// interesting boundary parts
//
FEFaceValuesBase<dim,spacedim> (quadrature.size(),
fe.dofs_per_cell,
update_flags,
- StaticMappingQ1<dim,spacedim>::mapping,
+ StaticMappingQ1<dim>::mapping,
fe, quadrature)
{
Assert (DEAL_II_COMPAT_MAPPING, ExcCompatibility("mapping"));
template class FEValues<deal_II_dimension,deal_II_dimension+1>;
template class FEValuesBase<deal_II_dimension,deal_II_dimension+1>::
CellIterator<DoFHandler<deal_II_dimension,deal_II_dimension+1>::cell_iterator>;
-template class FEValuesBase<deal_II_dimension,deal_II_dimension+1>::
- CellIterator<MGDoFHandler<deal_II_dimension,deal_II_dimension+1>::cell_iterator>;
-
-#if deal_II_dimension == 2
-template class FEFaceValuesBase<deal_II_dimension,deal_II_dimension+1>;
-template class FEFaceValues<deal_II_dimension,deal_II_dimension+1>;
-template class FESubfaceValues<deal_II_dimension,deal_II_dimension+1>;
-#endif
+//template class FEValuesBase<deal_II_dimension,deal_II_dimension+1>::
+// CellIterator<MGDoFHandler<deal_II_dimension,deal_II_dimension+1>::cell_iterator>;
+
+// #if deal_II_dimension == 2
+// template class FEFaceValuesBase<deal_II_dimension,deal_II_dimension+1>;
+// template class FEFaceValues<deal_II_dimension,deal_II_dimension+1>;
+// template class FESubfaceValues<deal_II_dimension,deal_II_dimension+1>;
+// #endif
#endif
// -------------------------- FEFaceValues -------------------------
- template <int dim, int spacedim>
- FEFaceValues<dim,spacedim>::FEFaceValues (const hp::MappingCollection<dim,spacedim> &mapping,
- const hp::FECollection<dim,spacedim> &fe_collection,
+ template <int dim>
+ FEFaceValues<dim>::FEFaceValues (const hp::MappingCollection<dim> &mapping,
+ const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags)
:
- internal::hp::FEValuesBase<dim,dim-1,dealii::FEFaceValues<dim,spacedim> > (mapping,
+ internal::hp::FEValuesBase<dim,dim-1,dealii::FEFaceValues<dim> > (mapping,
fe_collection,
q_collection,
update_flags)
{}
- template <int dim, int spacedim>
- FEFaceValues<dim,spacedim>::FEFaceValues (const hp::FECollection<dim,spacedim> &fe_collection,
+ template <int dim>
+ FEFaceValues<dim>::FEFaceValues (const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags)
:
- internal::hp::FEValuesBase<dim,dim-1,dealii::FEFaceValues<dim,spacedim> > (fe_collection,
+ internal::hp::FEValuesBase<dim,dim-1,dealii::FEFaceValues<dim> > (fe_collection,
q_collection,
update_flags)
{}
- template <int dim, int spacedim>
+ template <int dim>
void
- FEFaceValues<dim,spacedim>::reinit (const typename hp::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ FEFaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index,
const unsigned int mapping_index,
- template <int dim, int spacedim>
+ template <int dim>
void
- FEFaceValues<dim,spacedim>::reinit (const typename dealii::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ FEFaceValues<dim>::reinit (const typename dealii::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index,
const unsigned int mapping_index,
- template <int dim, int spacedim>
+ template <int dim>
void
- FEFaceValues<dim,spacedim>::reinit (const typename MGDoFHandler<dim,spacedim>::cell_iterator &cell,
+ FEFaceValues<dim>::reinit (const typename MGDoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index,
const unsigned int mapping_index,
- template <int dim, int spacedim>
+ template <int dim>
void
- FEFaceValues<dim,spacedim>::reinit (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
+ FEFaceValues<dim>::reinit (const typename Triangulation<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int q_index,
const unsigned int mapping_index,
// -------------------------- FESubfaceValues -------------------------
- template <int dim, int spacedim>
- FESubfaceValues<dim,spacedim>::FESubfaceValues (const hp::MappingCollection<dim,spacedim> &mapping,
- const hp::FECollection<dim,spacedim> &fe_collection,
+ template <int dim>
+ FESubfaceValues<dim>::FESubfaceValues (const hp::MappingCollection<dim> &mapping,
+ const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags)
:
- internal::hp::FEValuesBase<dim,dim-1,dealii::FESubfaceValues<dim,spacedim> > (mapping,
+ internal::hp::FEValuesBase<dim,dim-1,dealii::FESubfaceValues<dim> > (mapping,
fe_collection,
q_collection,
update_flags)
{}
- template <int dim, int spacedim>
- FESubfaceValues<dim,spacedim>::FESubfaceValues (const hp::FECollection<dim,spacedim> &fe_collection,
+ template <int dim>
+ FESubfaceValues<dim>::FESubfaceValues (const hp::FECollection<dim> &fe_collection,
const hp::QCollection<dim-1> &q_collection,
const UpdateFlags update_flags)
:
- internal::hp::FEValuesBase<dim,dim-1,dealii::FESubfaceValues<dim,spacedim> > (fe_collection,
+ internal::hp::FEValuesBase<dim,dim-1,dealii::FESubfaceValues<dim> > (fe_collection,
q_collection,
update_flags)
{}
- template <int dim, int spacedim>
+ template <int dim>
void
- FESubfaceValues<dim,spacedim>::reinit (const typename hp::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ FESubfaceValues<dim>::reinit (const typename hp::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index,
- template <int dim, int spacedim>
+ template <int dim>
void
- FESubfaceValues<dim,spacedim>::reinit (const typename dealii::DoFHandler<dim,spacedim>::cell_iterator &cell,
+ FESubfaceValues<dim>::reinit (const typename dealii::DoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index,
- template <int dim, int spacedim>
+ template <int dim>
void
- FESubfaceValues<dim,spacedim>::reinit (const typename MGDoFHandler<dim,spacedim>::cell_iterator &cell,
+ FESubfaceValues<dim>::reinit (const typename MGDoFHandler<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index,
- template <int dim, int spacedim>
+ template <int dim>
void
- FESubfaceValues<dim,spacedim>::reinit (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
+ FESubfaceValues<dim>::reinit (const typename Triangulation<dim>::cell_iterator &cell,
const unsigned int face_no,
const unsigned int subface_no,
const unsigned int q_index,
{
template class FEValuesBase<deal_II_dimension,deal_II_dimension,
dealii::FEValues<deal_II_dimension,deal_II_dimension+1> >;
-#if deal_II_dimension == 2
- template class FEValuesBase<deal_II_dimension,deal_II_dimension-1,
- dealii::FEFaceValues<deal_II_dimension,deal_II_dimension+1> >;
- template class FEValuesBase<deal_II_dimension,deal_II_dimension-1,
- dealii::FESubfaceValues<deal_II_dimension,deal_II_dimension+1> >;
-#endif
+// not yet implemented:
+// #if deal_II_dimension == 2
+// template class FEValuesBase<deal_II_dimension,deal_II_dimension-1,
+// dealii::FEFaceValues<deal_II_dimension> >;
+// template class FEValuesBase<deal_II_dimension,deal_II_dimension-1,
+// dealii::FESubfaceValues<deal_II_dimension> >;
+// #endif
}
}
{
template class FEValues<deal_II_dimension, deal_II_dimension+1>;
-#if deal_II_dimension == 2
- template class FEFaceValues<deal_II_dimension, deal_II_dimension+1>;
- template class FESubfaceValues<deal_II_dimension, deal_II_dimension+1>;
-#endif
+// not yet implemented:
+//#if deal_II_dimension == 2
+// template class FEFaceValues<deal_II_dimension, deal_II_dimension+1>;
+// template class FESubfaceValues<deal_II_dimension, deal_II_dimension+1>;
+//#endif
}
#endif
ConstraintMatrix &,
const std::vector<bool> &);
-#if deal_II_dimension < 3
-template
-void VectorTools::interpolate_boundary_values (
- const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const unsigned char,
- const Function<deal_II_dimension+1> &,
- std::map<unsigned int,double> &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const hp::DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const unsigned char,
- const Function<deal_II_dimension+1> &,
- std::map<unsigned int,double> &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const MGDoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const unsigned char,
- const Function<deal_II_dimension+1> &,
- std::map<unsigned int,double> &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const unsigned char,
- const Function<deal_II_dimension+1> &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const hp::DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const unsigned char,
- const Function<deal_II_dimension+1> &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const MGDoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const unsigned char,
- const Function<deal_II_dimension+1> &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const Mapping<deal_II_dimension,deal_II_dimension+1> &,
- const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const FunctionMap<deal_II_dimension+1>::type &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const Mapping<deal_II_dimension,deal_II_dimension+1> &,
- const hp::DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const FunctionMap<deal_II_dimension+1>::type &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const Mapping<deal_II_dimension,deal_II_dimension+1> &,
- const MGDoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const FunctionMap<deal_II_dimension+1>::type &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const FunctionMap<deal_II_dimension+1>::type &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const hp::DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const FunctionMap<deal_II_dimension+1>::type &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values (
- const MGDoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const FunctionMap<deal_II_dimension+1>::type &,
- ConstraintMatrix &,
- const std::vector<bool> &);
-#endif
-
template
void VectorTools::project_boundary_values<deal_II_dimension>
(const Mapping<deal_II_dimension> &,
+// // Due to introducing the DoFHandler as a template parameter,
+// // the following instantiations are required in 1d
+// #if deal_II_dimension == 1
+// template
+// void VectorTools::interpolate_boundary_values<deal_II_dimension>
+// (const Mapping<1> &,
+// const DoFHandler<1> &,
+// const unsigned char,
+// const Function<1> &,
+// std::map<unsigned int,double> &,
+// const std::vector<bool> &);
+// #endif
+
+// the following two functions are not derived from a template in 1d
+// and thus need no explicit instantiation
+//#if deal_II_dimension > 1
template
void VectorTools::interpolate_boundary_values
(const Mapping<deal_II_dimension> &,
std::map<unsigned int,double> &,
const std::vector<bool> &);
-#if deal_II_dimension < 3
-template
-void VectorTools::interpolate_boundary_values
-(const Mapping<deal_II_dimension,deal_II_dimension+1> &,
- const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const FunctionMap<deal_II_dimension+1>::type &,
- std::map<unsigned int,double> &,
- const std::vector<bool> &);
-
-template
-void VectorTools::interpolate_boundary_values
-(const Mapping<deal_II_dimension,deal_II_dimension+1> &,
- const DoFHandler<deal_II_dimension,deal_II_dimension+1> &,
- const unsigned char,
- const Function<deal_II_dimension+1> &,
- std::map<unsigned int,double> &,
- const std::vector<bool> &);
-#endif
+//#endif
template