limit to TWINNING to fcc
This commit is contained in:
parent
8ceab5326f
commit
95fff5d6f7
|
@ -264,27 +264,20 @@ module function plastic_dislotwin_init() result(myPlasticity)
|
||||||
|
|
||||||
prm%gamma_char= lattice_characteristicShear_Twin(prm%N_tw,phase_lattice(ph),phase_cOverA(ph))
|
prm%gamma_char= lattice_characteristicShear_Twin(prm%N_tw,phase_lattice(ph),phase_cOverA(ph))
|
||||||
|
|
||||||
if (.not. prm%fccTwinTransNucleation) then
|
|
||||||
prm%dot_N_0_tw = pl%get_as1dFloat('dot_N_0_tw')
|
|
||||||
prm%dot_N_0_tw = math_expand(prm%dot_N_0_tw,prm%N_tw)
|
|
||||||
endif
|
|
||||||
|
|
||||||
! expand: family => system
|
! expand: family => system
|
||||||
prm%b_tw = math_expand(prm%b_tw,prm%N_tw)
|
prm%b_tw = math_expand(prm%b_tw,prm%N_tw)
|
||||||
prm%t_tw = math_expand(prm%t_tw,prm%N_tw)
|
prm%t_tw = math_expand(prm%t_tw,prm%N_tw)
|
||||||
prm%r = math_expand(prm%r,prm%N_tw)
|
prm%r = math_expand(prm%r,prm%N_tw)
|
||||||
|
|
||||||
! sanity checks
|
! sanity checks
|
||||||
|
if (.not. prm%fccTwinTransNucleation) extmsg = trim(extmsg)//' TWIP for non-fcc'
|
||||||
if ( prm%L_tw < 0.0_pReal) extmsg = trim(extmsg)//' L_tw'
|
if ( prm%L_tw < 0.0_pReal) extmsg = trim(extmsg)//' L_tw'
|
||||||
if ( prm%i_tw < 0.0_pReal) extmsg = trim(extmsg)//' i_tw'
|
if ( prm%i_tw < 0.0_pReal) extmsg = trim(extmsg)//' i_tw'
|
||||||
if (any(prm%b_tw < 0.0_pReal)) extmsg = trim(extmsg)//' b_tw'
|
if (any(prm%b_tw < 0.0_pReal)) extmsg = trim(extmsg)//' b_tw'
|
||||||
if (any(prm%t_tw < 0.0_pReal)) extmsg = trim(extmsg)//' t_tw'
|
if (any(prm%t_tw < 0.0_pReal)) extmsg = trim(extmsg)//' t_tw'
|
||||||
if (any(prm%r < 0.0_pReal)) extmsg = trim(extmsg)//' p_tw'
|
if (any(prm%r < 0.0_pReal)) extmsg = trim(extmsg)//' p_tw'
|
||||||
if (.not. prm%fccTwinTransNucleation) then
|
|
||||||
if (any(prm%dot_N_0_tw < 0.0_pReal)) extmsg = trim(extmsg)//' dot_N_0_tw'
|
|
||||||
end if
|
|
||||||
else twinActive
|
else twinActive
|
||||||
allocate(prm%gamma_char,prm%b_tw,prm%dot_N_0_tw,prm%t_tw,prm%r,source=emptyRealArray)
|
allocate(prm%gamma_char,prm%b_tw,prm%t_tw,prm%r,source=emptyRealArray)
|
||||||
allocate(prm%h_tw_tw(0,0))
|
allocate(prm%h_tw_tw(0,0))
|
||||||
end if twinActive
|
end if twinActive
|
||||||
|
|
||||||
|
@ -296,8 +289,8 @@ module function plastic_dislotwin_init() result(myPlasticity)
|
||||||
prm%b_tr = pl%get_as1dFloat('b_tr')
|
prm%b_tr = pl%get_as1dFloat('b_tr')
|
||||||
prm%b_tr = math_expand(prm%b_tr,prm%N_tr)
|
prm%b_tr = math_expand(prm%b_tr,prm%N_tr)
|
||||||
|
|
||||||
prm%h = pl%get_asFloat('h', defaultVal=0.0_pReal) ! ToDo: This is not optional!
|
prm%h = pl%get_asFloat('h')
|
||||||
prm%i_tr = pl%get_asFloat('i_tr', defaultVal=0.0_pReal) ! ToDo: This is not optional!
|
prm%i_tr = pl%get_asFloat('i_tr')
|
||||||
prm%Delta_G(1) = pl%get_asFloat('Delta_G')
|
prm%Delta_G(1) = pl%get_asFloat('Delta_G')
|
||||||
prm%Delta_G(2) = pl%get_asFloat('Delta_G,T', defaultVal=0.0_pReal)
|
prm%Delta_G(2) = pl%get_asFloat('Delta_G,T', defaultVal=0.0_pReal)
|
||||||
prm%Delta_G(3) = pl%get_asFloat('Delta_G,T^2',defaultVal=0.0_pReal)
|
prm%Delta_G(3) = pl%get_asFloat('Delta_G,T^2',defaultVal=0.0_pReal)
|
||||||
|
@ -317,10 +310,11 @@ module function plastic_dislotwin_init() result(myPlasticity)
|
||||||
|
|
||||||
prm%t_tr = pl%get_as1dFloat('t_tr')
|
prm%t_tr = pl%get_as1dFloat('t_tr')
|
||||||
prm%t_tr = math_expand(prm%t_tr,prm%N_tr)
|
prm%t_tr = math_expand(prm%t_tr,prm%N_tr)
|
||||||
prm%s = pl%get_as1dFloat('p_tr',defaultVal=[0.0_pReal])
|
prm%s = pl%get_as1dFloat('p_tr')
|
||||||
prm%s = math_expand(prm%s,prm%N_tr)
|
prm%s = math_expand(prm%s,prm%N_tr)
|
||||||
|
|
||||||
! sanity checks
|
! sanity checks
|
||||||
|
if (.not. prm%fccTwinTransNucleation) extmsg = trim(extmsg)//' TRIP for non-fcc'
|
||||||
if ( prm%L_tr < 0.0_pReal) extmsg = trim(extmsg)//' L_tr'
|
if ( prm%L_tr < 0.0_pReal) extmsg = trim(extmsg)//' L_tr'
|
||||||
if ( prm%i_tr < 0.0_pReal) extmsg = trim(extmsg)//' i_tr'
|
if ( prm%i_tr < 0.0_pReal) extmsg = trim(extmsg)//' i_tr'
|
||||||
if (any(prm%t_tr < 0.0_pReal)) extmsg = trim(extmsg)//' t_tr'
|
if (any(prm%t_tr < 0.0_pReal)) extmsg = trim(extmsg)//' t_tr'
|
||||||
|
@ -931,8 +925,6 @@ pure subroutine kinetics_tw(Mp,T,dot_gamma_sl,ph,en,&
|
||||||
|
|
||||||
associate(prm => param(ph), stt => state(ph), dst => dependentState(ph))
|
associate(prm => param(ph), stt => state(ph), dst => dependentState(ph))
|
||||||
|
|
||||||
isFCC: if (prm%fccTwinTransNucleation) then
|
|
||||||
|
|
||||||
mu = elastic_mu(ph,en)
|
mu = elastic_mu(ph,en)
|
||||||
nu = elastic_nu(ph,en)
|
nu = elastic_nu(ph,en)
|
||||||
Gamma_sf = prm%Gamma_sf(1) &
|
Gamma_sf = prm%Gamma_sf(1) &
|
||||||
|
@ -967,20 +959,6 @@ pure subroutine kinetics_tw(Mp,T,dot_gamma_sl,ph,en,&
|
||||||
end if
|
end if
|
||||||
end do
|
end do
|
||||||
|
|
||||||
else isFCC
|
|
||||||
do i = 1, prm%sum_N_tw
|
|
||||||
error stop 'not implemented'
|
|
||||||
tau = math_tensordot(Mp,prm%P_tw(1:3,1:3,i))
|
|
||||||
if (tau > tol_math_check) then
|
|
||||||
dot_gamma_tw(i) = 0.0_pReal
|
|
||||||
if (present(ddot_gamma_dtau_tw)) ddot_gamma_dtau_tw(i) = 0.0_pReal
|
|
||||||
else
|
|
||||||
dot_gamma_tw(i) = 0.0_pReal
|
|
||||||
if (present(ddot_gamma_dtau_tw)) ddot_gamma_dtau_tw(i) = 0.0_pReal
|
|
||||||
end if
|
|
||||||
end do
|
|
||||||
end if isFCC
|
|
||||||
|
|
||||||
end associate
|
end associate
|
||||||
|
|
||||||
end subroutine kinetics_tw
|
end subroutine kinetics_tw
|
||||||
|
|
Loading…
Reference in New Issue