bounding the analytically integrated damage variable
This commit is contained in:
parent
347dac74c6
commit
67c3eb3a2e
|
@ -266,6 +266,8 @@ end subroutine damage_isoBrittle_aTolState
|
||||||
!> @brief calculates derived quantities from state
|
!> @brief calculates derived quantities from state
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine damage_isoBrittle_microstructure(C, Fe, subdt, ipc, ip, el)
|
subroutine damage_isoBrittle_microstructure(C, Fe, subdt, ipc, ip, el)
|
||||||
|
use numerics, only: &
|
||||||
|
residualStiffness
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
phase_damageInstance, &
|
phase_damageInstance, &
|
||||||
|
@ -303,13 +305,14 @@ subroutine damage_isoBrittle_microstructure(C, Fe, subdt, ipc, ip, el)
|
||||||
stress = math_mul66x6(C,strain)
|
stress = math_mul66x6(C,strain)
|
||||||
|
|
||||||
damageState(phase)%state(2,constituent) = &
|
damageState(phase)%state(2,constituent) = &
|
||||||
|
max(residualStiffness, &
|
||||||
min(damageState(phase)%state0(2,constituent), &
|
min(damageState(phase)%state0(2,constituent), &
|
||||||
damage_isoBrittle_critStrainEnergy(instance)/sum(abs(stress*strain)))
|
damage_isoBrittle_critStrainEnergy(instance)/(2.0_pReal*sum(abs(stress*strain))))) !< residualStiffness < damage < damage0
|
||||||
|
|
||||||
damageState(phase)%state(1,constituent) = &
|
damageState(phase)%state(1,constituent) = &
|
||||||
damageState(phase)%state(2,constituent) + &
|
damageState(phase)%state(2,constituent) + &
|
||||||
(damageState(phase)%subState0(1,constituent) - damageState(phase)%state(2,constituent))* &
|
(damageState(phase)%subState0(1,constituent) - damageState(phase)%state(2,constituent))* &
|
||||||
exp(-subdt/lattice_DamageMobility(phase))
|
exp(-subdt/(damageState(phase)%state(2,constituent)*lattice_DamageMobility(phase)))
|
||||||
|
|
||||||
end subroutine damage_isoBrittle_microstructure
|
end subroutine damage_isoBrittle_microstructure
|
||||||
|
|
||||||
|
|
|
@ -271,6 +271,8 @@ end subroutine damage_phaseField_aTolState
|
||||||
!> @brief calculates derived quantities from state
|
!> @brief calculates derived quantities from state
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine damage_phaseField_microstructure(C, Fe, Cv, subdt, ipc, ip, el)
|
subroutine damage_phaseField_microstructure(C, Fe, Cv, subdt, ipc, ip, el)
|
||||||
|
use numerics, only: &
|
||||||
|
residualStiffness
|
||||||
use material, only: &
|
use material, only: &
|
||||||
mappingConstitutive, &
|
mappingConstitutive, &
|
||||||
phase_damageInstance, &
|
phase_damageInstance, &
|
||||||
|
@ -311,14 +313,15 @@ subroutine damage_phaseField_microstructure(C, Fe, Cv, subdt, ipc, ip, el)
|
||||||
stress = math_mul66x6(C,strain)
|
stress = math_mul66x6(C,strain)
|
||||||
|
|
||||||
damageState(phase)%state(2,constituent) = &
|
damageState(phase)%state(2,constituent) = &
|
||||||
|
max(residualStiffness, &
|
||||||
min(damageState(phase)%state0(2,constituent), &
|
min(damageState(phase)%state0(2,constituent), &
|
||||||
damage_phaseField_surfaceEnergy(instance)/ &
|
(1.0_pReal - Cv)*damage_phaseField_surfaceEnergy(instance)/ &
|
||||||
(2.0_pReal*(sum(abs(stress*strain)) + Cv*damage_phaseField_vacancyFormationEnergy(instance))))
|
(2.0_pReal*(sum(abs(stress*strain)) + Cv*damage_phaseField_vacancyFormationEnergy(instance)))))
|
||||||
|
|
||||||
damageState(phase)%state(1,constituent) = &
|
damageState(phase)%state(1,constituent) = &
|
||||||
damageState(phase)%state(2,constituent)*(1.0_pReal - Cv) + &
|
damageState(phase)%state(2,constituent) + &
|
||||||
(damageState(phase)%subState0(1,constituent) - damageState(phase)%state(2,constituent)*(1.0_pReal - Cv))* &
|
(damageState(phase)%subState0(1,constituent) - damageState(phase)%state(2,constituent))* &
|
||||||
exp(-subdt/lattice_DamageMobility(phase))
|
exp(-subdt/(damageState(phase)%state(2,constituent)*lattice_DamageMobility(phase)))
|
||||||
|
|
||||||
end subroutine damage_phaseField_microstructure
|
end subroutine damage_phaseField_microstructure
|
||||||
|
|
||||||
|
@ -419,7 +422,6 @@ function damage_phaseField_getDamageDiffusion33(ipc, ip, el)
|
||||||
phase = mappingConstitutive(2,ipc,ip,el)
|
phase = mappingConstitutive(2,ipc,ip,el)
|
||||||
constituent = mappingConstitutive(1,ipc,ip,el)
|
constituent = mappingConstitutive(1,ipc,ip,el)
|
||||||
damage_phaseField_getDamageDiffusion33 = &
|
damage_phaseField_getDamageDiffusion33 = &
|
||||||
damageState(phase)%state(2,constituent)* &
|
|
||||||
lattice_DamageDiffusion33(1:3,1:3,phase)
|
lattice_DamageDiffusion33(1:3,1:3,phase)
|
||||||
|
|
||||||
end function damage_phaseField_getDamageDiffusion33
|
end function damage_phaseField_getDamageDiffusion33
|
||||||
|
|
Loading…
Reference in New Issue