reverting the changes related to undamaged_Fi during rev. 3850/3851.
This commit is contained in:
parent
85465333ec
commit
701f35c326
|
@ -29,7 +29,6 @@ module constitutive
|
||||||
constitutive_LpAndItsTangent, &
|
constitutive_LpAndItsTangent, &
|
||||||
constitutive_LiAndItsTangent, &
|
constitutive_LiAndItsTangent, &
|
||||||
constitutive_getFi, &
|
constitutive_getFi, &
|
||||||
constitutive_getUndamagedFi, &
|
|
||||||
constitutive_putFi, &
|
constitutive_putFi, &
|
||||||
constitutive_getFi0, &
|
constitutive_getFi0, &
|
||||||
constitutive_getPartionedFi0, &
|
constitutive_getPartionedFi0, &
|
||||||
|
@ -885,42 +884,6 @@ pure function constitutive_getFi(ipc, ip, el)
|
||||||
|
|
||||||
end function constitutive_getFi
|
end function constitutive_getFi
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
!> @brief contains the constitutive equation for calculating the undamaged
|
|
||||||
!> intermediate deformation gradient
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
|
||||||
pure function constitutive_getUndamagedFi(ipc, ip, el)
|
|
||||||
use prec, only: &
|
|
||||||
pReal
|
|
||||||
use math, only: &
|
|
||||||
math_I3, &
|
|
||||||
math_mul33x33
|
|
||||||
use material, only: &
|
|
||||||
phase_thermal, &
|
|
||||||
material_phase, &
|
|
||||||
LOCAL_THERMAL_adiabatic_ID
|
|
||||||
use thermal_adiabatic, only: &
|
|
||||||
thermal_adiabatic_getFT
|
|
||||||
|
|
||||||
implicit none
|
|
||||||
integer(pInt), intent(in) :: &
|
|
||||||
ipc, & !< grain number
|
|
||||||
ip, & !< integration point number
|
|
||||||
el !< element number
|
|
||||||
real(pReal), dimension(3,3) :: &
|
|
||||||
constitutive_getUndamagedFi !< intermediate deformation gradient
|
|
||||||
|
|
||||||
constitutive_getUndamagedFi = math_I3
|
|
||||||
|
|
||||||
select case (phase_thermal(material_phase(ipc,ip,el)))
|
|
||||||
case (LOCAL_THERMAL_adiabatic_ID)
|
|
||||||
constitutive_getUndamagedFi = math_mul33x33(constitutive_getUndamagedFi,thermal_adiabatic_getFT (ipc, ip, el))
|
|
||||||
|
|
||||||
end select
|
|
||||||
|
|
||||||
end function constitutive_getUndamagedFi
|
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief contains the constitutive equation for calculating the intermediate deformation gradient
|
!> @brief contains the constitutive equation for calculating the intermediate deformation gradient
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -3519,7 +3519,6 @@ logical function crystallite_integrateStress(&
|
||||||
use constitutive, only: constitutive_LpAndItsTangent, &
|
use constitutive, only: constitutive_LpAndItsTangent, &
|
||||||
constitutive_LiAndItsTangent, &
|
constitutive_LiAndItsTangent, &
|
||||||
constitutive_getFi0, &
|
constitutive_getFi0, &
|
||||||
constitutive_getUndamagedFi, &
|
|
||||||
constitutive_putFi, &
|
constitutive_putFi, &
|
||||||
constitutive_TandItsTangent
|
constitutive_TandItsTangent
|
||||||
use math, only: math_mul33x33, &
|
use math, only: math_mul33x33, &
|
||||||
|
@ -3555,7 +3554,6 @@ logical function crystallite_integrateStress(&
|
||||||
Fi_current, & ! intermediate deformation gradient at start of timestep
|
Fi_current, & ! intermediate deformation gradient at start of timestep
|
||||||
Fp_new, & ! plastic deformation gradient at end of timestep
|
Fp_new, & ! plastic deformation gradient at end of timestep
|
||||||
Fe_new, & ! elastic deformation gradient at end of timestep
|
Fe_new, & ! elastic deformation gradient at end of timestep
|
||||||
Fe_undamaged, &
|
|
||||||
invFp_new, & ! inverse of Fp_new
|
invFp_new, & ! inverse of Fp_new
|
||||||
invFp_current, & ! inverse of Fp_current
|
invFp_current, & ! inverse of Fp_current
|
||||||
invFi_current, & ! inverse of Fp_current
|
invFi_current, & ! inverse of Fp_current
|
||||||
|
@ -3573,13 +3571,11 @@ logical function crystallite_integrateStress(&
|
||||||
deltaLi, & ! direction of next guess
|
deltaLi, & ! direction of next guess
|
||||||
Tstar, & ! 2nd Piola-Kirchhoff Stress in plastic (lattice) configuration
|
Tstar, & ! 2nd Piola-Kirchhoff Stress in plastic (lattice) configuration
|
||||||
Tstar_unloaded, & ! 2nd Piola-Kirchhoff Stress in unloaded configuration
|
Tstar_unloaded, & ! 2nd Piola-Kirchhoff Stress in unloaded configuration
|
||||||
Tstar_undamaged, &
|
|
||||||
A, &
|
A, &
|
||||||
B, &
|
B, &
|
||||||
Fe, & ! elastic deformation gradient
|
Fe, & ! elastic deformation gradient
|
||||||
Fi, & ! gradient of intermediate deformation stages
|
Fi, & ! gradient of intermediate deformation stages
|
||||||
invFi, &
|
invFi, &
|
||||||
invFiundamaged, &
|
|
||||||
temp_33
|
temp_33
|
||||||
real(pReal), dimension(6):: Tstar_v ! 2nd Piola-Kirchhoff Stress in Mandel-Notation
|
real(pReal), dimension(6):: Tstar_v ! 2nd Piola-Kirchhoff Stress in Mandel-Notation
|
||||||
real(pReal), dimension(9):: work ! needed for matrix inversion by LAPACK
|
real(pReal), dimension(9):: work ! needed for matrix inversion by LAPACK
|
||||||
|
@ -3594,7 +3590,6 @@ logical function crystallite_integrateStress(&
|
||||||
dRLi_dLi ! partial derivative of residuumI (Jacobian for NEwton-Raphson scheme)
|
dRLi_dLi ! partial derivative of residuumI (Jacobian for NEwton-Raphson scheme)
|
||||||
real(pReal), dimension(3,3,3,3):: dT_dFe3333, & ! partial derivative of 2nd Piola-Kirchhoff stress
|
real(pReal), dimension(3,3,3,3):: dT_dFe3333, & ! partial derivative of 2nd Piola-Kirchhoff stress
|
||||||
dT_dFe3333_unloaded, &
|
dT_dFe3333_unloaded, &
|
||||||
dT_dFe3333_undamaged, &
|
|
||||||
dFe_dLp3333, & ! partial derivative of elastic deformation gradient
|
dFe_dLp3333, & ! partial derivative of elastic deformation gradient
|
||||||
dFe_dLi3333
|
dFe_dLi3333
|
||||||
real(pReal) det, & ! determinant
|
real(pReal) det, & ! determinant
|
||||||
|
@ -3738,14 +3733,12 @@ logical function crystallite_integrateStress(&
|
||||||
|
|
||||||
B = math_I3 - dt*Lpguess
|
B = math_I3 - dt*Lpguess
|
||||||
Fe = math_mul33x33(math_mul33x33(A,B),invFi) ! current elastic deformation tensor
|
Fe = math_mul33x33(math_mul33x33(A,B),invFi) ! current elastic deformation tensor
|
||||||
invFiundamaged = math_inv33(constitutive_getUndamagedFi(g, i, e))
|
call constitutive_TandItsTangent(Tstar_unloaded, dT_dFe3333_unloaded, Fe, g,i,e) ! call constitutive law to calculate 2nd Piola-Kirchhoff stress and its derivative in unloaded configuration
|
||||||
Fe_undamaged = math_mul33x33(math_mul33x33(A,B),invFiundamaged)
|
|
||||||
call constitutive_TandItsTangent(Tstar_undamaged, dT_dFe3333_undamaged, Fe_undamaged, g,i,e) ! call constitutive law to calculate 2nd Piola-Kirchhoff stress and its derivative in unloaded configuration
|
|
||||||
Tstar = math_mul33x33(invFi, &
|
Tstar = math_mul33x33(invFi, &
|
||||||
math_mul33x33(Tstar_undamaged,math_transpose33(invFi)))/detInvFi ! push Tstar forward from unloaded to plastic (lattice) configuration
|
math_mul33x33(Tstar_unloaded,math_transpose33(invFi)))/detInvFi ! push Tstar forward from unloaded to plastic (lattice) configuration
|
||||||
do o=1_pInt,3_pInt; do p=1_pInt,3_pInt
|
do o=1_pInt,3_pInt; do p=1_pInt,3_pInt
|
||||||
dT_dFe3333(1:3,1:3,o,p) = math_mul33x33(invFi, &
|
dT_dFe3333(1:3,1:3,o,p) = math_mul33x33(invFi, &
|
||||||
math_mul33x33(dT_dFe3333_undamaged(1:3,1:3,o,p),math_transpose33(invFi)))/detInvFi
|
math_mul33x33(dT_dFe3333_unloaded(1:3,1:3,o,p),math_transpose33(invFi)))/detInvFi
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
Tstar_v = math_Mandel33to6(Tstar)
|
Tstar_v = math_Mandel33to6(Tstar)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue