From: Wolfgang Bangerth 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::value == true) for (unsigned int c=0; cface(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 &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 &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