switch (dim)
{
case 3:
- cross_product (tangent, normals[0], normals[1]);
+ // take cross product between normals[0] and
+ // normals[1]. write it in the current form to
+ // make sure that compilers don't warn about
+ // out-of-bounds accesses -- the warnings are
+ // bogus since we get here only for dim==3, but
+ // at least one isn't quite smart enough to
+ // notice this and warns when compiling the
+ // function in 2d
+ cross_product (tangent, normals[0], normals[dim-2]);
break;
default:
Assert (false, ExcNotImplemented());
// is to be constrained
Tensor<1,dim> constraining_normals[dim-1];
internal::VectorTools::
- compute_orthonormal_vectors (average_tangent,
- constraining_normals);
+ compute_orthonormal_vectors<dim> (average_tangent,
+ constraining_normals);
// now all that is left
// is that we add the
FullMatrix<double> face_embeddings[GeometryInfo<dim>::max_children_per_face];
for (unsigned int i=0; i<GeometryInfo<dim>::max_children_per_face; ++i)
face_embeddings[i].reinit (this->dofs_per_face, this->dofs_per_face);
- FETools::compute_face_embedding_matrices(*this, face_embeddings, 0, 0);
+ FETools::compute_face_embedding_matrices<dim,double>(*this,
+ face_embeddings,
+ 0, 0);
this->interface_constraints.reinit((1<<(dim-1)) * this->dofs_per_face,
this->dofs_per_face);
unsigned int target_row=0;
FullMatrix<double> face_embeddings[GeometryInfo<dim>::max_children_per_face];
for (unsigned int i=0; i<GeometryInfo<dim>::max_children_per_face; ++i)
face_embeddings[i].reinit (this->dofs_per_face, this->dofs_per_face);
- FETools::compute_face_embedding_matrices(*this, face_embeddings, 0, 0);
+ FETools::compute_face_embedding_matrices<dim,double>(*this, face_embeddings, 0, 0);
this->interface_constraints.reinit((1<<(dim-1)) * this->dofs_per_face,
this->dofs_per_face);
unsigned int target_row=0;
(const FiniteElement<deal_II_dimension> &, std::vector<std::vector<FullMatrix<double> > >&);
template
-void FETools::compute_face_embedding_matrices<deal_II_dimension>
+void FETools::compute_face_embedding_matrices<deal_II_dimension,double>
(const FiniteElement<deal_II_dimension> &, FullMatrix<double> (&matrices)[GeometryInfo<deal_II_dimension>::max_children_per_face],
unsigned int, unsigned int);