Merge branch 'climb_stress_free' into 'development'
edge dipole annihilation via climb is not disabled anymore when stress is zero See merge request damask/DAMASK!860
This commit is contained in:
commit
d8900558cd
|
@ -357,15 +357,21 @@ module function dislotungsten_dotState(Mp,ph,en) result(dotState)
|
||||||
dot_gamma = abs(dot_gamma)
|
dot_gamma = abs(dot_gamma)
|
||||||
|
|
||||||
where(dEq0(dot_gamma))
|
where(dEq0(dot_gamma))
|
||||||
|
d_hat = dst%Lambda_sl(:,en) ! upper limit
|
||||||
dot_rho_dip_formation = 0.0_pREAL
|
dot_rho_dip_formation = 0.0_pREAL
|
||||||
dot_rho_dip_climb = 0.0_pREAL
|
|
||||||
else where
|
else where
|
||||||
d_hat = math_clip(mu*prm%b_sl/(8.0_pREAL*PI*(1.0_pREAL-nu)*tau_eff), &
|
d_hat = mu*prm%b_sl/(8.0_pREAL*PI*(1.0_pREAL-nu)*tau_eff)
|
||||||
left = prm%d_caron, & ! lower limit
|
d_hat = math_clip(d_hat, right = dst%Lambda_sl(:,en)) ! upper limit
|
||||||
right = dst%Lambda_sl(:,en)) ! upper limit
|
d_hat = math_clip(d_hat, left = prm%d_caron) ! lower limit
|
||||||
|
|
||||||
dot_rho_dip_formation = merge(dot_gamma * 2.0_pREAL*(d_hat-prm%d_caron)/prm%b_sl * stt%rho_mob(:,en), &
|
dot_rho_dip_formation = merge(dot_gamma * 2.0_pREAL*(d_hat-prm%d_caron)/prm%b_sl * stt%rho_mob(:,en), &
|
||||||
0.0_pREAL, &
|
0.0_pREAL, &
|
||||||
prm%dipoleformation)
|
prm%dipoleformation)
|
||||||
|
end where
|
||||||
|
|
||||||
|
where(dEq0(d_hat-prm%d_caron))
|
||||||
|
dot_rho_dip_climb = 0.0_pREAL
|
||||||
|
else where
|
||||||
v_cl = (3.0_pREAL*mu*prm%D_0*exp(-prm%Q_cl/(K_B*T))*prm%f_at/(2.0_pREAL*PI*K_B*T)) &
|
v_cl = (3.0_pREAL*mu*prm%D_0*exp(-prm%Q_cl/(K_B*T))*prm%f_at/(2.0_pREAL*PI*K_B*T)) &
|
||||||
* (1.0_pREAL/(d_hat+prm%d_caron))
|
* (1.0_pREAL/(d_hat+prm%d_caron))
|
||||||
dot_rho_dip_climb = (4.0_pREAL*v_cl*stt%rho_dip(:,en))/(d_hat-prm%d_caron) ! ToDo: Discuss with Franz: Stress dependency?
|
dot_rho_dip_climb = (4.0_pREAL*v_cl*stt%rho_dip(:,en))/(d_hat-prm%d_caron) ! ToDo: Discuss with Franz: Stress dependency?
|
||||||
|
|
|
@ -671,8 +671,8 @@ module function dislotwin_dotState(Mp,ph,en) result(dotState)
|
||||||
tau = math_tensordot(Mp,prm%P_sl(1:3,1:3,i))
|
tau = math_tensordot(Mp,prm%P_sl(1:3,1:3,i))
|
||||||
|
|
||||||
significantSlipStress: if (dEq0(tau) .or. prm%omitDipoles) then
|
significantSlipStress: if (dEq0(tau) .or. prm%omitDipoles) then
|
||||||
|
d_hat = dst%Lambda_sl(i,en)
|
||||||
dot_rho_dip_formation(i) = 0.0_pREAL
|
dot_rho_dip_formation(i) = 0.0_pREAL
|
||||||
dot_rho_dip_climb(i) = 0.0_pREAL
|
|
||||||
else significantSlipStress
|
else significantSlipStress
|
||||||
d_hat = 3.0_pREAL*mu*prm%b_sl(i)/(16.0_pREAL*PI*abs(tau))
|
d_hat = 3.0_pREAL*mu*prm%b_sl(i)/(16.0_pREAL*PI*abs(tau))
|
||||||
d_hat = math_clip(d_hat, right = dst%Lambda_sl(i,en))
|
d_hat = math_clip(d_hat, right = dst%Lambda_sl(i,en))
|
||||||
|
@ -680,6 +680,7 @@ module function dislotwin_dotState(Mp,ph,en) result(dotState)
|
||||||
|
|
||||||
dot_rho_dip_formation(i) = 2.0_pREAL*(d_hat-prm%d_caron(i))/prm%b_sl(i) &
|
dot_rho_dip_formation(i) = 2.0_pREAL*(d_hat-prm%d_caron(i))/prm%b_sl(i) &
|
||||||
* stt%rho_mob(i,en)*abs_dot_gamma_sl(i)
|
* stt%rho_mob(i,en)*abs_dot_gamma_sl(i)
|
||||||
|
end if significantSlipStress
|
||||||
|
|
||||||
if (dEq(d_hat,prm%d_caron(i))) then
|
if (dEq(d_hat,prm%d_caron(i))) then
|
||||||
dot_rho_dip_climb(i) = 0.0_pREAL
|
dot_rho_dip_climb(i) = 0.0_pREAL
|
||||||
|
@ -693,11 +694,9 @@ module function dislotwin_dotState(Mp,ph,en) result(dotState)
|
||||||
end if
|
end if
|
||||||
v_cl = 2.0_pREAL*prm%omega*b_d**2*exp(-prm%Q_cl/(K_B*T)) &
|
v_cl = 2.0_pREAL*prm%omega*b_d**2*exp(-prm%Q_cl/(K_B*T)) &
|
||||||
* (exp(abs(sigma_cl)*prm%b_sl(i)**3/(K_B*T)) - 1.0_pREAL)
|
* (exp(abs(sigma_cl)*prm%b_sl(i)**3/(K_B*T)) - 1.0_pREAL)
|
||||||
|
|
||||||
dot_rho_dip_climb(i) = 4.0_pREAL*v_cl*stt%rho_dip(i,en) &
|
dot_rho_dip_climb(i) = 4.0_pREAL*v_cl*stt%rho_dip(i,en) &
|
||||||
/ (d_hat-prm%d_caron(i))
|
/ (d_hat-prm%d_caron(i))
|
||||||
end if
|
end if
|
||||||
end if significantSlipStress
|
|
||||||
end do slipState
|
end do slipState
|
||||||
|
|
||||||
dot_rho_mob = abs_dot_gamma_sl/(prm%b_sl*dst%Lambda_sl(:,en)) &
|
dot_rho_mob = abs_dot_gamma_sl/(prm%b_sl*dst%Lambda_sl(:,en)) &
|
||||||
|
|
Loading…
Reference in New Issue