LpandTangent assumed to be called with deviatoric stress input.

Now calculates deviator internally...
(Might have led to non volume preserving deformation.)
This commit is contained in:
Philip Eisenlohr 2013-02-05 13:47:00 +00:00
parent 79e7deca55
commit 865842b0ed
1 changed files with 8 additions and 7 deletions

View File

@ -398,7 +398,7 @@ end subroutine constitutive_j2_microstructure
!****************************************************************
!* calculates plastic velocity gradient and its tangent *
!****************************************************************
pure subroutine constitutive_j2_LpAndItsTangent(Lp, dLp_dTstar_99, Tstar_dev_v, Temperature, state, g, ip, el)
pure subroutine constitutive_j2_LpAndItsTangent(Lp, dLp_dTstar_99, Tstar_v, Temperature, state, g, ip, el)
!*** variables and functions from other modules ***!
use prec, only: p_vec
@ -413,7 +413,7 @@ pure subroutine constitutive_j2_LpAndItsTangent(Lp, dLp_dTstar_99, Tstar_dev_v,
implicit none
!*** input variables ***!
real(pReal), dimension(6), intent(in):: Tstar_dev_v ! deviatoric part of the 2nd Piola Kirchhoff stress tensor in Mandel notation
real(pReal), dimension(6), intent(in):: Tstar_v ! 2nd Piola Kirchhoff stress tensor in Mandel notation
real(pReal), intent(in):: Temperature
integer(pInt), intent(in):: g, & ! grain number
ip, & ! integration point number
@ -438,17 +438,18 @@ pure subroutine constitutive_j2_LpAndItsTangent(Lp, dLp_dTstar_99, Tstar_dev_v,
matID = phase_plasticityInstance(material_phase(g,ip,el))
! convert Tstar to matrix and calculate euclidean norm
Tstar_dev_33 = math_Mandel6to33(Tstar_dev_v)
squarenorm_Tstar_dev = math_mul6x6(Tstar_dev_v,Tstar_dev_v)
! deviatoric part of 2nd Piola-Kirchhoff stress
Tstar_dev_33 = math_deviatoric33(math_Mandel6to33(Tstar_v))
squarenorm_Tstar_dev = math_mul33x33(Tstar_dev_33,Tstar_dev_33)
norm_Tstar_dev = sqrt(squarenorm_Tstar_dev)
! Initialization of Lp and dLp_dTstar
Lp = 0.0_pReal
dLp_dTstar_99 = 0.0_pReal
! for Tstar==0 both Lp and dLp_dTstar are zero (if not n==1)
if (norm_Tstar_dev > 0_pInt) then
! Tstar == 0 --> both Lp and dLp_dTstar are zero
if (norm_Tstar_dev > 0.0_pReal) then
! Calculation of gamma_dot
gamma_dot = constitutive_j2_gdot0(matID) * ( sqrt(1.5_pReal) * norm_Tstar_dev &