From ac87a7feb3388676027f065ca10e376a65802d60 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Thu, 15 Nov 2007 09:11:25 +0000
Subject: [PATCH] update method getResultingForce

[[Imported from SVN: r1769]]
---
 src/rodassembler.cc | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/rodassembler.cc b/src/rodassembler.cc
index a942e256..a409ccc0 100644
--- a/src/rodassembler.cc
+++ b/src/rodassembler.cc
@@ -1044,11 +1044,21 @@ getResultantForce(const BoundaryPatch<GridType>& boundary,
             //   Compute force across this boundary face
             // //////////////////////////////////////////////
 
+            //   Create local assembler
             
+            Dune::array<double,3> K = {K_[0], K_[1], K_[2]};
+            Dune::array<double,3> A = {A_[0], A_[1], A_[2]};
+            RodLocalStiffness<GridType,double> localStiffness(K, A);
+
             double pos = nIt.intersectionSelfLocal()[0];
 
-            FieldVector<double, blocksize> strain = getStrain(sol, eIt, pos);
-            FieldVector<double, blocksize> referenceStrain = getStrain(referenceConfiguration_, eIt, pos);
+            Dune::array<Configuration,2> localSolution = {sol[indexSet.template subIndex<1>(*eIt,0)],
+                                                          sol[indexSet.template subIndex<1>(*eIt,1)]};
+            Dune::array<Configuration,2> localRefConf  = {referenceConfiguration_[indexSet.template subIndex<1>(*eIt,0)],
+                                                          referenceConfiguration_[indexSet.template subIndex<1>(*eIt,1)]};
+
+            FieldVector<double, blocksize> strain          = localStiffness.getStrain(localSolution, *eIt, pos);
+            FieldVector<double, blocksize> referenceStrain = localStiffness.getStrain(localRefConf, *eIt, pos);
 
             FieldVector<double,3> localStress;
             for (int i=0; i<3; i++)
-- 
GitLab