]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Specify a few template arguments explicitly to help IBM's xlC.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 29 Oct 2008 00:00:24 +0000 (00:00 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 29 Oct 2008 00:00:24 +0000 (00:00 +0000)
git-svn-id: https://svn.dealii.org/trunk@17385 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/include/numerics/vectors.templates.h
deal.II/deal.II/source/fe/fe_raviart_thomas.cc
deal.II/deal.II/source/fe/fe_raviart_thomas_nodal.cc
deal.II/deal.II/source/fe/fe_tools.cc

index 90890d321291a0fa1a5d90c53ec18a46e8f0838f..f3d3193eca42785d44c07aa99a9ff9130d241e9c 100644 (file)
@@ -2536,7 +2536,15 @@ VectorTools::compute_no_normal_flux_constraints (const DH<dim>         &dof_hand
                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());
@@ -2587,8 +2595,8 @@ VectorTools::compute_no_normal_flux_constraints (const DH<dim>         &dof_hand
                                             // 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
index c8a90c80cec46030fafcbca61d8b73fce6ab2f03..6b0b24da4eecd3edc4e576adfb865235fd66a4a7 100644 (file)
@@ -82,7 +82,9 @@ FE_RaviartThomas<dim>::FE_RaviartThomas (const unsigned int deg)
   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;
index 7948173b862d69b7fb1b0314fb70b71b69dfd201..bf20b13275c6efe63e2c461ddfdb4a9b927835e9 100644 (file)
@@ -86,7 +86,7 @@ FE_RaviartThomasNodal<dim>::FE_RaviartThomasNodal (const unsigned int deg)
   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;
index 98152efbeabd8a35b5bd65e69f4030aaa9bf6011..a61bbd06777204112f6561d6d19bf49c60c62b41 100644 (file)
@@ -1924,7 +1924,7 @@ void FETools::compute_embedding_matrices<deal_II_dimension>
 (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);
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.