shifted location of elasticity part closer to plasticity... (constitutive has been shaken back and forth quite a bit today ;-] )
This commit is contained in:
parent
ea634d978a
commit
d4463fe56a
|
@ -66,11 +66,11 @@ contains
|
||||||
!* - constitutive_averageBurgers
|
!* - constitutive_averageBurgers
|
||||||
!* - constitutive_microstructure
|
!* - constitutive_microstructure
|
||||||
!* - constitutive_LpAndItsTangent
|
!* - constitutive_LpAndItsTangent
|
||||||
|
!* - constitutive_TandItsTangent
|
||||||
|
!* - constitutive_hooke_TandItsTangent
|
||||||
!* - constitutive_collectDotState
|
!* - constitutive_collectDotState
|
||||||
!* - constitutive_collectDotTemperature
|
!* - constitutive_collectDotTemperature
|
||||||
!* - constitutive_postResults
|
!* - constitutive_postResults
|
||||||
!* - constitutive_TandItsTangent
|
|
||||||
!* - constitutive_hooke_TandItsTangent
|
|
||||||
!****************************************
|
!****************************************
|
||||||
|
|
||||||
|
|
||||||
|
@ -588,6 +588,81 @@ endsubroutine
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
!************************************************************************
|
||||||
|
!* This subroutine returns the 2nd Piola-Kirchhoff stress tensor and *
|
||||||
|
!* its tangent with respect to the elastic deformation gradient *
|
||||||
|
!* OUTPUT: *
|
||||||
|
!* - T : 2nd Piola-Kirchhoff stress tensor *
|
||||||
|
!* - dT_dFe : derivative of 2nd Piola-Kirchhoff stress tensor *
|
||||||
|
!* with respect to the elastic deformation gradient *
|
||||||
|
!* INPUT: *
|
||||||
|
!* - Fe : elastic deformation gradient *
|
||||||
|
!* - ipc : component-ID of current integration point *
|
||||||
|
!* - ip : current integration point *
|
||||||
|
!* - el : current element *
|
||||||
|
!************************************************************************
|
||||||
|
subroutine constitutive_TandItsTangent(T, dT_dFe, Fe, ipc, ip, el)
|
||||||
|
|
||||||
|
use prec, only: pReal
|
||||||
|
use material, only: phase_elasticity,material_phase
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
integer(pInt) :: ipc,ip,el
|
||||||
|
real(pReal), dimension(3,3) :: T, Fe
|
||||||
|
real(pReal), dimension(3,3,3,3) :: dT_dFe
|
||||||
|
|
||||||
|
select case (phase_elasticity(material_phase(ipc,ip,el)))
|
||||||
|
|
||||||
|
case (constitutive_hooke_label)
|
||||||
|
call constitutive_hooke_TAndItsTangent(T, dT_dFe, Fe, ipc, ip, el)
|
||||||
|
|
||||||
|
end select
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
endsubroutine constitutive_TandItsTangent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
!************************************************************************
|
||||||
|
!* This subroutine returns the 2nd Piola-Kirchhoff stress tensor and *
|
||||||
|
!* its tangent with respect to the elastic deformation gradient *
|
||||||
|
!* OUTPUT: *
|
||||||
|
!* - T : 2nd Piola-Kirchhoff stress tensor *
|
||||||
|
!* - dT_dFe : derivative of 2nd Piola-Kirchhoff stress tensor *
|
||||||
|
!* with respect to the elastic deformation gradient *
|
||||||
|
!* INPUT: *
|
||||||
|
!* - Fe : elastic deformation gradient *
|
||||||
|
!* - ipc : component-ID of current integration point *
|
||||||
|
!* - ip : current integration point *
|
||||||
|
!* - el : current element *
|
||||||
|
!************************************************************************
|
||||||
|
subroutine constitutive_hooke_TandItsTangent(T, dT_dFe, Fe, g, i, e)
|
||||||
|
|
||||||
|
use prec, only: p_vec
|
||||||
|
use math
|
||||||
|
|
||||||
|
implicit none
|
||||||
|
!* Definition of variables
|
||||||
|
integer(pInt) g, i, e, p, o
|
||||||
|
real(pReal), dimension(3,3) :: T, Fe
|
||||||
|
real(pReal), dimension(6,6) :: C_66
|
||||||
|
real(pReal), dimension(3,3,3,3) :: dT_dFe, C
|
||||||
|
|
||||||
|
!* get elasticity tensor
|
||||||
|
|
||||||
|
C_66 = constitutive_homogenizedC(g,i,e)
|
||||||
|
C = math_Mandel66to3333(C_66)
|
||||||
|
|
||||||
|
T = 0.5_pReal*math_mul3333xx33(C,math_mul33x33(math_transpose33(Fe),Fe)-math_I3)
|
||||||
|
|
||||||
|
do p=1_pInt,3_pInt; do o=1_pInt,3_pInt
|
||||||
|
dT_dFe(o,p,1:3,1:3) = math_mul33x33(C(o,p,1:3,1:3), math_transpose33(Fe)) ! dT*_ij/dFe_kl
|
||||||
|
enddo; enddo
|
||||||
|
|
||||||
|
end subroutine constitutive_hooke_TandItsTangent
|
||||||
|
|
||||||
|
|
||||||
!*********************************************************************
|
!*********************************************************************
|
||||||
!* This subroutine contains the constitutive equation for *
|
!* This subroutine contains the constitutive equation for *
|
||||||
!* calculating the rate of change of microstructure *
|
!* calculating the rate of change of microstructure *
|
||||||
|
@ -821,73 +896,4 @@ end select
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
||||||
subroutine constitutive_TandItsTangent(T, dT_dFe, Fe, ipc, ip, el)
|
|
||||||
!************************************************************************
|
|
||||||
!* This subroutine returns the 2nd Piola-Kirchhoff stress tensor and *
|
|
||||||
!* its tangent with respect to the elastic deformation gradient *
|
|
||||||
!* OUTPUT: *
|
|
||||||
!* - T : 2nd Piola-Kirchhoff stress tensor *
|
|
||||||
!* - dT_dFe : derivative of 2nd Piola-Kirchhoff stress tensor *
|
|
||||||
!* with respect to the elastic deformation gradient *
|
|
||||||
!* INPUT: *
|
|
||||||
!* - Fe : elastic deformation gradient *
|
|
||||||
!* - ipc : component-ID of current integration point *
|
|
||||||
!* - ip : current integration point *
|
|
||||||
!* - el : current element *
|
|
||||||
!************************************************************************
|
|
||||||
use prec, only: pReal
|
|
||||||
use material, only: phase_elasticity,material_phase
|
|
||||||
|
|
||||||
implicit none
|
|
||||||
integer(pInt) :: ipc,ip,el
|
|
||||||
real(pReal), dimension(3,3) :: T, Fe
|
|
||||||
real(pReal), dimension(3,3,3,3) :: dT_dFe
|
|
||||||
|
|
||||||
select case (phase_elasticity(material_phase(ipc,ip,el)))
|
|
||||||
|
|
||||||
case (constitutive_hooke_label)
|
|
||||||
call constitutive_hooke_TandItsTangent(T, dT_dFe, Fe, ipc, ip, el)
|
|
||||||
|
|
||||||
end select
|
|
||||||
|
|
||||||
return
|
|
||||||
endsubroutine constitutive_TandItsTangent
|
|
||||||
|
|
||||||
subroutine constitutive_hooke_TandItsTangent(T, dT_dFe, Fe, g, i, e)
|
|
||||||
!************************************************************************
|
|
||||||
!* This subroutine returns the 2nd Piola-Kirchhoff stress tensor and *
|
|
||||||
!* its tangent with respect to the elastic deformation gradient *
|
|
||||||
!* OUTPUT: *
|
|
||||||
!* - T : 2nd Piola-Kirchhoff stress tensor *
|
|
||||||
!* - dT_dFe : derivative of 2nd Piola-Kirchhoff stress tensor *
|
|
||||||
!* with respect to the elastic deformation gradient *
|
|
||||||
!* INPUT: *
|
|
||||||
!* - Fe : elastic deformation gradient *
|
|
||||||
!* - ipc : component-ID of current integration point *
|
|
||||||
!* - ip : current integration point *
|
|
||||||
!* - el : current element *
|
|
||||||
!************************************************************************
|
|
||||||
use prec, only: p_vec
|
|
||||||
use math
|
|
||||||
|
|
||||||
implicit none
|
|
||||||
!* Definition of variables
|
|
||||||
integer(pInt) g, i, e, p, o
|
|
||||||
real(pReal), dimension(3,3) :: T, Fe
|
|
||||||
real(pReal), dimension(6,6) :: C_66
|
|
||||||
real(pReal), dimension(3,3,3,3) :: dT_dFe, C
|
|
||||||
|
|
||||||
!* get elasticity tensor
|
|
||||||
|
|
||||||
C_66 = constitutive_homogenizedC(g,i,e)
|
|
||||||
C = math_Mandel66to3333(C_66)
|
|
||||||
|
|
||||||
T = 0.5_pReal*math_mul3333xx33(C,math_mul33x33(math_transpose33(Fe),Fe)-math_I3)
|
|
||||||
|
|
||||||
do p=1_pInt,3_pInt; do o=1_pInt,3_pInt
|
|
||||||
dT_dFe(o,p,1:3,1:3) = math_mul33x33(C(o,p,1:3,1:3), math_transpose33(Fe)) ! dT*_ij/dFe_kl
|
|
||||||
enddo; enddo
|
|
||||||
|
|
||||||
end subroutine constitutive_hooke_TandItsTangent
|
|
||||||
|
|
||||||
END MODULE
|
END MODULE
|
||||||
|
|
Loading…
Reference in New Issue