fracture strain energy and plastic strain indexed by instance and not phase
This commit is contained in:
parent
b3ae6301e1
commit
4a445a9f54
|
@ -307,16 +307,17 @@ subroutine damage_brittle_microstructure(Tstar_v, Fe, ipc, ip, el)
|
||||||
real(pReal), intent(in), dimension(3,3) :: &
|
real(pReal), intent(in), dimension(3,3) :: &
|
||||||
Fe
|
Fe
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, constituent
|
phase, constituent, instance
|
||||||
real(pReal) :: &
|
real(pReal) :: &
|
||||||
strain(3,3)
|
strain(3,3)
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = mappingConstitutive(2,ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = mappingConstitutive(1,ipc,ip,el)
|
||||||
strain = 0.5_pReal*(math_mul33x33(math_transpose33(Fe),Fe)-math_I3)
|
instance = phase_damageInstance(phase)
|
||||||
|
|
||||||
|
strain = 0.5_pReal*(math_mul33x33(math_transpose33(Fe),Fe)-math_I3)
|
||||||
damageState(phase)%state(2,constituent) = min(damageState(phase)%state(2,constituent), &
|
damageState(phase)%state(2,constituent) = min(damageState(phase)%state(2,constituent), &
|
||||||
damage_brittle_critStrainEnergy(phase)/ &
|
damage_brittle_critStrainEnergy(instance)/ &
|
||||||
sum(abs(math_Mandel6to33(Tstar_v)*strain)))
|
sum(abs(math_Mandel6to33(Tstar_v)*strain)))
|
||||||
|
|
||||||
end subroutine damage_brittle_microstructure
|
end subroutine damage_brittle_microstructure
|
||||||
|
|
|
@ -122,7 +122,7 @@ subroutine damage_ductile_init(fileUnit)
|
||||||
damage_ductile_output = ''
|
damage_ductile_output = ''
|
||||||
allocate(damage_ductile_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
|
allocate(damage_ductile_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
|
||||||
allocate(damage_ductile_Noutput(maxNinstance), source=0_pInt)
|
allocate(damage_ductile_Noutput(maxNinstance), source=0_pInt)
|
||||||
allocate(damage_ductile_critpStrain(maxNinstance), source=0.0_pReal)
|
allocate(damage_ductile_critpStrain(maxNinstance), source=0.0_pReal)
|
||||||
allocate(damage_ductile_aTol(maxNinstance), source=0.0_pReal)
|
allocate(damage_ductile_aTol(maxNinstance), source=0.0_pReal)
|
||||||
|
|
||||||
rewind(fileUnit)
|
rewind(fileUnit)
|
||||||
|
@ -309,13 +309,14 @@ subroutine damage_ductile_microstructure(nSlip,accumulatedSlip,ipc, ip, el)
|
||||||
real(pReal), dimension(nSlip), intent(in) :: &
|
real(pReal), dimension(nSlip), intent(in) :: &
|
||||||
accumulatedSlip
|
accumulatedSlip
|
||||||
integer(pInt) :: &
|
integer(pInt) :: &
|
||||||
phase, constituent
|
phase, constituent, instance
|
||||||
|
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = mappingConstitutive(2,ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = mappingConstitutive(1,ipc,ip,el)
|
||||||
|
instance = phase_damageInstance(phase)
|
||||||
damageState(phase)%state(2,constituent) = min(damageState(phase)%state(2,constituent), &
|
damageState(phase)%state(2,constituent) = min(damageState(phase)%state(2,constituent), &
|
||||||
damage_ductile_critpStrain(phase)/ &
|
damage_ductile_critpStrain(instance)/ &
|
||||||
sum(accumulatedSlip)) !< akin to damage surface
|
sum(accumulatedSlip)) !< akin to damage surface
|
||||||
|
|
||||||
end subroutine damage_ductile_microstructure
|
end subroutine damage_ductile_microstructure
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue