clearer logic
This commit is contained in:
parent
38755cb30d
commit
d2affaa414
|
@ -118,7 +118,7 @@ module plastic_dislotwin
|
||||||
sum_N_sl, & !< total number of active slip system
|
sum_N_sl, & !< total number of active slip system
|
||||||
sum_N_tw, & !< total number of active twin system
|
sum_N_tw, & !< total number of active twin system
|
||||||
sum_N_tr, & !< total number of active transformation system
|
sum_N_tr, & !< total number of active transformation system
|
||||||
climbSwitch !< Switch to decide climb
|
climbSwitch !< Switch to decide climb !ToDo: Needs better name and should be a logical
|
||||||
integer, dimension(:), allocatable :: &
|
integer, dimension(:), allocatable :: &
|
||||||
N_sl, & !< number of active slip systems for each family
|
N_sl, & !< number of active slip systems for each family
|
||||||
N_tw, & !< number of active twin systems for each family
|
N_tw, & !< number of active twin systems for each family
|
||||||
|
@ -280,7 +280,7 @@ subroutine plastic_dislotwin_init
|
||||||
prm%SFE_0K = config%getFloat('sfe_0k', defaultVal = 0.0_pReal)
|
prm%SFE_0K = config%getFloat('sfe_0k', defaultVal = 0.0_pReal)
|
||||||
prm%dSFE_dT = config%getFloat('dsfe_dt',defaultVal = 0.0_pReal)
|
prm%dSFE_dT = config%getFloat('dsfe_dt',defaultVal = 0.0_pReal)
|
||||||
|
|
||||||
prm%climbSwitch = config%getInt('climbswitch',defaultVal = 1)
|
prm%climbSwitch = config%getInt('climbswitch',defaultVal = 1) ! ToDo: turn on with config%key_exists('/name/')
|
||||||
|
|
||||||
prm%omega = config%getFloat('omega', defaultVal = 1000.0_pReal) &
|
prm%omega = config%getFloat('omega', defaultVal = 1000.0_pReal) &
|
||||||
* merge(12.0_pReal, &
|
* merge(12.0_pReal, &
|
||||||
|
@ -802,20 +802,22 @@ subroutine plastic_dislotwin_dotState(Mp,T,instance,of)
|
||||||
dot_rho_dip_formation(i) = 0.0_pReal
|
dot_rho_dip_formation(i) = 0.0_pReal
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if (dEq0(rho_dip_distance-rho_dip_distance_min(i))) then
|
if (dEq0(rho_dip_distance-rho_dip_distance_min(i))) then !ToDo: use or here for climb switch (second if else not needed)
|
||||||
dot_rho_dip_climb(i) = 0.0_pReal
|
dot_rho_dip_climb(i) = 0.0_pReal
|
||||||
else
|
else
|
||||||
sigma_cl = dot_product(prm%n0_sl(1:3,i),matmul(Mp,prm%n0_sl(1:3,i)))
|
sigma_cl = dot_product(prm%n0_sl(1:3,i),matmul(Mp,prm%n0_sl(1:3,i)))
|
||||||
if (prm%climbSwitch /= 0) then
|
if (prm%climbSwitch /= 0) then
|
||||||
b_d = 24.0_pReal*PI*(1.0_pReal - prm%nu)/(2.0_pReal + prm%nu)* Gamma/(prm%mu*prm%b_sl(i))
|
b_d = 24.0_pReal*PI*(1.0_pReal - prm%nu)/(2.0_pReal + prm%nu)* Gamma/(prm%mu*prm%b_sl(i))
|
||||||
else
|
|
||||||
b_d = 0.0_pReal
|
|
||||||
endif
|
|
||||||
|
|
||||||
v_cl = 2.0_pReal*prm%omega*b_d**2.0_pReal*exp(-prm%Qsd/(kB*T)) &
|
v_cl = 2.0_pReal*prm%omega*b_d**2.0_pReal*exp(-prm%Qsd/(kB*T)) &
|
||||||
* (exp(abs(sigma_cl)*prm%b_sl(i)**3.0_pReal/(kB*T)) - 1.0_pReal)
|
* (exp(abs(sigma_cl)*prm%b_sl(i)**3.0_pReal/(kB*T)) - 1.0_pReal)
|
||||||
|
|
||||||
dot_rho_dip_climb(i) = 4.0_pReal*v_cl*stt%rho_dip(i,of) &
|
dot_rho_dip_climb(i) = 4.0_pReal*v_cl*stt%rho_dip(i,of) &
|
||||||
/ (rho_dip_distance-rho_dip_distance_min(i))
|
/ (rho_dip_distance-rho_dip_distance_min(i))
|
||||||
|
else
|
||||||
|
dot_rho_dip_climb(i) = 0.0_pReal
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
endif significantSlipStress
|
endif significantSlipStress
|
||||||
enddo slipState
|
enddo slipState
|
||||||
|
|
Loading…
Reference in New Issue