use of kinetics simplifies code

This commit is contained in:
Martin Diehl 2018-09-14 12:17:35 +02:00
parent bd0b561772
commit 9c5ca0e542
1 changed files with 7 additions and 25 deletions

View File

@ -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
tau = math_mul33xx33(S,prm%Schmid_slip(1:3,1:3,i))
significantSlipStress: if((abs(tau)-mse%threshold_stress_slip(i,of)) > tol_math_check) then
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) 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_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) + dgdot_dtau_slip(i) * 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))