From 1be8a55ea1009a1aae2e3c6001ff4db53671b69e Mon Sep 17 00:00:00 2001 From: buerg Date: Wed, 3 Jul 2013 22:30:05 +0000 Subject: [PATCH] Face bug in Nedelec elements for faces with nonstandard orientation. git-svn-id: https://svn.dealii.org/trunk@29931 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/source/fe/fe_poly_tensor.cc | 31 +++-------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) 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; } } -- 2.39.5