use of kinetics simplifies code
This commit is contained in:
parent
bd0b561772
commit
9c5ca0e542
|
@ -1075,7 +1075,7 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
tau
|
tau
|
||||||
real(pReal), dimension(3,3,3,3) :: dLp_dS
|
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
|
gdot_slip,dgdot_dtau_slip
|
||||||
real(pReal):: gdot_sb,gdot_twin,gdot_trans
|
real(pReal):: gdot_sb,gdot_twin,gdot_trans
|
||||||
real(pReal), dimension(3,3) :: eigVectors, Schmid_shearBand
|
real(pReal), dimension(3,3) :: eigVectors, Schmid_shearBand
|
||||||
real(pReal), dimension(3) :: eigValues, sb_s, sb_m
|
real(pReal), dimension(3) :: eigValues, sb_s, sb_m
|
||||||
|
@ -1119,31 +1119,12 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
dLp_dS = 0.0_pReal
|
dLp_dS = 0.0_pReal
|
||||||
S = math_Mandel6to33(Tstar_v)
|
S = math_Mandel6to33(Tstar_v)
|
||||||
|
|
||||||
|
call kinetics_slip(prm,stt,mse,of,S,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)
|
||||||
tau = math_mul33xx33(S,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) &
|
||||||
|
dLp_dS(k,l,m,n) = dLp_dS(k,l,m,n) &
|
||||||
significantSlipStress: if((abs(tau)-mse%threshold_stress_slip(i,of)) > tol_math_check) then
|
+ dgdot_dtau_slip(i) * prm%Schmid_slip(k,l,i) * prm%Schmid_slip(m,n,i)
|
||||||
stressRatio = ((abs(tau)- mse%threshold_stress_slip(i,of))/&
|
|
||||||
(prm%SolidSolutionStrength+prm%tau_peierls(i)))
|
|
||||||
StressRatio_p = stressRatio** prm%p(i)
|
|
||||||
StressRatio_pminus1 = stressRatio**(prm%p(i)-1.0_pReal) ! ToDo: no very helpful
|
|
||||||
BoltzmannRatio = prm%Qedge(i)/(kB*Temperature)
|
|
||||||
|
|
||||||
gdot_slip(i) = stt%rhoEdge(i,of)*prm%burgers_slip(i)* prm%v0(i) &
|
|
||||||
* sign(exp(-BoltzmannRatio*(1-StressRatio_p)** prm%q(i)), tau)
|
|
||||||
dgdot_dtau = abs(gdot_slip(i))*BoltzmannRatio*prm%p(i) * prm%q(i) &
|
|
||||||
/ (prm%SolidSolutionStrength+prm%tau_peierls(i)) &
|
|
||||||
* StressRatio_pminus1*(1-StressRatio_p)**(prm%q(i)-1.0_pReal)
|
|
||||||
|
|
||||||
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) &
|
|
||||||
dLp_dS(k,l,m,n) = dLp_dS(k,l,m,n) &
|
|
||||||
+ dgdot_dtau * prm%Schmid_slip(k,l,i) * prm%Schmid_slip(m,n,i)
|
|
||||||
else significantSlipStress
|
|
||||||
gdot_slip(i) = 0.0_pReal
|
|
||||||
endif significantSlipStress
|
|
||||||
|
|
||||||
enddo slipContribution
|
enddo slipContribution
|
||||||
|
|
||||||
!ToDo: Why do this before shear banding?
|
!ToDo: Why do this before shear banding?
|
||||||
|
@ -1177,6 +1158,7 @@ subroutine plastic_dislotwin_LpAndItsTangent(Lp,dLp_dTstar99,Tstar_v,Temperature
|
||||||
|
|
||||||
endif shearBandingContribution
|
endif shearBandingContribution
|
||||||
|
|
||||||
|
!call kinetics_twin(prm,stt,mse,of,S,temperature,gdot_slip,gdot_twin,dgdot_dtau_twin)
|
||||||
twinContibution: do i = 1_pInt, prm%totalNtwin
|
twinContibution: do i = 1_pInt, prm%totalNtwin
|
||||||
|
|
||||||
tau = math_mul33xx33(S,prm%Schmid_twin(1:3,1:3,i))
|
tau = math_mul33xx33(S,prm%Schmid_twin(1:3,1:3,i))
|
||||||
|
|
Loading…
Reference in New Issue