From: Markus Buerg Date: Wed, 3 Jul 2013 22:30:05 +0000 (+0000) Subject: Face bug in Nedelec elements for faces with nonstandard orientation. X-Git-Tag: v8.0.0~188 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1674063a923110f8dc01864a714445e4e0b60a0c;p=dealii.git Face bug in Nedelec elements for faces with nonstandard orientation. git-svn-id: https://svn.dealii.org/trunk@29931 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/source/fe/fe_poly_tensor.cc b/deal.II/source/fe/fe_poly_tensor.cc index 7f29e909db..dfb340f672 100644 --- a/deal.II/source/fe/fe_poly_tensor.cc +++ b/deal.II/source/fe/fe_poly_tensor.cc @@ -119,35 +119,10 @@ namespace { const unsigned int dim = 3; std::fill (face_sign.begin (), face_sign.end (), 1.0); - - for (unsigned int f = 0; f < GeometryInfo::faces_per_cell; ++f) - { - if (!(cell->face (f)->at_boundary ())) - { - const bool face_orientation = cell->face_orientation (f); - const bool face_flip = cell->face_flip (f); - const bool face_rotation = cell->face_rotation (f); //TODO: This is probably only going to work for those elements for which all dofs are face dofs - if (face_flip) - { - face_sign[GeometryInfo::face_to_cell_lines (f, 2, face_orientation, face_flip, face_rotation)] = -1.0; - face_sign[GeometryInfo::face_to_cell_lines (f, 3, face_orientation, face_flip, face_rotation)] = -1.0; - - if (!face_rotation) - { - face_sign[GeometryInfo::face_to_cell_lines (f, 0, face_orientation, face_flip, face_rotation)] = -1.0; - face_sign[GeometryInfo::face_to_cell_lines (f, 1, face_orientation, face_flip, face_rotation)] = -1.0; - } - } - - else - if (face_rotation) - { - face_sign[GeometryInfo::face_to_cell_lines (f, 0, face_orientation, face_flip, face_rotation)] = -1.0; - face_sign[GeometryInfo::face_to_cell_lines (f, 1, face_orientation, face_flip, face_rotation)] = -1.0; - } - } - } + for (unsigned int l = 0; l < GeometryInfo::lines_per_cell; ++l) + if (!(cell->line_orientation (l))) + face_sign[l] = -1.0; } }