Fixed wrong indices in tangents dT_dFe and dFe_dLp, which however luckily did not have any effect in the perturbed stiffness since they were transposed such that the double contraction of both remained unchanged.

In contrast, the analytical jacobian will probably be affected by this change!
@Pratheek: Can you check with me how this can be fixed?
This commit is contained in:
Christoph Kords 2014-01-22 08:38:13 +00:00
parent b1a4e62363
commit 3dfdbaff5b
2 changed files with 7 additions and 4 deletions

View File

@ -658,6 +658,7 @@ end subroutine constitutive_TandItsTangent
!--------------------------------------------------------------------------------------------------
pure subroutine constitutive_hooke_TandItsTangent(T, dT_dFe, Fe, ipc, ip, el)
use math, only : &
math_mul3x3, &
math_mul33x33, &
math_mul3333xx33, &
math_Mandel66to3333, &
@ -676,7 +677,7 @@ use math, only : &
real(pReal), intent(out), dimension(3,3,3,3) :: &
dT_dFe !< dT/dFe
integer(pInt) :: o, p
integer(pInt) :: i, j, k, l
real(pReal), dimension(3,3) :: FeT
real(pReal), dimension(3,3,3,3) :: C
@ -684,9 +685,11 @@ use math, only : &
C = math_Mandel66to3333(constitutive_homogenizedC(ipc,ip,el))
FeT = math_transpose33(Fe)
T = 0.5_pReal*math_mul3333xx33(C,math_mul33x33(FeT,Fe)-MATH_I3)
T = 0.5_pReal * math_mul3333xx33(C, math_mul33x33(FeT,Fe)-MATH_I3)
forall (o=1_pInt:3_pInt, p=1_pInt:3_pInt) dT_dFe(o,p,1:3,1:3) = math_mul33x33(C(o,p,1:3,1:3), FeT) ! dT*_ij/dFe_kl
dT_dFe = 0.0_pReal
forall (i=1_pInt:3_pInt, j=1_pInt:3_pInt, k=1_pInt:3_pInt, l=1_pInt:3_pInt) &
dT_dFe(i,j,k,l) = math_mul3x3(C(i,j,l,1:3),Fe(k,1:3)) ! dT*_ij/dFe_kl
end subroutine constitutive_hooke_TandItsTangent

View File

@ -3211,7 +3211,7 @@ logical function crystallite_integrateStress(&
if (mod(jacoCounter, iJacoLpresiduum) == 0_pInt) then
dFe_dLp3333 = 0.0_pReal
do o=1_pInt,3_pInt; do p=1_pInt,3_pInt
dFe_dLp3333(p,o,1:3,p) = A(o,1:3) ! dFe_dLp(i,j,k,l) = -dt * A(i,k) delta(l,j)
dFe_dLp3333(o,p,1:3,p) = A(o,1:3) ! dFe_dLp(i,j,k,l) = -dt * A(i,k) delta(l,j)
enddo; enddo
dFe_dLp3333 = -dt * dFe_dLp3333
dFe_dLp = math_Plain3333to99(dFe_dLp3333)