[skip ci] fixed confusion about n in Li tangent: prm%n was meant but forall index n was used!

This commit is contained in:
Philip Eisenlohr 2019-09-20 08:04:56 -04:00
parent 6fdab024b6
commit 31f39fac82
1 changed files with 5 additions and 5 deletions

View File

@ -289,7 +289,7 @@ subroutine plastic_isotropic_LiAndItsTangent(Li,dLi_dMi,Mi,instance,of)
real(pReal), dimension(3,3), intent(out) :: &
Li !< inleastic velocity gradient
real(pReal), dimension(3,3,3,3), intent(out) :: &
dLi_dMi !< derivative of Li with respect to the Mandel stress
dLi_dMi !< derivative of Li with respect to Mandel stress
real(pReal), dimension(3,3), intent(in) :: &
Mi !< Mandel stress
@ -298,16 +298,16 @@ subroutine plastic_isotropic_LiAndItsTangent(Li,dLi_dMi,Mi,instance,of)
of
real(pReal), dimension(3,3) :: &
Mi_sph !< spherical part of the Mandel stress
Mi_sph !< spherical part of Mandel stress
real(pReal) :: &
dot_gamma, & !< shear rate
tr !< pressure
tr !< trace of spherical part of Mandel stress (= 3 x pressure)
integer :: &
k, l, m, n
associate(prm => param(instance), stt => state(instance))
tr=math_trace33(math_spherical33(Mi))
tr = math_trace33(math_spherical33(Mi))
if (prm%dilatation .and. abs(tr) > 0.0_pReal) then ! no stress or J2 plasticity --> Li and its derivative are zero
Li = math_I3 &
@ -324,7 +324,7 @@ subroutine plastic_isotropic_LiAndItsTangent(Li,dLi_dMi,Mi,instance,of)
#endif
forall (k=1:3,l=1:3,m=1:3,n=1:3) &
dLi_dMi(k,l,m,n) = n / tr * Li(k,l) * math_I3(m,n)
dLi_dMi(k,l,m,n) = prm%n / tr * Li(k,l) * math_I3(m,n)
else
Li = 0.0_pReal