Growth criteria

This commit is contained in:
achalhp 2024-03-17 09:13:32 +05:30
parent 117135de08
commit 5f0ff71236
2 changed files with 24 additions and 3 deletions

View File

@ -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

View File

@ -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