fill_fe_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
- FEValuesData<dim,spacedim> &data) const = 0;
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const = 0;
/**
* Fill the fields of
fill_fe_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
- FEValuesData<dim,spacedim>& data) const;
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const;
/**
* Implementation of the same
fill_fe_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
- FEValuesData<dim,spacedim>& data) const;
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const;
/**
* Implementation of the same
fill_fe_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
- FEValuesData<dim,spacedim>& data) const;
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const;
virtual void
fill_fe_face_values (const Mapping<dim,spacedim> &mapping,
inline
void
FE_Poly<TensorProductPolynomials<1>,1,2>::fill_fe_values
- (const Mapping<1,2> &mapping,
+ (const Mapping<1,2> &mapping,
const Triangulation<1,2>::cell_iterator &/*cell*/,
const Quadrature<1> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
Mapping<1,2>::InternalDataBase &mapping_data,
Mapping<1,2>::InternalDataBase &fedata,
- FEValuesData<1,2> &data) const
+ FEValuesData<1,2> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
inline
void
FE_Poly<TensorProductPolynomials<2>,2,3>::fill_fe_values
- (const Mapping<2,3> &mapping,
+ (const Mapping<2,3> &mapping,
const Triangulation<2,3>::cell_iterator &/* cell */,
- const Quadrature<2> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
- Mapping<2,3>::InternalDataBase & mapping_data,
- Mapping<2,3>::InternalDataBase &fedata,
- FEValuesData<2,3> &data) const
+ const Quadrature<2> &quadrature,
+ Mapping<2,3>::InternalDataBase &mapping_data,
+ Mapping<2,3>::InternalDataBase &fedata,
+ FEValuesData<2,3> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// assert that the following dynamics
inline
void
FE_Poly<PolynomialSpace<1>,1,2>::fill_fe_values (
- const Mapping<1,2>& mapping,
- const Triangulation<1,2>::cell_iterator& /*cell*/,
- const Quadrature<1>& quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
- Mapping<1,2>::InternalDataBase& mapping_data,
- Mapping<1,2>::InternalDataBase& fedata,
- FEValuesData<1,2>& data) const
+ const Mapping<1,2> &mapping,
+ const Triangulation<1,2>::cell_iterator & /*cell*/,
+ const Quadrature<1> &quadrature,
+ Mapping<1,2>::InternalDataBase &mapping_data,
+ Mapping<1,2>::InternalDataBase &fedata,
+ FEValuesData<1,2> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
inline
void
FE_Poly<PolynomialSpace<2>,2,3>::fill_fe_values
- (const Mapping<2,3>& mapping,
+ (const Mapping<2,3> &mapping,
const Triangulation<2,3>::cell_iterator &/* cell */,
- const Quadrature<2>& quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
- Mapping<2,3>::InternalDataBase& mapping_data,
- Mapping<2,3>::InternalDataBase &fedata,
- FEValuesData<2,3> &data) const
+ const Quadrature<2> &quadrature,
+ Mapping<2,3>::InternalDataBase &mapping_data,
+ Mapping<2,3>::InternalDataBase &fedata,
+ FEValuesData<2,3> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
Assert (dynamic_cast<InternalData *> (&fedata) != 0, ExcInternalError());
InternalData &fe_data = static_cast<InternalData &> (fedata);
(const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename Mapping<dim,spacedim>::InternalDataBase &fedata,
- FEValuesData<dim,spacedim> &data) const
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
const Quadrature<dim>& quadrature) const ;
virtual void
- fill_fe_values (const Mapping<dim,spacedim> &mapping,
+ fill_fe_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
- const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
- typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
- typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
- FEValuesData<dim,spacedim>& data) const;
+ const Quadrature<dim> &quadrature,
+ typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
+ typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const;
virtual void
fill_fe_face_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
- const unsigned int face_no,
- const Quadrature<dim-1> &quadrature,
- typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
- typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
+ const unsigned int face_no,
+ const Quadrature<dim-1> &quadrature,
+ typename Mapping<dim,spacedim>::InternalDataBase &mapping_internal,
+ typename Mapping<dim,spacedim>::InternalDataBase &fe_internal,
FEValuesData<dim,spacedim>& data) const ;
virtual void
fill_fe_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
- FEValuesData<dim,spacedim> &data) const;
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const;
/**
* Implementation of the same
const unsigned int face_no,
const unsigned int sub_no,
const Quadrature<dim_1> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
+ enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
FEValuesData<dim,spacedim> &data) const ;
virtual void
fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- enum CellSimilarity::Similarity &cell_similarity,
InternalDataBase &internal,
std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity
) const=0;
virtual void
fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim, spacedim>::InternalDataBase &mapping_data,
std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &) const ;
+ std::vector<Point<spacedim> > &,
+ enum CellSimilarity::Similarity &cell_similarity) const ;
virtual void
virtual void
fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const ;
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const ;
/**
* Implementation of the interface in
virtual void
fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const;
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const;
/**
* Implementation of the interface in
virtual void
fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const;
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const;
/**
* Reference to the vector of
virtual void
fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const;
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const;
/**
* Reference to the vector of
const Mapping<dim,spacedim>&,
const typename Triangulation<dim,spacedim>::cell_iterator&,
const Quadrature<dim>&,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase&,
typename Mapping<dim,spacedim>::InternalDataBase& fedata,
- FEValuesData<dim,spacedim>& data) const
+ FEValuesData<dim,spacedim>&data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
(const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename Mapping<dim,spacedim>::InternalDataBase &fedata,
- FEValuesData<dim,spacedim> &data) const
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename Mapping<dim,spacedim>::InternalDataBase &fedata,
- FEValuesData<dim,spacedim> &data) const
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
// between two faces.
std::vector<double> sign_change (this->dofs_per_cell, 1.0);
get_face_sign_change (cell, this->dofs_per_face, sign_change);
+
+ // for Piola mapping, the similarity
+ // concept cannot be used because of
+ // possible sign changes from one cell to
+ // the next.
+ if (mapping_type == mapping_piola)
+ if (cell_similarity == CellSimilarity::translation)
+ cell_similarity = CellSimilarity::none;
for (unsigned int i=0; i<this->dofs_per_cell; ++i)
{
const unsigned int first = data.shape_function_to_row_table[i];
- if (flags & update_values)
+ if (flags & update_values && cell_similarity != CellSimilarity::translation)
{
+ if (cell_similarity == 1)
+ std::cout << "hier";
switch (mapping_type)
{
case mapping_none:
}
}
- if (flags & update_gradients)
+ if (flags & update_gradients && cell_similarity != CellSimilarity::translation)
{
std::vector<Tensor<2,dim> > shape_grads1 (n_q_points);
std::vector<Tensor<2,dim> > shape_grads2 (n_q_points);
}
}
- if (flags & update_hessians)
+ if (flags & update_hessians && cell_similarity != CellSimilarity::translation)
this->compute_2nd (mapping, cell,
typename QProjector<dim>::DataSetDescriptor().cell(),
mapping_data, fe_data, data);
fill_fe_values (const Mapping<dim,spacedim> &mapping,
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename Mapping<dim,spacedim>::InternalDataBase &fe_data,
- FEValuesData<dim,spacedim> &data) const
+ FEValuesData<dim,spacedim> &data,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
compute_fill(mapping, cell, invalid_face_number, invalid_face_number,
quadrature, cell_similarity, mapping_data, fe_data, data);
const unsigned int face_no,
const unsigned int sub_no,
const Quadrature<dim_1> &quadrature,
- const enum CellSimilarity::Similarity cell_similarity,
+ enum CellSimilarity::Similarity cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
typename Mapping<dim,spacedim>::InternalDataBase &fedata,
FEValuesData<dim,spacedim> &data) const
// to correctly map the RT space from
// the reference element to the global
// coordinate system.
- base_data.JxW_values = data.JxW_values;
+ if (cell_similarity != CellSimilarity::translation)
+ base_data.JxW_values = data.JxW_values;
// Make sure that in the
// therefore use
// base_fe_data.update_flags.
if (face_no==invalid_face_number)
- base_fe.fill_fe_values(mapping, cell, *cell_quadrature, cell_similarity,
- mapping_data, base_fe_data, base_data);
+ base_fe.fill_fe_values(mapping, cell, *cell_quadrature, mapping_data,
+ base_fe_data, base_data, cell_similarity);
else if (sub_no==invalid_face_number)
base_fe.fill_fe_face_values(mapping, cell, face_no,
*face_quadrature, mapping_data, base_fe_data, base_data);
const typename Triangulation<dim,spacedim>::cell_iterator & present_cell =
*this->present_cell;
-
+
// test for translation
{
// otherwise, go through the vertices and
// others have the same.
bool is_translation = true;
const Point<spacedim> dist = cell->vertex(0) - present_cell->vertex(0);
+ const double tolerance = 1e-30 * dist.norm_square();
for (unsigned int i=1; i<GeometryInfo<dim>::vertices_per_cell; ++i)
{
Point<spacedim> dist_new = cell->vertex(i) - present_cell->vertex(i) - dist;
- if (dist_new.norm_square() > 1e-30)
+ if (dist_new.norm_square() > tolerance)
{
is_translation = false;
break;
{
this->get_mapping().fill_fe_values(*this->present_cell,
quadrature,
- this->cell_similarity,
*this->mapping_data,
this->quadrature_points,
this->JxW_values,
this->jacobians,
this->jacobian_grads,
this->inverse_jacobians,
- this->cell_normal_vectors);
-
+ this->cell_normal_vectors,
+ this->cell_similarity);
+
this->get_fe().fill_fe_values(this->get_mapping(),
*this->present_cell,
quadrature,
- this->cell_similarity,
*this->mapping_data,
*this->fe_data,
- *this);
+ *this,
+ this->cell_similarity);
this->fe_data->clear_first_cell ();
this->mapping_data->clear_first_cell ();
this->JxW_values,
this->boundary_forms,
this->normal_vectors);
-
+
this->get_fe().fill_fe_face_values(this->get_mapping(),
*this->present_cell, face_no,
this->quadrature,
MappingCartesian<dim, spacedim>::
fill_fe_values (const typename Triangulation<dim,spacedim>::cell_iterator& cell,
const Quadrature<dim>& q,
- enum CellSimilarity::Similarity& cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase& mapping_data,
std::vector<Point<spacedim> >& quadrature_points,
std::vector<double>& JxW_values,
std::vector<Tensor<2,spacedim> >& jacobians,
std::vector<Tensor<3,spacedim> >& jacobian_grads,
std::vector<Tensor<2,spacedim> >& inverse_jacobians,
- std::vector<Point<spacedim> > &) const
+ std::vector<Point<spacedim> > &,
+ enum CellSimilarity::Similarity& cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
MappingQ<dim,spacedim>::fill_fe_values (
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &q,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// convert data object to internal
// data for this class. fails with
cell_similarity = CellSimilarity::invalid_next_cell;
}
- MappingQ1<dim,spacedim>::fill_fe_values(cell, q, cell_similarity, *p_data,
+ MappingQ1<dim,spacedim>::fill_fe_values(cell, q, *p_data,
quadrature_points, JxW_values,
jacobians, jacobian_grads, inverse_jacobians,
- cell_normal_vectors);
+ cell_normal_vectors, cell_similarity);
}
MappingQ1<dim,spacedim>::fill_fe_values (
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &q,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// ensure that the following cast is really correct:
Assert (dynamic_cast<InternalData *>(&mapping_data) != 0,
point_quadrature)));
MappingQ1<dim,spacedim>::compute_mapping_support_points (cell,
- mdata->mapping_support_points);
+ mdata->mapping_support_points);
Assert(mdata->mapping_support_points.size() ==
GeometryInfo<dim>::vertices_per_cell,
ExcInternalError());
MappingQ1Eulerian<dim,EulerVectorType,spacedim>::fill_fe_values (
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &q,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// disable any previously detected
- // similarity and hand on to the
+ // similarity and then enter the
// respective function of the base class.
cell_similarity = CellSimilarity::invalid_next_cell;
- MappingQ1<dim,spacedim>::fill_fe_values (cell, q, cell_similarity, mapping_data,
+ MappingQ1<dim,spacedim>::fill_fe_values (cell, q, mapping_data,
quadrature_points, JxW_values, jacobians,
jacobian_grads, inverse_jacobians,
- cell_normal_vectors);
+ cell_normal_vectors, cell_similarity);
}
MappingQEulerian<dim,EulerVectorType,spacedim>::fill_fe_values (
const typename Triangulation<dim,spacedim>::cell_iterator &cell,
const Quadrature<dim> &q,
- enum CellSimilarity::Similarity &cell_similarity,
typename Mapping<dim,spacedim>::InternalDataBase &mapping_data,
std::vector<Point<spacedim> > &quadrature_points,
std::vector<double> &JxW_values,
std::vector<Tensor<2,spacedim> > &jacobians,
std::vector<Tensor<3,spacedim> > &jacobian_grads,
std::vector<Tensor<2,spacedim> > &inverse_jacobians,
- std::vector<Point<spacedim> > &cell_normal_vectors) const
+ std::vector<Point<spacedim> > &cell_normal_vectors,
+ enum CellSimilarity::Similarity &cell_similarity) const
{
// disable any previously detected
// similarity and hand on to the respective
// function of the base class.
cell_similarity = CellSimilarity::invalid_next_cell;
- MappingQ<dim,spacedim>::fill_fe_values (cell, q, cell_similarity, mapping_data,
+ MappingQ<dim,spacedim>::fill_fe_values (cell, q, mapping_data,
quadrature_points, JxW_values, jacobians,
jacobian_grads, inverse_jacobians,
- cell_normal_vectors);
+ cell_normal_vectors, cell_similarity);
}