diff --git a/src/rodassembler.cc b/src/rodassembler.cc index 114af253d082021056afdccf9edf24c2205360ce..f177ae4b4e992b04a129e8b12f1d4af769008c07 100644 --- a/src/rodassembler.cc +++ b/src/rodassembler.cc @@ -154,7 +154,8 @@ assembleGradient(const std::vector<RigidBodyMotion<3> >& sol, // Assemble local gradient array<FieldVector<double,blocksize>, nDofs> localGradient; - localStiffness.assembleGradient(*it, localSolution, localReferenceConfiguration, localGradient); + localStiffness.localReferenceConfiguration_ = localReferenceConfiguration; + localStiffness.assembleGradient(*it, localSolution, localGradient); // Add to global gradient for (int i=0; i<nDofs; i++) diff --git a/src/rodlocalstiffness.hh b/src/rodlocalstiffness.hh index 8bab6c948f0ffe19db9f77edcf8141dc32a620cb..f254cc0145c1b5cc39cb41a8461c461c2e202843 100644 --- a/src/rodlocalstiffness.hh +++ b/src/rodlocalstiffness.hh @@ -91,7 +91,6 @@ public: /** \brief Assemble the element gradient of the energy functional */ void assembleGradient(const Entity& element, const std::vector<RigidBodyMotion<3> >& solution, - const std::vector<RigidBodyMotion<3> >& referenceConfiguration, Dune::array<Dune::FieldVector<double,6>, 2>& gradient) const; template <class T> @@ -461,7 +460,6 @@ template <class GridType, class RT> void RodLocalStiffness<GridType, RT>:: assembleGradient(const Entity& element, const std::vector<RigidBodyMotion<3> >& solution, - const std::vector<RigidBodyMotion<3> >& referenceConfiguration, Dune::array<Dune::FieldVector<double,6>, 2>& gradient) const { using namespace Dune; @@ -527,7 +525,7 @@ assembleGradient(const Entity& element, FieldVector<double,blocksize> strain = getStrain(solution, element, quadPos); // The reference strain - FieldVector<double,blocksize> referenceStrain = getStrain(referenceConfiguration, element, quadPos); + FieldVector<double,blocksize> referenceStrain = getStrain(localReferenceConfiguration_, element, quadPos); // dd_dvij[m][i][j] = \parder {(d_k)_i} {q} @@ -603,7 +601,7 @@ assembleGradient(const Entity& element, FieldVector<double,blocksize> strain = getStrain(solution, element, quadPos); // The reference strain - FieldVector<double,blocksize> referenceStrain = getStrain(referenceConfiguration, element, quadPos); + FieldVector<double,blocksize> referenceStrain = getStrain(localReferenceConfiguration_, element, quadPos); // First derivatives of the position array<Quaternion<double>,6> dq_dwij;