isobrittle handles stiffness degradation implicitly
This commit is contained in:
parent
62203bcddb
commit
e3506576e7
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
||||||
Subproject commit 95f7faea920dd6956884e4a55f72e5d5b1ffcdc8
|
Subproject commit 6f6acb3412fa7bf14b16c0a4994d735b740c7e6f
|
|
@ -241,6 +241,13 @@ module phase
|
||||||
end function phase_homogenizedC
|
end function phase_homogenizedC
|
||||||
|
|
||||||
|
|
||||||
|
module function phase_damage_C(C_homogenized,ph,en) result(C) ! ToDo: SR: better name?
|
||||||
|
real(pReal), dimension(3,3,3,3), intent(in) :: C_homogenized
|
||||||
|
integer, intent(in) :: ph,en
|
||||||
|
real(pReal), dimension(3,3,3,3) :: C
|
||||||
|
end function phase_damage_C
|
||||||
|
|
||||||
|
|
||||||
module function phase_f_phi(phi,co,ce) result(f)
|
module function phase_f_phi(phi,co,ce) result(f)
|
||||||
integer, intent(in) :: ce,co
|
integer, intent(in) :: ce,co
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
|
|
|
@ -137,6 +137,25 @@ module subroutine damage_init
|
||||||
end subroutine damage_init
|
end subroutine damage_init
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief returns the degraded/modified elasticity matrix
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
module function phase_damage_C(C_homogenized,ph,en) result(C)
|
||||||
|
|
||||||
|
real(pReal), dimension(3,3,3,3), intent(in) :: C_homogenized
|
||||||
|
integer, intent(in) :: ph,en
|
||||||
|
real(pReal), dimension(3,3,3,3) :: C
|
||||||
|
|
||||||
|
damageType: select case (phase_source(ph))
|
||||||
|
case (DAMAGE_ISOBRITTLE_ID) damageType
|
||||||
|
C = C_homogenized * damage_phi(ph,en)**2
|
||||||
|
case default damageType
|
||||||
|
C = C_homogenized
|
||||||
|
end select damageType
|
||||||
|
|
||||||
|
end function phase_damage_C
|
||||||
|
|
||||||
|
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
!< @brief returns local part of nonlocal damage driving force
|
!< @brief returns local part of nonlocal damage driving force
|
||||||
!----------------------------------------------------------------------------------------------
|
!----------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -94,13 +94,7 @@ module subroutine phase_hooke_SandItsTangents(S, dS_dFe, dS_dFi, &
|
||||||
i, j
|
i, j
|
||||||
|
|
||||||
C = math_66toSym3333(phase_homogenizedC(ph,en))
|
C = math_66toSym3333(phase_homogenizedC(ph,en))
|
||||||
|
C = phase_damage_C(C,ph,en)
|
||||||
DegradationLoop: do d = 1, phase_NstiffnessDegradations(ph)
|
|
||||||
degradationType: select case(phase_stiffnessDegradation(d,ph))
|
|
||||||
case (STIFFNESS_DEGRADATION_damage_ID) degradationType
|
|
||||||
C = C * damage_phi(ph,en)**2
|
|
||||||
end select degradationType
|
|
||||||
enddo DegradationLoop
|
|
||||||
|
|
||||||
E = 0.5_pReal*(matmul(transpose(Fe),Fe)-math_I3) !< Green-Lagrange strain in unloaded configuration
|
E = 0.5_pReal*(matmul(transpose(Fe),Fe)-math_I3) !< Green-Lagrange strain in unloaded configuration
|
||||||
S = math_mul3333xx33(C,matmul(matmul(transpose(Fi),E),Fi)) !< 2PK stress in lattice configuration in work conjugate with GL strain pulled back to lattice configuration
|
S = math_mul3333xx33(C,matmul(matmul(transpose(Fi),E),Fi)) !< 2PK stress in lattice configuration in work conjugate with GL strain pulled back to lattice configuration
|
||||||
|
|
Loading…
Reference in New Issue