semi-separate handling of damage
This commit is contained in:
parent
2b24224c7e
commit
594ad2c310
|
@ -1009,16 +1009,12 @@ module function phase_mechanical_constitutive(dt,co,ip,el) result(converged_)
|
|||
subLi0 = phase_mechanical_Li0(ph)%data(1:3,1:3,en)
|
||||
subLp0 = phase_mechanical_Lp0(ph)%data(1:3,1:3,en)
|
||||
subState0 = plasticState(ph)%State0(:,en)
|
||||
|
||||
if (damageState(ph)%sizeState > 0) &
|
||||
damageState(ph)%subState0(:,en) = damageState(ph)%state0(:,en)
|
||||
|
||||
subFp0 = phase_mechanical_Fp0(ph)%data(1:3,1:3,en)
|
||||
subFi0 = phase_mechanical_Fi0(ph)%data(1:3,1:3,en)
|
||||
subF0 = phase_mechanical_F0(ph)%data(1:3,1:3,en)
|
||||
subFrac = 0.0_pReal
|
||||
subStep = 1.0_pReal/num%subStepSizeCryst
|
||||
todo = .true.
|
||||
subStep = 1.0_pReal/num%subStepSizeCryst
|
||||
converged_ = .false. ! pretend failed step of 1/subStepSizeCryst
|
||||
|
||||
todo = .true.
|
||||
|
@ -1038,9 +1034,6 @@ module function phase_mechanical_constitutive(dt,co,ip,el) result(converged_)
|
|||
subFp0 = phase_mechanical_Fp(ph)%data(1:3,1:3,en)
|
||||
subFi0 = phase_mechanical_Fi(ph)%data(1:3,1:3,en)
|
||||
subState0 = plasticState(ph)%state(:,en)
|
||||
if (damageState(ph)%sizeState > 0) &
|
||||
damageState(ph)%subState0(:,en) = damageState(ph)%state(:,en)
|
||||
|
||||
endif
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
! cut back (reduced time and restore)
|
||||
|
@ -1054,9 +1047,6 @@ module function phase_mechanical_constitutive(dt,co,ip,el) result(converged_)
|
|||
phase_mechanical_Li(ph)%data(1:3,1:3,en) = subLi0
|
||||
endif
|
||||
plasticState(ph)%state(:,en) = subState0
|
||||
if (damageState(ph)%sizeState > 0) &
|
||||
damageState(ph)%state(:,en) = damageState(ph)%subState0(:,en)
|
||||
|
||||
todo = subStep > num%subStepMinCryst ! still on track or already done (beyond repair)
|
||||
endif
|
||||
|
||||
|
@ -1066,11 +1056,13 @@ module function phase_mechanical_constitutive(dt,co,ip,el) result(converged_)
|
|||
subF = subF0 &
|
||||
+ subStep * (phase_mechanical_F(ph)%data(1:3,1:3,en) - phase_mechanical_F0(ph)%data(1:3,1:3,en))
|
||||
converged_ = .not. integrateState(subF0,subF,subFp0,subFi0,subState0(1:sizeDotState),subStep * dt,co,ip,el)
|
||||
converged_ = converged_ .and. .not. integrateDamageState(subStep * dt,co,(el-1)*discretization_nIPs + ip)
|
||||
endif
|
||||
|
||||
enddo cutbackLooping
|
||||
|
||||
if (damageState(ph)%sizeState > 0) damageState(ph)%subState0(:,en) = damageState(ph)%state0(:,en)
|
||||
converged_ = converged_ .and. .not. integrateDamageState(dt,co,(el-1)*discretization_nIPs + ip)
|
||||
|
||||
end function phase_mechanical_constitutive
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue