From 98288a8194334705d78c896668eca7659e74813d Mon Sep 17 00:00:00 2001
From: FLE_Knight <ujwalkishore.jinaga@uliege.be>
Date: Fri, 23 May 2025 13:47:53 +0200
Subject: [PATCH] [MINOR PATCH] Refix of rotation tangents in TMDMN

---
 dG3D/src/dG3DMaterialLaw.cpp | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/dG3D/src/dG3DMaterialLaw.cpp b/dG3D/src/dG3DMaterialLaw.cpp
index 277a12626..bca3df914 100644
--- a/dG3D/src/dG3DMaterialLaw.cpp
+++ b/dG3D/src/dG3DMaterialLaw.cpp
@@ -5753,7 +5753,8 @@ void StochTMDMNDG3DMaterialLaw::stress(IPVariable*ipv, const IPVariable*ipvprev,
 
     STensorOperation::multSTensor3InPlace2nd(R,U);
     STensorOperation::multSTensor3InPlace1st(U,RT);
-    F = U; // R_def in the rotated frame = I;
+    STensorOperation::multSTensor3(R_def,U,F);
+    // F = U; // R_def in the rotated frame = I;
     STensorOperation::multSTensor3SVector3InPlace2nd(R,H);
   }
 
@@ -6208,8 +6209,14 @@ void StochTMDMNDG3DMaterialLaw::stress(IPVariable*ipv, const IPVariable*ipvprev,
                       for(int s=0; s<3; s++)
                         dUrot_dF(m,n,k,l) += I4_symm(m,n,p,q)*dUrot_dU(p,q,r,s)*dUdF(r,s,k,l);
             }
-                        
-        dFrot_dF = dUrot_dF; // R_def_rot = I;
+        
+        for(int m=0; m<3; m++)
+          for(int n=0; n<3; n++)
+            for(int k=0; k<3; k++)
+              for(int l=0; l<3; l++)
+                for(int p=0; p<3; p++)
+                  dFrot_dF(m,n,k,l) += R_def(m,p)*dUrot_dF(p,n,k,l);
+        // dFrot_dF = dUrot_dF; // R_def_rot = I;
         
         for(int m=0; m<3; m++)
           for(int n=0; n<3; n++)
-- 
GitLab