From: Wolfgang Bangerth <bangerth@math.tamu.edu>
Date: Wed, 23 Feb 2011 16:44:04 +0000 (+0000)
Subject: Resolve a couple issues with the new no_requirements flag.
X-Git-Tag: v8.0.0~4266
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f2cda098b404309afe8824b994ee732b6b852a69;p=dealii.git

Resolve a couple issues with the new no_requirements flag.

git-svn-id: https://svn.dealii.org/trunk@23436 0785d39b-7218-0410-832d-ea1e28bc413d
---

diff --git a/deal.II/include/deal.II/fe/fe_base.h b/deal.II/include/deal.II/fe/fe_base.h
index 6a4f611fe8..ec46db31f7 100644
--- a/deal.II/include/deal.II/fe/fe_base.h
+++ b/deal.II/include/deal.II/fe/fe_base.h
@@ -698,6 +698,11 @@ namespace FiniteElementDomination
 	      return neither_element_dominates;
 
 	case either_element_can_dominate:
+	      if (d2 == no_requirements)
+		return either_element_can_dominate;
+	      else
+		return d2;
+
         case no_requirements:
 	      return d2;
 
diff --git a/deal.II/source/dofs/dof_tools.cc b/deal.II/source/dofs/dof_tools.cc
index 9a96aba01c..7d12eb0629 100644
--- a/deal.II/source/dofs/dof_tools.cc
+++ b/deal.II/source/dofs/dof_tools.cc
@@ -2340,7 +2340,7 @@ namespace internal
 						 // interfaces with
 						 // artificial cells
 		FiniteElementDomination::Domination
-		  mother_face_dominates = FiniteElementDomination::either_element_can_dominate;
+		  mother_face_dominates = FiniteElementDomination::no_requirements;
 
 		if (DoFHandlerSupportsDifferentFEs<DH>::value == true)
 		  for (unsigned int c=0; c<cell->face(face)->number_of_children(); ++c)
@@ -2964,6 +2964,18 @@ namespace internal
 			  break;
 			}
 
+			case FiniteElementDomination::no_requirements:
+							       // there
+							       // are no
+							       // continuity
+							       // requirements
+							       // between
+							       // the two
+							       // elements. record
+							       // no
+							       // constraints
+			      break;
+
 			default:
 							       // we shouldn't get
 							       // here
diff --git a/deal.II/source/fe/fe_system.cc b/deal.II/source/fe/fe_system.cc
index 61a0a48992..42552af2e8 100644
--- a/deal.II/source/fe/fe_system.cc
+++ b/deal.II/source/fe/fe_system.cc
@@ -2499,7 +2499,7 @@ compare_for_face_domination (const FiniteElement<dim,spacedim> &fe_other) const
 	      ExcNotImplemented());
 
       FiniteElementDomination::Domination
-	domination = FiniteElementDomination::either_element_can_dominate;
+	domination = FiniteElementDomination::no_requirements;
 
 				       // loop over all base elements and do
 				       // some sanity checks
@@ -2515,8 +2515,10 @@ compare_for_face_domination (const FiniteElement<dim,spacedim> &fe_other) const
 					   // for this pair of base elements,
 					   // check who dominates and combine
 					   // with previous result
-	  domination = domination & (this->base_element(b)
-				     .compare_for_face_domination (fe_sys_other->base_element(b)));
+	  const FiniteElementDomination::Domination
+	    base_domination = (this->base_element(b)
+			       .compare_for_face_domination (fe_sys_other->base_element(b)));
+	  domination = domination & base_domination;
 	}
 
 				       // if we've gotten here, then we've