From b2990574827c208c76dd80de454b75ab5e316ba4 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Wed, 26 Jan 2011 09:44:50 +0000 Subject: [PATCH] bugfix: do not mix boundary patches for different grids [[Imported from SVN: r6879]] --- dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh index ebe97e58..ee77cbec 100644 --- a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh +++ b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh @@ -433,6 +433,9 @@ rodDirichletToNeumannMap(const std::string& rodName, for (; it!=lambda.end(); ++it) { const std::pair<std::string,std::string>& couplingName = it->first; + + if (couplingName.first != rodName) + continue; // Use \lambda as a Dirichlet value for the rod const LeafBoundaryPatch<RodGridType>& interfaceBoundary = complex_.coupling(couplingName).rodInterfaceBoundary_; @@ -470,6 +473,9 @@ rodDirichletToNeumannMap(const std::string& rodName, const std::pair<std::string,std::string>& couplingName = it->first; + if (couplingName.first != rodName) + continue; + const LeafBoundaryPatch<RodGridType>& couplingBoundary = complex_.coupling(couplingName).rodInterfaceBoundary_; result[couplingName] = rod(rodName).assembler_->getResultantForce(couplingBoundary, rodX); @@ -501,6 +507,9 @@ continuumDirichletToNeumannMap(const std::string& continuumName, for (; it!=lambda.end(); ++it) { const std::pair<std::string,std::string>& couplingName = it->first; + + if (couplingName.second != continuumName) + continue; // Turn \lambda \in TSE(3) into a Dirichlet value for the continuum const LeafBoundaryPatch<ContinuumGridType>& interfaceBoundary = complex_.coupling(couplingName).continuumInterfaceBoundary_; @@ -546,6 +555,9 @@ continuumDirichletToNeumannMap(const std::string& continuumName, const std::pair<std::string,std::string>& couplingName = it->first; + if (couplingName.second != continuumName) + continue; + /** \todo Is referenceInterface.r the correct center of rotation? */ const RigidBodyMotion<dim>& referenceInterface = complex_.coupling(couplingName).referenceInterface_; -- GitLab