From: angela.klewinghaus Date: Mon, 25 Feb 2013 14:39:45 +0000 (+0000) Subject: adjusted fill_fe_face_values for continuous face elements X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=79d0a54a628d309dc6dc0e9af28f02f2db5ac998;p=dealii-svn.git adjusted fill_fe_face_values for continuous face elements git-svn-id: https://svn.dealii.org/branches/branch_face_elements@28550 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/include/deal.II/fe/fe_poly_face.templates.h b/deal.II/include/deal.II/fe/fe_poly_face.templates.h index 61c6bfdd2d..043ca943bd 100644 --- a/deal.II/include/deal.II/fe/fe_poly_face.templates.h +++ b/deal.II/include/deal.II/fe/fe_poly_face.templates.h @@ -211,14 +211,18 @@ FE_PolyFace::fill_fe_face_values ( for (unsigned int k=0; kdofs_per_cell; ++k) data.shape_values(k,i) = 0.; // Fill data for vertex shape functions - + if (this->n_dofs_per_vertex() != 0) + for (unsigned int lvertex=0; lvertex::vertices_per_face; ++lvertex) + data.shape_values(GeometryInfo::face_to_cell_vertices(face, lvertex),i) = fe_data.shape_values[lvertex][i]; + + // Fill data for line shape functions // in 3D, this should be a loop over all lines of the face, // and the multiplier should not be the face itself const unsigned int foffset = this->first_line_index + this->dofs_per_line * face; - for (unsigned int k=0; kdofs_per_line; ++k) data.shape_values(foffset+k,i) = fe_data.shape_values[k+this->first_face_line_index][i]; // Fill data for quad shape functions diff --git a/deal.II/source/fe/fe_tools.cc b/deal.II/source/fe/fe_tools.cc index dba1b97ff3..79fc4159aa 100644 --- a/deal.II/source/fe/fe_tools.cc +++ b/deal.II/source/fe/fe_tools.cc @@ -2789,7 +2789,7 @@ namespace FETools { Assert (h2l.size() == fe.dofs_per_cell, ExcDimensionMismatch (h2l.size(), fe.dofs_per_cell)); - hierarchic_to_lexicographic_numbering (h21, fe.dofs_per_line+1); + hierarchic_to_lexicographic_numbering (fe.dofs_per_line+1, h2l); } @@ -2800,7 +2800,7 @@ namespace FETools { Assert (fe.n_components() == 1, ExcInvalidFE()); std::vector h2l(fe.dofs_per_cell); - hierarchic_to_lexicographic_numbering (h2l, fe.dofs_per_line+1); + hierarchic_to_lexicographic_numbering (fe.dofs_per_line+1, h2l); return (h2l); }