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