]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Relax the conditions under which we don't return unit_face_support_points a bit.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Tue, 8 Mar 2011 04:16:25 +0000 (04:16 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Tue, 8 Mar 2011 04:16:25 +0000 (04:16 +0000)
git-svn-id: https://svn.dealii.org/trunk@23467 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/source/fe/fe_system.cc

index 42552af2e88957a8dcae1914052b9db8c90dffdd..ba1006be8de1e58b1a00379660c59ce51645bd63 100644 (file)
@@ -1962,21 +1962,30 @@ initialize_unit_face_support_points ()
   if (dim == 1)
     return;
 
-                                  // if one of the base elements has
-                                  // no support points, then it makes
-                                  // no sense to define support
-                                  // points for the composed element,
-                                  // so return an empty array to
-                                  // demonstrate that fact (note that
-                                  // we ask whether the base element
-                                  // has no support points at all,
+                                  // if one of the base elements has no
+                                  // support points, then it makes no sense
+                                  // to define support points for the
+                                  // composed element. In that case, return
+                                  // an empty array to demonstrate that fact
+                                  // (note that we ask whether the base
+                                  // element has no support points at all,
                                   // not only none on the face!)
+                                  //
+                                  // on the other hand, if there is an
+                                  // element that simply has no degrees of
+                                  // freedom on the face at all, then we
+                                  // don't care whether it has support points
+                                  // or not. this is, for example, the case
+                                  // for the stable Stokes element Q(p)^dim
+                                  // \times DGP(p-1).
   for (unsigned int base_el=0; base_el<n_base_elements(); ++base_el)
-    if (!base_element(base_el).has_support_points())
+    if (!base_element(base_el).has_support_points()
+       &&
+       (base_element(base_el).dofs_per_face > 0))
       {
        this->unit_face_support_points.resize(0);
        return;
-      };
+      }
 
 
                                   // generate unit face support points
@@ -1994,7 +2003,7 @@ initialize_unit_face_support_points ()
 
       this->unit_face_support_points[i]
        = base_element(base_i).unit_face_support_points[index_in_base];
-    };
+    }
 }
 
 

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.