reactivated plastic work contribution to damage. default state integration tolerance is 0.001. use aTol_damage tag in material.config to specify your own tolerance
This commit is contained in:
parent
96fe818f5d
commit
8a683e2371
|
@ -26,7 +26,8 @@ module damage_gradient
|
||||||
damage_gradient_Noutput !< number of outputs per instance of this damage
|
damage_gradient_Noutput !< number of outputs per instance of this damage
|
||||||
|
|
||||||
real(pReal), dimension(:), allocatable, public :: &
|
real(pReal), dimension(:), allocatable, public :: &
|
||||||
damage_gradient_crack_mobility
|
damage_gradient_crack_mobility, &
|
||||||
|
damage_gradient_aTol
|
||||||
|
|
||||||
enum, bind(c)
|
enum, bind(c)
|
||||||
enumerator :: undefined_ID, &
|
enumerator :: undefined_ID, &
|
||||||
|
@ -117,6 +118,7 @@ subroutine damage_gradient_init(fileUnit)
|
||||||
allocate(damage_gradient_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
|
allocate(damage_gradient_outputID(maxval(phase_Noutput),maxNinstance), source=undefined_ID)
|
||||||
allocate(damage_gradient_Noutput(maxNinstance), source=0_pInt)
|
allocate(damage_gradient_Noutput(maxNinstance), source=0_pInt)
|
||||||
allocate(damage_gradient_crack_mobility(maxNinstance), source=0.0_pReal)
|
allocate(damage_gradient_crack_mobility(maxNinstance), source=0.0_pReal)
|
||||||
|
allocate(damage_gradient_aTol(maxNinstance), source=0.001_pReal)
|
||||||
|
|
||||||
rewind(fileUnit)
|
rewind(fileUnit)
|
||||||
phase = 0_pInt
|
phase = 0_pInt
|
||||||
|
@ -156,6 +158,9 @@ subroutine damage_gradient_init(fileUnit)
|
||||||
|
|
||||||
case ('crack_mobility')
|
case ('crack_mobility')
|
||||||
damage_gradient_crack_mobility(instance) = IO_floatValue(line,positions,2_pInt)
|
damage_gradient_crack_mobility(instance) = IO_floatValue(line,positions,2_pInt)
|
||||||
|
|
||||||
|
case ('atol_damage')
|
||||||
|
damage_gradient_aTol(instance) = IO_floatValue(line,positions,2_pInt)
|
||||||
end select
|
end select
|
||||||
endif; endif
|
endif; endif
|
||||||
enddo parsingFile
|
enddo parsingFile
|
||||||
|
@ -246,7 +251,7 @@ subroutine damage_gradient_aTolState(phase,instance)
|
||||||
instance ! number specifying the current instance of the damage
|
instance ! number specifying the current instance of the damage
|
||||||
real(pReal), dimension(damageState(phase)%sizeState) :: tempTol
|
real(pReal), dimension(damageState(phase)%sizeState) :: tempTol
|
||||||
|
|
||||||
tempTol = 1.0_pReal
|
tempTol = damage_gradient_aTol(instance)
|
||||||
damageState(phase)%aTolState = tempTol
|
damageState(phase)%aTolState = tempTol
|
||||||
end subroutine damage_gradient_aTolState
|
end subroutine damage_gradient_aTolState
|
||||||
|
|
||||||
|
@ -291,7 +296,8 @@ subroutine damage_gradient_microstructure(Tstar_v, Fe, ipc, ip, el)
|
||||||
strain))
|
strain))
|
||||||
|
|
||||||
damageState(phase)%state(2,constituent) = abs(strainEnergy)/ &
|
damageState(phase)%state(2,constituent) = abs(strainEnergy)/ &
|
||||||
(math_trace33(lattice_surfaceEnergy33(1:3,1:3,phase))/3.0_pReal)
|
(math_trace33(lattice_surfaceEnergy33(1:3,1:3,phase))/3.0_pReal) + &
|
||||||
|
damageState(phase)%state(1,constituent)
|
||||||
|
|
||||||
end subroutine damage_gradient_microstructure
|
end subroutine damage_gradient_microstructure
|
||||||
|
|
||||||
|
@ -304,7 +310,10 @@ subroutine damage_gradient_dotState(Tstar_v, Lp, ipc, ip, el)
|
||||||
phase_damageInstance, &
|
phase_damageInstance, &
|
||||||
damageState
|
damageState
|
||||||
use math, only: &
|
use math, only: &
|
||||||
math_Mandel6to33
|
math_Mandel6to33, &
|
||||||
|
math_trace33
|
||||||
|
use lattice, only: &
|
||||||
|
lattice_surfaceEnergy33
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
integer(pInt), intent(in) :: &
|
integer(pInt), intent(in) :: &
|
||||||
|
@ -323,8 +332,8 @@ subroutine damage_gradient_dotState(Tstar_v, Lp, ipc, ip, el)
|
||||||
instance = phase_damageInstance(phase)
|
instance = phase_damageInstance(phase)
|
||||||
|
|
||||||
damageState(phase)%dotState(1,constituent) = &
|
damageState(phase)%dotState(1,constituent) = &
|
||||||
0.0_pReal
|
sum(abs(math_Mandel6to33(Tstar_v)*Lp))/ &
|
||||||
!sum(abs(math_Mandel6to33(Tstar_v)*Lp))
|
(math_trace33(lattice_surfaceEnergy33(1:3,1:3,phase))/3.0_pReal)
|
||||||
|
|
||||||
end subroutine damage_gradient_dotState
|
end subroutine damage_gradient_dotState
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue