]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Face bug in Nedelec elements for faces with nonstandard orientation.
authorbuerg <buerg@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 3 Jul 2013 22:30:05 +0000 (22:30 +0000)
committerbuerg <buerg@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 3 Jul 2013 22:30:05 +0000 (22:30 +0000)
git-svn-id: https://svn.dealii.org/trunk@29931 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/source/fe/fe_poly_tensor.cc

index 7f29e909dbec616a5d672ff56271d9ea2e9bf0d0..dfb340f67299cf4506074911052068252aa8521b 100644 (file)
@@ -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<dim>::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<dim>::face_to_cell_lines (f, 2, face_orientation, face_flip, face_rotation)] = -1.0;
-          face_sign[GeometryInfo<dim>::face_to_cell_lines (f, 3, face_orientation, face_flip, face_rotation)] = -1.0;
-          
-          if (!face_rotation)
-          {
-            face_sign[GeometryInfo<dim>::face_to_cell_lines (f, 0, face_orientation, face_flip, face_rotation)] = -1.0;
-            face_sign[GeometryInfo<dim>::face_to_cell_lines (f, 1, face_orientation, face_flip, face_rotation)] = -1.0;
-          }
-        }
-        
-        else
-          if (face_rotation)
-          {
-            face_sign[GeometryInfo<dim>::face_to_cell_lines (f, 0, face_orientation, face_flip, face_rotation)] = -1.0;
-            face_sign[GeometryInfo<dim>::face_to_cell_lines (f, 1, face_orientation, face_flip, face_rotation)] = -1.0;
-          }
-      }
-    }
+    for (unsigned int l = 0; l < GeometryInfo<dim>::lines_per_cell; ++l)
+      if (!(cell->line_orientation (l)))
+        face_sign[l] = -1.0;
   }
 }
 

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.