don't let dipole formation be undefined
This commit is contained in:
parent
b7bc5afa90
commit
6b4b5b511f
|
@ -273,8 +273,6 @@ subroutine plastic_dislotwin_init(fileUnit)
|
||||||
dot
|
dot
|
||||||
type(tDislotwinMicrostructure) :: &
|
type(tDislotwinMicrostructure) :: &
|
||||||
mse
|
mse
|
||||||
|
|
||||||
|
|
||||||
write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_DISLOTWIN_label//' init -+>>>'
|
write(6,'(/,a)') ' <<<+- constitutive_'//PLASTICITY_DISLOTWIN_label//' init -+>>>'
|
||||||
write(6,'(/,a)') ' A. Ma and F. Roters, Acta Materialia, 52(12):3603–3612, 2004'
|
write(6,'(/,a)') ' A. Ma and F. Roters, Acta Materialia, 52(12):3603–3612, 2004'
|
||||||
write(6,'(a)') ' https://doi.org/10.1016/j.actamat.2004.04.012'
|
write(6,'(a)') ' https://doi.org/10.1016/j.actamat.2004.04.012'
|
||||||
|
@ -349,17 +347,17 @@ subroutine plastic_dislotwin_init(fileUnit)
|
||||||
prm%tau_peierls = math_expand(prm%tau_peierls, prm%Nslip)
|
prm%tau_peierls = math_expand(prm%tau_peierls, prm%Nslip)
|
||||||
|
|
||||||
! sanity checks for slip related parameters
|
! sanity checks for slip related parameters
|
||||||
if (any(prm%rho0 <= 0.0_pReal))
|
!if (any(prm%rho0 <= 0.0_pReal))
|
||||||
if (any(prm%rhoDip0 <= 0.0_pReal))
|
!if (any(prm%rhoDip0 <= 0.0_pReal))
|
||||||
if (any(prm%v0 <= 0.0_pReal))
|
!if (any(prm%v0 <= 0.0_pReal))
|
||||||
if (any(prm%burgers_slip <= 0.0_pReal))
|
!if (any(prm%burgers_slip <= 0.0_pReal))
|
||||||
if (any(prm%Qedge <= 0.0_pReal))
|
!if (any(prm%Qedge <= 0.0_pReal))
|
||||||
if (any(prm%CLambdaSlip <= 0.0_pReal))
|
!if (any(prm%CLambdaSlip <= 0.0_pReal))
|
||||||
if (any(prm%B <= 0.0_pReal))
|
!if (any(prm%B <= 0.0_pReal))
|
||||||
if (any(prm%tau_peierls <= 0.0_pReal))
|
!if (any(prm%tau_peierls <= 0.0_pReal))
|
||||||
|
|
||||||
if (any(prm%p = (prm%p, prm%Nslip)
|
! if (any(prm%p = (prm%p, prm%Nslip)
|
||||||
if (any(prm%q = math_expand(prm%q, prm%Nslip)
|
! if (any(prm%q = math_expand(prm%q, prm%Nslip)
|
||||||
|
|
||||||
else slipActive
|
else slipActive
|
||||||
allocate(prm%burgers_slip(0))
|
allocate(prm%burgers_slip(0))
|
||||||
|
@ -1271,13 +1269,15 @@ subroutine plastic_dislotwin_dotState(Mp,Temperature,instance,of)
|
||||||
significantSlipStress2: if (dEq0(tau)) then
|
significantSlipStress2: if (dEq0(tau)) then
|
||||||
DotRhoDipFormation = 0.0_pReal
|
DotRhoDipFormation = 0.0_pReal
|
||||||
else significantSlipStress2
|
else significantSlipStress2
|
||||||
EdgeDipDistance = (3.0_pReal*prm%mu*prm%burgers_slip(i))/&
|
EdgeDipDistance = (3.0_pReal*prm%mu*prm%burgers_slip(i))/(16.0_pReal*PI*abs(tau))
|
||||||
(16.0_pReal*PI*abs(tau))
|
|
||||||
if (EdgeDipDistance>mse%mfp_slip(i,of)) EdgeDipDistance = mse%mfp_slip(i,of)
|
if (EdgeDipDistance>mse%mfp_slip(i,of)) EdgeDipDistance = mse%mfp_slip(i,of)
|
||||||
if (EdgeDipDistance<EdgeDipMinDistance) EdgeDipDistance = EdgeDipMinDistance
|
if (EdgeDipDistance<EdgeDipMinDistance) EdgeDipDistance = EdgeDipMinDistance
|
||||||
if (prm%dipoleFormation) &
|
if (prm%dipoleFormation) then
|
||||||
DotRhoDipFormation = ((2.0_pReal*(EdgeDipDistance-EdgeDipMinDistance))/prm%burgers_slip(i)) &
|
DotRhoDipFormation = ((2.0_pReal*(EdgeDipDistance-EdgeDipMinDistance))/prm%burgers_slip(i)) &
|
||||||
* stt%rhoEdge(i,of)*abs(gdot_slip(i))
|
* stt%rhoEdge(i,of)*abs(gdot_slip(i))
|
||||||
|
else
|
||||||
|
DotRhoDipFormation = 0.0_pReal
|
||||||
|
endif
|
||||||
endif significantSlipStress2
|
endif significantSlipStress2
|
||||||
|
|
||||||
!* Spontaneous annihilation of 2 single edge dislocations
|
!* Spontaneous annihilation of 2 single edge dislocations
|
||||||
|
|
Loading…
Reference in New Issue