From e3ef5f8669d4f44fe62d7d1398224c483dd4057e Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Sun, 23 Jan 2011 15:35:25 +0000 Subject: [PATCH] generalization: solve Dirichlet problems for all rods [[Imported from SVN: r6842]] --- .../rodcontinuumsteklovpoincarestep.hh | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh index abac9b7c..a3f8ce76 100644 --- a/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh +++ b/dune/gfe/coupling/rodcontinuumsteklovpoincarestep.hh @@ -703,16 +703,27 @@ template <class RodGridType, class ContinuumGridType> void RodContinuumSteklovPoincareStep<RodGridType,ContinuumGridType>:: iterate(std::map<std::pair<std::string,std::string>, RigidBodyMotion<3> >& lambda) { - // temporary - std::pair<std::string,std::string> interfaceName = std::make_pair("rod","continuum"); - /////////////////////////////////////////////////////////////////// - // Evaluate the Dirichlet-to-Neumann map for the rod + // Evaluate the Dirichlet-to-Neumann maps for the rods /////////////////////////////////////////////////////////////////// - std::map<std::pair<std::string,std::string>, RigidBodyMotion<3>::TangentVector> rodForceTorque - = rodDirichletToNeumannMap("rod", lambda); + std::map<std::pair<std::string,std::string>, RigidBodyMotion<3>::TangentVector> rodForceTorque; + + for (RodIterator it = rods_.begin(); it != rods_.end(); ++it) { + + const std::string& rodName = it->first; + + std::map<std::pair<std::string,std::string>, RigidBodyMotion<3>::TangentVector> forceTorque = rodDirichletToNeumannMap(rodName, lambda); + + int oldSize = rodForceTorque.size(); // for debugging + rodForceTorque.insert(forceTorque.begin(), forceTorque.end()); + assert(rodForceTorque.size() == oldSize + forceTorque.size()); + + } + // temporary + std::pair<std::string,std::string> interfaceName = std::make_pair("rod","continuum"); + std::cout << "resultant rod force and torque: " << rodForceTorque[interfaceName] << std::endl; /////////////////////////////////////////////////////////////////// -- GitLab