need to check for significant stress only once
This commit is contained in:
parent
c10922de2b
commit
4967ac0132
|
@ -852,19 +852,30 @@ subroutine plastic_dislotwin_dotState(Mp,Temperature,instance,of)
|
||||||
slipState: do i = 1_pInt, prm%totalNslip
|
slipState: do i = 1_pInt, prm%totalNslip
|
||||||
tau = math_mul33xx33(Mp,prm%Schmid_slip(1:3,1:3,i))
|
tau = math_mul33xx33(Mp,prm%Schmid_slip(1:3,1:3,i))
|
||||||
|
|
||||||
significantSlipStress2: if (dEq0(tau)) then
|
significantSlipStress: if (dEq0(tau)) then
|
||||||
DotRhoDipFormation = 0.0_pReal
|
DotRhoDipFormation = 0.0_pReal
|
||||||
else significantSlipStress2
|
DotRhoEdgeDipClimb = 0.0_pReal
|
||||||
|
else significantSlipStress
|
||||||
EdgeDipDistance = 3.0_pReal*prm%mu*prm%burgers_slip(i)/(16.0_pReal*PI*abs(tau))
|
EdgeDipDistance = 3.0_pReal*prm%mu*prm%burgers_slip(i)/(16.0_pReal*PI*abs(tau))
|
||||||
if (EdgeDipDistance>dst%mfp_slip(i,of)) EdgeDipDistance = dst%mfp_slip(i,of)
|
EdgeDipDistance = math_clip(EdgeDipDistance, right = dst%mfp_slip(i,of))
|
||||||
if (EdgeDipDistance<EdgeDipMinDistance(i)) EdgeDipDistance = EdgeDipMinDistance(i)
|
EdgeDipDistance = math_clip(EdgeDipDistance, left = EdgeDipMinDistance(i))
|
||||||
|
|
||||||
if (prm%dipoleFormation) then
|
if (prm%dipoleFormation) then
|
||||||
DotRhoDipFormation = 2.0_pReal*(EdgeDipDistance-EdgeDipMinDistance(i))/prm%burgers_slip(i) &
|
DotRhoDipFormation = 2.0_pReal*(EdgeDipDistance-EdgeDipMinDistance(i))/prm%burgers_slip(i) &
|
||||||
* stt%rhoEdge(i,of)*abs(gdot_slip(i))
|
* stt%rhoEdge(i,of)*abs(gdot_slip(i))
|
||||||
else
|
else
|
||||||
DotRhoDipFormation = 0.0_pReal
|
DotRhoDipFormation = 0.0_pReal
|
||||||
endif
|
endif
|
||||||
endif significantSlipStress2
|
|
||||||
|
if (dEq0(EdgeDipDistance-EdgeDipMinDistance(i))) then
|
||||||
|
DotRhoEdgeDipClimb = 0.0_pReal
|
||||||
|
else
|
||||||
|
ClimbVelocity = 3.0_pReal*prm%mu*VacancyDiffusion*prm%atomicVolume(i) &
|
||||||
|
/ (2.0_pReal*PI*kB*Temperature*(EdgeDipDistance+EdgeDipMinDistance(i)))
|
||||||
|
DotRhoEdgeDipClimb = 4.0_pReal*ClimbVelocity*stt%rhoEdgeDip(i,of) &
|
||||||
|
/ (EdgeDipDistance-EdgeDipMinDistance(i))
|
||||||
|
endif
|
||||||
|
endif significantSlipStress
|
||||||
|
|
||||||
!* Spontaneous annihilation of 2 single edge dislocations
|
!* Spontaneous annihilation of 2 single edge dislocations
|
||||||
DotRhoEdgeEdgeAnnihilation = 2.0_pReal*EdgeDipMinDistance(i)/prm%burgers_slip(i) &
|
DotRhoEdgeEdgeAnnihilation = 2.0_pReal*EdgeDipMinDistance(i)/prm%burgers_slip(i) &
|
||||||
|
@ -872,20 +883,7 @@ subroutine plastic_dislotwin_dotState(Mp,Temperature,instance,of)
|
||||||
!* Spontaneous annihilation of a single edge dislocation with a dipole constituent
|
!* Spontaneous annihilation of a single edge dislocation with a dipole constituent
|
||||||
DotRhoEdgeDipAnnihilation = 2.0_pReal*EdgeDipMinDistance(i)/prm%burgers_slip(i) &
|
DotRhoEdgeDipAnnihilation = 2.0_pReal*EdgeDipMinDistance(i)/prm%burgers_slip(i) &
|
||||||
* stt%rhoEdgeDip(i,of)*abs(gdot_slip(i))
|
* stt%rhoEdgeDip(i,of)*abs(gdot_slip(i))
|
||||||
|
|
||||||
!* Dislocation dipole climb
|
|
||||||
if (dEq0(tau)) then
|
|
||||||
DotRhoEdgeDipClimb = 0.0_pReal
|
|
||||||
else
|
|
||||||
if (dEq0(EdgeDipDistance-EdgeDipMinDistance(i))) then
|
|
||||||
DotRhoEdgeDipClimb = 0.0_pReal
|
|
||||||
else
|
|
||||||
ClimbVelocity = 3.0_pReal*prm%mu*VacancyDiffusion*prm%atomicVolume(i)/ &
|
|
||||||
(2.0_pReal*pi*kB*Temperature*(EdgeDipDistance+EdgeDipMinDistance(i)))
|
|
||||||
DotRhoEdgeDipClimb = 4.0_pReal*ClimbVelocity*stt%rhoEdgeDip(i,of)/ &
|
|
||||||
(EdgeDipDistance-EdgeDipMinDistance(i))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
dot%rhoEdge(i,of) = DotRhoMultiplication(i)-DotRhoDipFormation-DotRhoEdgeEdgeAnnihilation
|
dot%rhoEdge(i,of) = DotRhoMultiplication(i)-DotRhoDipFormation-DotRhoEdgeEdgeAnnihilation
|
||||||
dot%rhoEdgeDip(i,of) = DotRhoDipFormation-DotRhoEdgeDipAnnihilation-DotRhoEdgeDipClimb
|
dot%rhoEdgeDip(i,of) = DotRhoDipFormation-DotRhoEdgeDipAnnihilation-DotRhoEdgeDipClimb
|
||||||
enddo slipState
|
enddo slipState
|
||||||
|
|
Loading…
Reference in New Issue