From f2cda098b404309afe8824b994ee732b6b852a69 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Wed, 23 Feb 2011 16:44:04 +0000 Subject: [PATCH] Resolve a couple issues with the new no_requirements flag. git-svn-id: https://svn.dealii.org/trunk@23436 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/include/deal.II/fe/fe_base.h | 5 +++++ deal.II/source/dofs/dof_tools.cc | 14 +++++++++++++- deal.II/source/fe/fe_system.cc | 8 +++++--- 3 files changed, 23 insertions(+), 4 deletions(-) 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 -- 2.39.5