names in agreement with the DAMASK paper
This commit is contained in:
parent
4a5e55cce9
commit
c1a9d3fbf6
|
@ -522,9 +522,8 @@ subroutine constitutive_LpAndItsTangents(Lp, dLp_dS, dLp_dFi, S6, Fi, ipc, ip, e
|
||||||
dLp_dMp = math_Plain99to3333(dLp_dMp99) ! ToDo: We revert here the last statement in plastic_xx_LpAndItsTanget
|
dLp_dMp = math_Plain99to3333(dLp_dMp99) ! ToDo: We revert here the last statement in plastic_xx_LpAndItsTanget
|
||||||
|
|
||||||
case (PLASTICITY_DISLOTWIN_ID) plasticityType
|
case (PLASTICITY_DISLOTWIN_ID) plasticityType
|
||||||
call plastic_dislotwin_LpAndItsTangent (Lp,dLp_dMp99, math_Mandel33to6(Mp), &
|
call plastic_dislotwin_LpAndItsTangent (Lp,dLp_dMp, Mp, &
|
||||||
temperature(ho)%p(tme),ipc,ip,el)
|
temperature(ho)%p(tme),ipc,ip,el)
|
||||||
dLp_dMp = math_Plain99to3333(dLp_dMp99) ! ToDo: We revert here the last statement in plastic_xx_LpAndItsTanget
|
|
||||||
|
|
||||||
case (PLASTICITY_DISLOUCLA_ID) plasticityType
|
case (PLASTICITY_DISLOUCLA_ID) plasticityType
|
||||||
call plastic_disloucla_LpAndItsTangent (Lp,dLp_dMp99, math_Mandel33to6(Mp), &
|
call plastic_disloucla_LpAndItsTangent (Lp,dLp_dMp99, math_Mandel33to6(Mp), &
|
||||||
|
@ -905,7 +904,7 @@ subroutine constitutive_collectDotState(S6, FeArray, Fi, FpArray, subdt, subfrac
|
||||||
call plastic_kinehardening_dotState(math_Mandel33to6(Mstar),ipc,ip,el)
|
call plastic_kinehardening_dotState(math_Mandel33to6(Mstar),ipc,ip,el)
|
||||||
|
|
||||||
case (PLASTICITY_DISLOTWIN_ID) plasticityType
|
case (PLASTICITY_DISLOTWIN_ID) plasticityType
|
||||||
call plastic_dislotwin_dotState (math_Mandel33to6(Mstar),temperature(ho)%p(tme), &
|
call plastic_dislotwin_dotState (Mstar,temperature(ho)%p(tme), &
|
||||||
ipc,ip,el)
|
ipc,ip,el)
|
||||||
|
|
||||||
case (PLASTICITY_DISLOUCLA_ID) plasticityType
|
case (PLASTICITY_DISLOUCLA_ID) plasticityType
|
||||||
|
|
|
@ -1042,14 +1042,11 @@ end subroutine plastic_dislotwin_microstructure
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates plastic velocity gradient and its tangent
|
!> @brief calculates plastic velocity gradient and its tangent
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature,ipc,ip,el)
|
subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dMp,Mp,Temperature,ipc,ip,el)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
tol_math_check, &
|
tol_math_check, &
|
||||||
dNeq0
|
dNeq0
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_Plain3333to99, &
|
|
||||||
math_Mandel6to33, &
|
|
||||||
math_Mandel33to6, &
|
|
||||||
math_eigenValuesVectorsSym, &
|
math_eigenValuesVectorsSym, &
|
||||||
math_tensorproduct33, &
|
math_tensorproduct33, &
|
||||||
math_symmetric33, &
|
math_symmetric33, &
|
||||||
|
@ -1063,9 +1060,9 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: ipc,ip,el
|
integer(pInt), intent(in) :: ipc,ip,el
|
||||||
real(pReal), intent(in) :: Temperature
|
real(pReal), intent(in) :: Temperature
|
||||||
real(pReal), dimension(6), intent(in) :: Tstar_v
|
real(pReal), dimension(3,3), intent(in) :: Mp
|
||||||
real(pReal), dimension(3,3), intent(out) :: Lp
|
real(pReal), dimension(3,3), intent(out) :: Lp
|
||||||
real(pReal), dimension(9,9), intent(out) :: dLp_dTstar99
|
real(pReal), dimension(3,3,3,3), intent(out) :: dLp_dMp
|
||||||
|
|
||||||
integer(pInt) :: of,i,k,l,m,n,s1,s2
|
integer(pInt) :: of,i,k,l,m,n,s1,s2
|
||||||
real(pReal) :: f_unrotated,StressRatio_p,&
|
real(pReal) :: f_unrotated,StressRatio_p,&
|
||||||
|
@ -1073,7 +1070,6 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
Ndot0_trans,StressRatio_s, &
|
Ndot0_trans,StressRatio_s, &
|
||||||
dgdot_dtau, &
|
dgdot_dtau, &
|
||||||
tau
|
tau
|
||||||
real(pReal), dimension(3,3,3,3) :: dLp_dS
|
|
||||||
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNslip) :: &
|
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNslip) :: &
|
||||||
gdot_slip,dgdot_dtau_slip
|
gdot_slip,dgdot_dtau_slip
|
||||||
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNtwin) :: &
|
real(pReal), dimension(param(phase_plasticityInstance(material_phase(ipc,ip,el)))%totalNtwin) :: &
|
||||||
|
@ -1119,25 +1115,24 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
- sum(stt%strainTransFraction(1_pInt:prm%totalNtrans,of))
|
- sum(stt%strainTransFraction(1_pInt:prm%totalNtrans,of))
|
||||||
|
|
||||||
Lp = 0.0_pReal
|
Lp = 0.0_pReal
|
||||||
dLp_dS = 0.0_pReal
|
dLp_dMp = 0.0_pReal
|
||||||
S = math_Mandel6to33(Tstar_v)
|
|
||||||
|
|
||||||
call kinetics_slip(prm,stt,mse,of,S,temperature,gdot_slip,dgdot_dtau_slip)
|
call kinetics_slip(prm,stt,mse,of,Mp,temperature,gdot_slip,dgdot_dtau_slip)
|
||||||
slipContribution: do i = 1_pInt, prm%totalNslip
|
slipContribution: do i = 1_pInt, prm%totalNslip
|
||||||
Lp = Lp + gdot_slip(i)*prm%Schmid_slip(1:3,1:3,i)
|
Lp = Lp + gdot_slip(i)*prm%Schmid_slip(1:3,1:3,i)
|
||||||
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
||||||
dLp_dS(k,l,m,n) = dLp_dS(k,l,m,n) &
|
dLp_dMp(k,l,m,n) = dLp_dMp(k,l,m,n) &
|
||||||
+ dgdot_dtau_slip(i) * prm%Schmid_slip(k,l,i) * prm%Schmid_slip(m,n,i)
|
+ dgdot_dtau_slip(i) * prm%Schmid_slip(k,l,i) * prm%Schmid_slip(m,n,i)
|
||||||
enddo slipContribution
|
enddo slipContribution
|
||||||
|
|
||||||
!ToDo: Why do this before shear banding?
|
!ToDo: Why do this before shear banding?
|
||||||
Lp = Lp * f_unrotated
|
Lp = Lp * f_unrotated
|
||||||
dLp_dS = dLp_dS * f_unrotated
|
dLp_dMp = dLp_dMp * f_unrotated
|
||||||
|
|
||||||
shearBandingContribution: if(dNeq0(prm%sbVelocity)) then
|
shearBandingContribution: if(dNeq0(prm%sbVelocity)) then
|
||||||
|
|
||||||
BoltzmannRatio = prm%sbQedge/(kB*Temperature)
|
BoltzmannRatio = prm%sbQedge/(kB*Temperature)
|
||||||
call math_eigenValuesVectorsSym(S,eigValues,eigVectors,error)
|
call math_eigenValuesVectorsSym(Mp,eigValues,eigVectors,error)
|
||||||
|
|
||||||
do i = 1_pInt,6_pInt
|
do i = 1_pInt,6_pInt
|
||||||
sb_s = 0.5_pReal*sqrt(2.0_pReal)*math_mul33x3(eigVectors,sb_sComposition(1:3,i))
|
sb_s = 0.5_pReal*sqrt(2.0_pReal)*math_mul33x3(eigVectors,sb_sComposition(1:3,i))
|
||||||
|
@ -1154,26 +1149,26 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
|
|
||||||
Lp = Lp + gdot_sb * Schmid_shearBand
|
Lp = Lp + gdot_sb * Schmid_shearBand
|
||||||
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
||||||
dLp_dS(k,l,m,n) = dLp_dS(k,l,m,n) &
|
dLp_dMp(k,l,m,n) = dLp_dMp(k,l,m,n) &
|
||||||
+ dgdot_dtau * Schmid_shearBand(k,l) * Schmid_shearBand(m,n)
|
+ dgdot_dtau * Schmid_shearBand(k,l) * Schmid_shearBand(m,n)
|
||||||
endif significantShearBandStress
|
endif significantShearBandStress
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
endif shearBandingContribution
|
endif shearBandingContribution
|
||||||
|
|
||||||
call kinetics_twin(prm,stt,mse,of,S,temperature,gdot_slip,gdot_twin,dgdot_dtau_twin)
|
call kinetics_twin(prm,stt,mse,of,Mp,temperature,gdot_slip,gdot_twin,dgdot_dtau_twin)
|
||||||
gdot_twin = f_unrotated * gdot_twin
|
gdot_twin = f_unrotated * gdot_twin
|
||||||
dgdot_dtau_twin = f_unrotated * dgdot_dtau_twin
|
dgdot_dtau_twin = f_unrotated * dgdot_dtau_twin
|
||||||
twinContibution: do i = 1_pInt, prm%totalNtwin
|
twinContibution: do i = 1_pInt, prm%totalNtwin
|
||||||
Lp = Lp + gdot_twin(i)*prm%Schmid_twin(1:3,1:3,i)
|
Lp = Lp + gdot_twin(i)*prm%Schmid_twin(1:3,1:3,i)
|
||||||
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
||||||
dLp_dS(k,l,m,n) = dLp_dS(k,l,m,n) &
|
dLp_dMp(k,l,m,n) = dLp_dMp(k,l,m,n) &
|
||||||
+ dgdot_dtau_twin(i)* prm%Schmid_twin(k,l,i)*prm%Schmid_twin(m,n,i)
|
+ dgdot_dtau_twin(i)* prm%Schmid_twin(k,l,i)*prm%Schmid_twin(m,n,i)
|
||||||
enddo twinContibution
|
enddo twinContibution
|
||||||
|
|
||||||
transConstribution: do i = 1_pInt, prm%totalNtrans
|
transConstribution: do i = 1_pInt, prm%totalNtrans
|
||||||
|
|
||||||
tau = math_mul33xx33(S,prm%Schmid_trans(1:3,1:3,i))
|
tau = math_mul33xx33(Mp,prm%Schmid_trans(1:3,1:3,i))
|
||||||
|
|
||||||
significantTransStress: if (tau > tol_math_check) then
|
significantTransStress: if (tau > tol_math_check) then
|
||||||
StressRatio_s = (mse%threshold_stress_trans(i,of)/tau)**prm%s(i)
|
StressRatio_s = (mse%threshold_stress_trans(i,of)/tau)**prm%s(i)
|
||||||
|
@ -1199,7 +1194,7 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
Lp = Lp + gdot_trans*prm%Schmid_trans(1:3,1:3,i)
|
Lp = Lp + gdot_trans*prm%Schmid_trans(1:3,1:3,i)
|
||||||
|
|
||||||
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
forall (k=1_pInt:3_pInt,l=1_pInt:3_pInt,m=1_pInt:3_pInt,n=1_pInt:3_pInt) &
|
||||||
dLp_dS(k,l,m,n) = dLp_dS(k,l,m,n) &
|
dLp_dMp(k,l,m,n) = dLp_dMp(k,l,m,n) &
|
||||||
+ dgdot_dtau * prm%Schmid_trans(k,l,i)* prm%Schmid_trans(m,n,i)
|
+ dgdot_dtau * prm%Schmid_trans(k,l,i)* prm%Schmid_trans(m,n,i)
|
||||||
endif significantTransStress
|
endif significantTransStress
|
||||||
|
|
||||||
|
@ -1207,15 +1202,13 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
|
|
||||||
end associate
|
end associate
|
||||||
|
|
||||||
dLp_dTstar99 = math_Plain3333to99(dLp_dS)
|
|
||||||
|
|
||||||
end subroutine plastic_dislotwin_LpAndItsTangent
|
end subroutine plastic_dislotwin_LpAndItsTangent
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates the rate of change of microstructure
|
!> @brief calculates the rate of change of microstructure
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
subroutine plastic_dislotwin_dotState(Mp,Temperature,ipc,ip,el)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
tol_math_check, &
|
tol_math_check, &
|
||||||
dEq0
|
dEq0
|
||||||
|
@ -1230,8 +1223,8 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
phasememberAt
|
phasememberAt
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
real(pReal), dimension(6), intent(in):: &
|
real(pReal), dimension(3,3), intent(in):: &
|
||||||
Tstar_v !< 2nd Piola Kirchhoff stress tensor in Mandel notation
|
Mp !< Mandel stress
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
temperature !< temperature at integration point
|
temperature !< temperature at integration point
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -1250,8 +1243,6 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
gdot_slip
|
gdot_slip
|
||||||
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3) :: &
|
|
||||||
S !< Second-Piola Kirchhoff stress
|
|
||||||
type(tParameters) :: prm
|
type(tParameters) :: prm
|
||||||
type(tDislotwinState) :: stt, dot
|
type(tDislotwinState) :: stt, dot
|
||||||
type(tDislotwinMicrostructure) :: mse
|
type(tDislotwinMicrostructure) :: mse
|
||||||
|
@ -1259,9 +1250,6 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
!* Shortened notation
|
!* Shortened notation
|
||||||
of = phasememberAt(ipc,ip,el)
|
of = phasememberAt(ipc,ip,el)
|
||||||
|
|
||||||
S = math_Mandel6to33(Tstar_v)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
associate(prm => param(phase_plasticityInstance(material_phase(ipc,ip,el))), &
|
associate(prm => param(phase_plasticityInstance(material_phase(ipc,ip,el))), &
|
||||||
stt => state(phase_plasticityInstance(material_phase(ipc,ip,el))), &
|
stt => state(phase_plasticityInstance(material_phase(ipc,ip,el))), &
|
||||||
|
@ -1277,7 +1265,7 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
|
|
||||||
slipState: do i = 1_pInt, prm%totalNslip
|
slipState: do i = 1_pInt, prm%totalNslip
|
||||||
|
|
||||||
tau = math_mul33xx33(S,prm%Schmid_slip(1:3,1:3,i))
|
tau = math_mul33xx33(Mp,prm%Schmid_slip(1:3,1:3,i))
|
||||||
|
|
||||||
significantSlipStress1: if((abs(tau)-mse%threshold_stress_slip(i,of)) > tol_math_check) then
|
significantSlipStress1: if((abs(tau)-mse%threshold_stress_slip(i,of)) > tol_math_check) then
|
||||||
stressRatio =((abs(tau)- mse%threshold_stress_slip(i,of))/&
|
stressRatio =((abs(tau)- mse%threshold_stress_slip(i,of))/&
|
||||||
|
@ -1334,7 +1322,7 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
|
|
||||||
twinState: do i = 1_pInt, prm%totalNtwin
|
twinState: do i = 1_pInt, prm%totalNtwin
|
||||||
|
|
||||||
tau = math_mul33xx33(S,prm%Schmid_slip(1:3,1:3,i))
|
tau = math_mul33xx33(Mp,prm%Schmid_slip(1:3,1:3,i))
|
||||||
|
|
||||||
significantTwinStress: if (tau > tol_math_check) then
|
significantTwinStress: if (tau > tol_math_check) then
|
||||||
StressRatio_r = (mse%threshold_stress_twin(i,of)/tau)**prm%r(i)
|
StressRatio_r = (mse%threshold_stress_twin(i,of)/tau)**prm%r(i)
|
||||||
|
@ -1360,7 +1348,7 @@ subroutine plastic_dislotwin_dotState(Tstar_v,Temperature,ipc,ip,el)
|
||||||
|
|
||||||
transState: do i = 1_pInt, prm%totalNtrans
|
transState: do i = 1_pInt, prm%totalNtrans
|
||||||
|
|
||||||
tau = math_mul33xx33(S,prm%Schmid_trans(1:3,1:3,i))
|
tau = math_mul33xx33(Mp,prm%Schmid_trans(1:3,1:3,i))
|
||||||
|
|
||||||
significantTransStress: if (tau > tol_math_check) then
|
significantTransStress: if (tau > tol_math_check) then
|
||||||
StressRatio_s = (mse%threshold_stress_trans(i,of)/tau)**prm%s(i)
|
StressRatio_s = (mse%threshold_stress_trans(i,of)/tau)**prm%s(i)
|
||||||
|
@ -1394,7 +1382,7 @@ end subroutine plastic_dislotwin_dotState
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates shear rates on slip systems
|
!> @brief calculates shear rates on slip systems
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine kinetics_slip(prm,stt,mse,of,S,temperature,gdot_slip,dgdot_dtau_slip)
|
pure subroutine kinetics_slip(prm,stt,mse,of,Mp,temperature,gdot_slip,dgdot_dtau_slip)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
tol_math_check, &
|
tol_math_check, &
|
||||||
dNeq0
|
dNeq0
|
||||||
|
@ -1408,7 +1396,7 @@ subroutine kinetics_slip(prm,stt,mse,of,S,temperature,gdot_slip,dgdot_dtau_slip)
|
||||||
stt
|
stt
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
of
|
of
|
||||||
type(tDislotwinMicrostructure) :: &
|
type(tDislotwinMicrostructure), intent(in) :: &
|
||||||
mse
|
mse
|
||||||
real(pReal), dimension(prm%totalNslip), intent(out) :: &
|
real(pReal), dimension(prm%totalNslip), intent(out) :: &
|
||||||
gdot_slip
|
gdot_slip
|
||||||
|
@ -1417,7 +1405,7 @@ subroutine kinetics_slip(prm,stt,mse,of,S,temperature,gdot_slip,dgdot_dtau_slip)
|
||||||
real(pReal), dimension(prm%totalNslip) :: &
|
real(pReal), dimension(prm%totalNslip) :: &
|
||||||
dgdot_dtau
|
dgdot_dtau
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
S
|
Mp
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
temperature
|
temperature
|
||||||
|
|
||||||
|
@ -1429,7 +1417,7 @@ subroutine kinetics_slip(prm,stt,mse,of,S,temperature,gdot_slip,dgdot_dtau_slip)
|
||||||
integer(pInt) :: i
|
integer(pInt) :: i
|
||||||
|
|
||||||
do i = 1_pInt, prm%totalNslip
|
do i = 1_pInt, prm%totalNslip
|
||||||
tau(i) = math_mul33xx33(S,prm%Schmid_slip(1:3,1:3,i))
|
tau(i) = math_mul33xx33(Mp,prm%Schmid_slip(1:3,1:3,i))
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
significantStress: where((abs(tau)-mse%threshold_stress_slip(:,of)) > tol_math_check)
|
significantStress: where((abs(tau)-mse%threshold_stress_slip(:,of)) > tol_math_check)
|
||||||
|
@ -1454,7 +1442,7 @@ end subroutine
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates shear rates on slip systems
|
!> @brief calculates shear rates on slip systems
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine kinetics_twin(prm,stt,mse,of,S,temperature,gdot_slip,gdot_twin,dgdot_dtau_twin)
|
pure subroutine kinetics_twin(prm,stt,mse,of,Mp,temperature,gdot_slip,gdot_twin,dgdot_dtau_twin)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
tol_math_check, &
|
tol_math_check, &
|
||||||
dNeq0
|
dNeq0
|
||||||
|
@ -1468,7 +1456,7 @@ subroutine kinetics_twin(prm,stt,mse,of,S,temperature,gdot_slip,gdot_twin,dgdot_
|
||||||
stt
|
stt
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
of
|
of
|
||||||
type(tDislotwinMicrostructure) :: &
|
type(tDislotwinMicrostructure), intent(in) :: &
|
||||||
mse
|
mse
|
||||||
real(pReal), dimension(prm%totalNslip), intent(out) :: &
|
real(pReal), dimension(prm%totalNslip), intent(out) :: &
|
||||||
gdot_slip
|
gdot_slip
|
||||||
|
@ -1477,7 +1465,7 @@ subroutine kinetics_twin(prm,stt,mse,of,S,temperature,gdot_slip,gdot_twin,dgdot_
|
||||||
real(pReal), dimension(prm%totalNtwin), optional, intent(out) :: &
|
real(pReal), dimension(prm%totalNtwin), optional, intent(out) :: &
|
||||||
dgdot_dtau_twin
|
dgdot_dtau_twin
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
S
|
Mp
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
temperature
|
temperature
|
||||||
|
|
||||||
|
@ -1490,7 +1478,7 @@ subroutine kinetics_twin(prm,stt,mse,of,S,temperature,gdot_slip,gdot_twin,dgdot_
|
||||||
integer(pInt) :: i,s1,s2
|
integer(pInt) :: i,s1,s2
|
||||||
|
|
||||||
do i = 1_pInt, prm%totalNtwin
|
do i = 1_pInt, prm%totalNtwin
|
||||||
tau(i) = math_mul33xx33(S,prm%Schmid_twin(1:3,1:3,i))
|
tau(i) = math_mul33xx33(Mp,prm%Schmid_twin(1:3,1:3,i))
|
||||||
isFCC: if (prm%isFCC) then
|
isFCC: if (prm%isFCC) then
|
||||||
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
||||||
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
||||||
|
@ -1526,7 +1514,7 @@ end subroutine
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief calculates shear rates on transformation systems
|
!> @brief calculates shear rates on transformation systems
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine kinetics_trans(prm,stt,mse,of,S,temperature,gdot_slip,gdot_trans,dgdot_dtau_trans)
|
pure subroutine kinetics_trans(prm,stt,mse,of,Mp,temperature,gdot_slip,gdot_trans,dgdot_dtau_trans)
|
||||||
use prec, only: &
|
use prec, only: &
|
||||||
tol_math_check, &
|
tol_math_check, &
|
||||||
dNeq0
|
dNeq0
|
||||||
|
@ -1540,7 +1528,7 @@ subroutine kinetics_trans(prm,stt,mse,of,S,temperature,gdot_slip,gdot_trans,dgdo
|
||||||
stt
|
stt
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
of
|
of
|
||||||
type(tDislotwinMicrostructure) :: &
|
type(tDislotwinMicrostructure), intent(in) :: &
|
||||||
mse
|
mse
|
||||||
real(pReal), dimension(prm%totalNslip), intent(out) :: &
|
real(pReal), dimension(prm%totalNslip), intent(out) :: &
|
||||||
gdot_slip
|
gdot_slip
|
||||||
|
@ -1549,7 +1537,7 @@ subroutine kinetics_trans(prm,stt,mse,of,S,temperature,gdot_slip,gdot_trans,dgdo
|
||||||
real(pReal), dimension(prm%totalNtrans), optional, intent(out) :: &
|
real(pReal), dimension(prm%totalNtrans), optional, intent(out) :: &
|
||||||
dgdot_dtau_trans
|
dgdot_dtau_trans
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
S
|
Mp
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
temperature
|
temperature
|
||||||
|
|
||||||
|
@ -1562,7 +1550,7 @@ subroutine kinetics_trans(prm,stt,mse,of,S,temperature,gdot_slip,gdot_trans,dgdo
|
||||||
integer(pInt) :: i,s1,s2
|
integer(pInt) :: i,s1,s2
|
||||||
|
|
||||||
do i = 1_pInt, prm%totalNtrans
|
do i = 1_pInt, prm%totalNtrans
|
||||||
tau(i) = math_mul33xx33(S,prm%Schmid_trans(1:3,1:3,i))
|
tau(i) = math_mul33xx33(Mp,prm%Schmid_trans(1:3,1:3,i))
|
||||||
isFCC: if (prm%isFCC) then
|
isFCC: if (prm%isFCC) then
|
||||||
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
s1=prm%fcc_twinNucleationSlipPair(1,i)
|
||||||
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
s2=prm%fcc_twinNucleationSlipPair(2,i)
|
||||||
|
|
Loading…
Reference in New Issue