mathematically equivalent re-formulation
allows to disable contribution from grain size by setting it to a large value
This commit is contained in:
parent
25ca77c38e
commit
fbc4865c30
examples/config/phase/mechanical/plastic
src
|
@ -18,10 +18,9 @@ a_nonSchmid: [0.938, 0.71, 4.43]
|
||||||
h_sl-sl: [0.009, 0.72, 0.009, 0.05, 0.05, 0.06, 0.09]
|
h_sl-sl: [0.009, 0.72, 0.009, 0.05, 0.05, 0.06, 0.09]
|
||||||
w: [2.992e-09] # 11b
|
w: [2.992e-09] # 11b
|
||||||
i_sl: [1] # c, eq. (25)
|
i_sl: [1] # c, eq. (25)
|
||||||
D: 1.0e+10 # d_g, eq. (25)
|
D: 1.0e+20 # d_g, eq. (25)
|
||||||
D_a: 1.0 # d_edge = D_a*b
|
D_a: 1.0 # d_edge = D_a*b
|
||||||
|
|
||||||
# climb (disabled)
|
|
||||||
D_0: 0.0 # disable climb
|
D_0: 0.0 # disable climb
|
||||||
f_at: 1
|
f_at: 1
|
||||||
Q_cl: 1.0
|
Q_cl: 1.0
|
||||||
|
|
|
@ -196,7 +196,7 @@ module function plastic_dislotungsten_init() result(myPlasticity)
|
||||||
prm%d_caron = pl%get_asFloat('D_a') * prm%b_sl
|
prm%d_caron = pl%get_asFloat('D_a') * prm%b_sl
|
||||||
|
|
||||||
! sanity checks
|
! sanity checks
|
||||||
if ( prm%D_0 <= 0.0_pReal) extmsg = trim(extmsg)//' D_0'
|
if ( prm%D_0 < 0.0_pReal) extmsg = trim(extmsg)//' D_0'
|
||||||
if ( prm%Q_cl <= 0.0_pReal) extmsg = trim(extmsg)//' Q_cl'
|
if ( prm%Q_cl <= 0.0_pReal) extmsg = trim(extmsg)//' Q_cl'
|
||||||
if (any(rho_mob_0 < 0.0_pReal)) extmsg = trim(extmsg)//' rho_mob_0'
|
if (any(rho_mob_0 < 0.0_pReal)) extmsg = trim(extmsg)//' rho_mob_0'
|
||||||
if (any(rho_dip_0 < 0.0_pReal)) extmsg = trim(extmsg)//' rho_dip_0'
|
if (any(rho_dip_0 < 0.0_pReal)) extmsg = trim(extmsg)//' rho_dip_0'
|
||||||
|
@ -375,16 +375,17 @@ module subroutine dislotungsten_dependentState(ph,en)
|
||||||
en
|
en
|
||||||
|
|
||||||
real(pReal), dimension(param(ph)%sum_N_sl) :: &
|
real(pReal), dimension(param(ph)%sum_N_sl) :: &
|
||||||
dislocationSpacing
|
Lambda_sl_inv
|
||||||
|
|
||||||
|
|
||||||
associate(prm => param(ph), stt => state(ph), dst => dependentState(ph))
|
associate(prm => param(ph), stt => state(ph), dst => dependentState(ph))
|
||||||
|
|
||||||
dislocationSpacing = sqrt(matmul(prm%forestProjection,stt%rho_mob(:,en)+stt%rho_dip(:,en)))
|
|
||||||
dst%tau_pass(:,en) = prm%mu*prm%b_sl &
|
dst%tau_pass(:,en) = prm%mu*prm%b_sl &
|
||||||
* sqrt(matmul(prm%h_sl_sl,stt%rho_mob(:,en)+stt%rho_dip(:,en)))
|
* sqrt(matmul(prm%h_sl_sl,stt%rho_mob(:,en)+stt%rho_dip(:,en)))
|
||||||
|
|
||||||
dst%Lambda_sl(:,en) = prm%D/(1.0_pReal+prm%D*dislocationSpacing/prm%i_sl)
|
Lambda_sl_inv = 1.0_pReal/prm%D &
|
||||||
|
+ sqrt(matmul(prm%forestProjection,stt%rho_mob(:,en)+stt%rho_dip(:,en)))/prm%i_sl
|
||||||
|
dst%Lambda_sl(:,en) = Lambda_sl_inv**(-1.0_pReal)
|
||||||
|
|
||||||
end associate
|
end associate
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue