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,18 +357,24 @@ 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?
|
||||||
end where
|
end where
|
||||||
|
|
||||||
dot_rho_mob = dot_gamma / (prm%b_sl*dst%Lambda_sl(:,en)) & ! multiplication
|
dot_rho_mob = dot_gamma / (prm%b_sl*dst%Lambda_sl(:,en)) & ! multiplication
|
||||||
|
|
|
@ -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,24 +680,23 @@ 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)
|
||||||
|
|
||||||
if (dEq(d_hat,prm%d_caron(i))) then
|
|
||||||
dot_rho_dip_climb(i) = 0.0_pREAL
|
|
||||||
else
|
|
||||||
! Argon & Moffat, Acta Metallurgica, Vol. 29, pg 293 to 299, 1981
|
|
||||||
sigma_cl = dot_product(prm%n0_sl(1:3,i),matmul(Mp,prm%n0_sl(1:3,i)))
|
|
||||||
if (prm%extendedDislocations) then
|
|
||||||
b_d = 24.0_pREAL*PI*(1.0_pREAL - nu)/(2.0_pREAL + nu) * prm%Gamma_sf%at(T) / (mu*prm%b_sl(i))
|
|
||||||
else
|
|
||||||
b_d = 1.0_pREAL
|
|
||||||
end if
|
|
||||||
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)
|
|
||||||
|
|
||||||
dot_rho_dip_climb(i) = 4.0_pREAL*v_cl*stt%rho_dip(i,en) &
|
|
||||||
/ (d_hat-prm%d_caron(i))
|
|
||||||
end if
|
|
||||||
end if significantSlipStress
|
end if significantSlipStress
|
||||||
|
|
||||||
|
if (dEq(d_hat,prm%d_caron(i))) then
|
||||||
|
dot_rho_dip_climb(i) = 0.0_pREAL
|
||||||
|
else
|
||||||
|
! Argon & Moffat, Acta Metallurgica, Vol. 29, pg 293 to 299, 1981
|
||||||
|
sigma_cl = dot_product(prm%n0_sl(1:3,i),matmul(Mp,prm%n0_sl(1:3,i)))
|
||||||
|
if (prm%extendedDislocations) then
|
||||||
|
b_d = 24.0_pREAL*PI*(1.0_pREAL - nu)/(2.0_pREAL + nu) * prm%Gamma_sf%at(T) / (mu*prm%b_sl(i))
|
||||||
|
else
|
||||||
|
b_d = 1.0_pREAL
|
||||||
|
end if
|
||||||
|
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)
|
||||||
|
dot_rho_dip_climb(i) = 4.0_pREAL*v_cl*stt%rho_dip(i,en) &
|
||||||
|
/ (d_hat-prm%d_caron(i))
|
||||||
|
end if
|
||||||
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