Growth criteria
This commit is contained in:
parent
117135de08
commit
5f0ff71236
|
@ -1054,8 +1054,8 @@ module function phase_mechanical_constitutive(Delta_t,co,ce) result(status)
|
|||
!if(.not. FpJumped .and. NiterationStressLp>1) then !Achal: Reason for this if statement?
|
||||
call plastic_KinematicJump(ph, en, twinJump, deltaFp)
|
||||
if(twinJump) then
|
||||
write(6,*) 'element jumped', deltaFp
|
||||
write(6,*)'element',en
|
||||
write(6,*) 'delta', deltaFp
|
||||
write(6,*)'element jumped',en
|
||||
Fp0 = matmul(deltaFp,phase_mechanical_Fp0(ph)%data(1:3,1:3,en))
|
||||
|
||||
o = plasticState(ph)%offsetDeltaState
|
||||
|
|
|
@ -533,7 +533,7 @@ module subroutine plastic_kinematic_deltaFp(ph,en,twinJump,deltaFp)
|
|||
random, &
|
||||
nRealNeighbors
|
||||
integer :: &
|
||||
twin_var
|
||||
twin_var, var_growth
|
||||
real(pREAL), dimension(param(ph)%sum_N_tw) :: &
|
||||
fdot_twin
|
||||
real(pREAL), dimension(param(ph)%sum_N_tw) :: &
|
||||
|
@ -588,6 +588,27 @@ module subroutine plastic_kinematic_deltaFp(ph,en,twinJump,deltaFp)
|
|||
|
||||
end do
|
||||
|
||||
NeighborLoop: do n = 1, ncellneighbors
|
||||
neighbor_e = geom(ph)%IPneighborhood(1,n,en)
|
||||
|
||||
if(stt%variant_twin(neighbor_e)>0) then
|
||||
var_growth = stt%variant_twin(neighbor_e)
|
||||
!write(6,*)'var_growth',var_growth,en
|
||||
exit NeighborLoop
|
||||
endif
|
||||
|
||||
enddo NeighborLoop
|
||||
|
||||
Growth_Criteria: if(var_growth>0) then
|
||||
Ability_Growth: if(stt%f_twin(twin_var,en)>(stt%fmc_twin(twin_var,en)+prm%checkstep(twin_var))) then
|
||||
stt%fmc_twin(twin_var,en) = stt%fmc_twin(twin_var,en)+prm%checkstep(twin_var)
|
||||
Success_Growth: if (random <= stt%f_twin(twin_var,en)) then
|
||||
twinJump = .true.
|
||||
deltaFp = prm%CorrespondenceMatrix(:,:,twin_var)
|
||||
endif Success_Growth
|
||||
endif Ability_Growth
|
||||
endif Growth_Criteria
|
||||
|
||||
end associate
|
||||
|
||||
end subroutine plastic_kinematic_deltaFp
|
||||
|
|
Loading…
Reference in New Issue