From dcf081f463e4c5c69d7245766d326b213f381a11 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Thu, 9 Feb 2012 10:34:02 +0000
Subject: [PATCH] some bugfixes.  Curvature energy gradient still not correct,
 though

[[Imported from SVN: r8409]]
---
 dune/gfe/cosseratenergystiffness.hh | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/dune/gfe/cosseratenergystiffness.hh b/dune/gfe/cosseratenergystiffness.hh
index 466fcb08..3ea521fc 100644
--- a/dune/gfe/cosseratenergystiffness.hh
+++ b/dune/gfe/cosseratenergystiffness.hh
@@ -169,14 +169,15 @@ public:  // for testing
                 for (int k=0; k<gridDim; k++)
                     for (int v_i=0; v_i<4; v_i++)
                         for (int l=0; l<4; l++)
-                            dDR_dv[i][j][k][v_i] += dd_dq_dq[j][i][l][k] * derOfValueWRTCoefficient[l+3][v_i] * derOfValueWRTx[l+3][k];
+                            for (int m=0; m<4; m++)
+                                dDR_dv[i][j][k][v_i] += dd_dq_dq[j][i][l][m]  * derOfValueWRTx[l+3][k] * derOfValueWRTCoefficient[m+3][v_i+3];
 
         for (int i=0; i<3; i++)
             for (int j=0; j<3; j++)
                 for (int k=0; k<gridDim; k++)
                     for (int v_i=0; v_i<4; v_i++)
                         for (int l=0; l<4; l++)
-                            dDR_dv[i][j][k][v_i] += dd_dq[j][i][l] * derOfGradientWRTCoefficient[l+3][v_i][k];
+                            dDR_dv[i][j][k][v_i] += dd_dq[j][i][l] * derOfGradientWRTCoefficient[l+3][v_i+3][k];
 
     }
 
@@ -599,6 +600,7 @@ curvatureEnergyGradient(typename TargetSpace::EmbeddedTangentVector& embeddedLoc
         
     }
 
+    // multiply with constant pre-factor
     embeddedLocalGradient *= mu_ * q_ * std::pow(L_c_, q_) * std::pow(DR.frobenius_norm(), q_ - 2);
 }
 
-- 
GitLab