shearRates more similar to kinetics
This commit is contained in:
parent
89196b953f
commit
2476dd4d8b
|
@ -425,8 +425,9 @@ end subroutine plastic_kinehardening_init
|
||||||
!> @brief calculation of shear rates (\dot \gamma)
|
!> @brief calculation of shear rates (\dot \gamma)
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
subroutine plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
||||||
Mp,instance,of)
|
Mp,instance,of, dgdot_dtau_pos, &
|
||||||
|
dgdot_dtau_neg)
|
||||||
|
use prec
|
||||||
use math
|
use math
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
|
@ -440,6 +441,9 @@ subroutine plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
||||||
gdot_neg, & !< shear rates from negative line segments
|
gdot_neg, & !< shear rates from negative line segments
|
||||||
tau_pos, & !< shear stress on positive line segments
|
tau_pos, & !< shear stress on positive line segments
|
||||||
tau_neg !< shear stress on negative line segments
|
tau_neg !< shear stress on negative line segments
|
||||||
|
real(pReal), dimension(paramNew(instance)%totalNslip), intent(out),optional :: &
|
||||||
|
dgdot_dtau_pos, &
|
||||||
|
dgdot_dtau_neg
|
||||||
|
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
i
|
i
|
||||||
|
@ -456,6 +460,21 @@ subroutine plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
||||||
gdot_pos = sign(0.5_pReal * prm%gdot0 *(abs(tau_pos)/ state(instance)%crss(:,of))**prm%n_slip,tau_pos)
|
gdot_pos = sign(0.5_pReal * prm%gdot0 *(abs(tau_pos)/ state(instance)%crss(:,of))**prm%n_slip,tau_pos)
|
||||||
gdot_neg = sign(0.5_pReal * prm%gdot0 *(abs(tau_neg)/ state(instance)%crss(:,of))**prm%n_slip,tau_neg)
|
gdot_neg = sign(0.5_pReal * prm%gdot0 *(abs(tau_neg)/ state(instance)%crss(:,of))**prm%n_slip,tau_neg)
|
||||||
|
|
||||||
|
if (present(dgdot_dtau_pos)) then
|
||||||
|
where(dNeq0(gdot_pos))
|
||||||
|
dgdot_dtau_pos = gdot_pos*prm%n_slip/tau_pos
|
||||||
|
else where
|
||||||
|
dgdot_dtau_pos = 0.0_pReal
|
||||||
|
end where
|
||||||
|
endif
|
||||||
|
if (present(dgdot_dtau_neg)) then
|
||||||
|
where(dNeq0(gdot_neg))
|
||||||
|
dgdot_dtau_neg = gdot_neg*prm%n_slip/tau_neg
|
||||||
|
else where
|
||||||
|
dgdot_dtau_neg = 0.0_pReal
|
||||||
|
end where
|
||||||
|
endif
|
||||||
|
|
||||||
end associate
|
end associate
|
||||||
end subroutine plastic_kinehardening_shearRates
|
end subroutine plastic_kinehardening_shearRates
|
||||||
|
|
||||||
|
@ -493,18 +512,7 @@ subroutine plastic_kinehardening_LpAndItsTangent(Lp,dLp_dMp,Mp,instance,of)
|
||||||
dLp_dMp = 0.0_pReal
|
dLp_dMp = 0.0_pReal
|
||||||
|
|
||||||
call plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
call plastic_kinehardening_shearRates(gdot_pos,gdot_neg,tau_pos,tau_neg, &
|
||||||
Mp,instance,of)
|
Mp,instance,of,dgdot_dtau_pos,dgdot_dtau_neg)
|
||||||
where (dNeq0(gdot_pos))
|
|
||||||
dgdot_dtau_pos = gdot_pos*prm%n_slip/tau_pos
|
|
||||||
else where
|
|
||||||
dgdot_dtau_pos = 0.0_pReal
|
|
||||||
end where
|
|
||||||
|
|
||||||
where (dNeq0(gdot_neg))
|
|
||||||
dgdot_dtau_neg = gdot_neg*prm%n_slip/tau_neg
|
|
||||||
else where
|
|
||||||
dgdot_dtau_neg = 0.0_pReal
|
|
||||||
end where
|
|
||||||
|
|
||||||
do j = 1_pInt, prm%totalNslip
|
do j = 1_pInt, prm%totalNslip
|
||||||
Lp = Lp + (gdot_pos(j)+gdot_neg(j))*prm%Schmid_slip(1:3,1:3,j)
|
Lp = Lp + (gdot_pos(j)+gdot_neg(j))*prm%Schmid_slip(1:3,1:3,j)
|
||||||
|
|
Loading…
Reference in New Issue