better have different physics separated
This commit is contained in:
parent
f9edeb40a5
commit
c109d5a37b
|
@ -233,7 +233,7 @@ end subroutine homogenization_init
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine homogenization_mechanical_response(Delta_t,FEsolving_execIP,FEsolving_execElem)
|
subroutine homogenization_mechanical_response(Delta_t,FEsolving_execIP,FEsolving_execElem)
|
||||||
|
|
||||||
real(pReal), intent(in) :: Delta_t !< time increment
|
real(pReal), intent(in) :: Delta_t !< time increment
|
||||||
integer, dimension(2), intent(in) :: FEsolving_execElem, FEsolving_execIP
|
integer, dimension(2), intent(in) :: FEsolving_execElem, FEsolving_execIP
|
||||||
integer :: &
|
integer :: &
|
||||||
NiterationMPstate, &
|
NiterationMPstate, &
|
||||||
|
@ -269,7 +269,7 @@ subroutine homogenization_mechanical_response(Delta_t,FEsolving_execIP,FEsolving
|
||||||
|
|
||||||
call mechanical_partition(homogenization_F(1:3,1:3,ce),ce)
|
call mechanical_partition(homogenization_F(1:3,1:3,ce),ce)
|
||||||
converged = all([(phase_mechanical_constitutive(Delta_t,co,ip,el),co=1,homogenization_Nconstituents(ho))])
|
converged = all([(phase_mechanical_constitutive(Delta_t,co,ip,el),co=1,homogenization_Nconstituents(ho))])
|
||||||
|
converged = converged .and. all([(phase_damage_constitutive(Delta_t,co,ip,el),co=1,homogenization_Nconstituents(ho))])
|
||||||
if (converged) then
|
if (converged) then
|
||||||
doneAndHappy = mechanical_updateState(Delta_t,homogenization_F(1:3,1:3,ce),ce)
|
doneAndHappy = mechanical_updateState(Delta_t,homogenization_F(1:3,1:3,ce),ce)
|
||||||
converged = all(doneAndHappy)
|
converged = all(doneAndHappy)
|
||||||
|
|
|
@ -221,13 +221,11 @@ module phase
|
||||||
|
|
||||||
end function phase_thermal_constitutive
|
end function phase_thermal_constitutive
|
||||||
|
|
||||||
module function integrateDamageState(Delta_t,co,ce) result(broken)
|
module function phase_damage_constitutive(Delta_t,co,ip,el) result(converged_)
|
||||||
real(pReal), intent(in) :: Delta_t
|
real(pReal), intent(in) :: Delta_t
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: co, ip, el
|
||||||
ce, &
|
logical :: converged_
|
||||||
co
|
end function phase_damage_constitutive
|
||||||
logical :: broken
|
|
||||||
end function integrateDamageState
|
|
||||||
|
|
||||||
module function phase_mechanical_constitutive(Delta_t,co,ip,el) result(converged_)
|
module function phase_mechanical_constitutive(Delta_t,co,ip,el) result(converged_)
|
||||||
real(pReal), intent(in) :: Delta_t
|
real(pReal), intent(in) :: Delta_t
|
||||||
|
@ -321,12 +319,12 @@ module phase
|
||||||
crystallite_init, &
|
crystallite_init, &
|
||||||
phase_mechanical_constitutive, &
|
phase_mechanical_constitutive, &
|
||||||
phase_thermal_constitutive, &
|
phase_thermal_constitutive, &
|
||||||
|
phase_damage_constitutive, &
|
||||||
phase_mechanical_dPdF, &
|
phase_mechanical_dPdF, &
|
||||||
crystallite_orientations, &
|
crystallite_orientations, &
|
||||||
crystallite_push33ToRef, &
|
crystallite_push33ToRef, &
|
||||||
phase_restartWrite, &
|
phase_restartWrite, &
|
||||||
phase_restartRead, &
|
phase_restartRead, &
|
||||||
integrateDamageState, &
|
|
||||||
phase_thermal_setField, &
|
phase_thermal_setField, &
|
||||||
phase_set_phi, &
|
phase_set_phi, &
|
||||||
phase_P, &
|
phase_P, &
|
||||||
|
|
|
@ -125,6 +125,27 @@ module subroutine damage_init
|
||||||
end subroutine damage_init
|
end subroutine damage_init
|
||||||
|
|
||||||
|
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
!> @brief calculate stress (P)
|
||||||
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
module function phase_damage_constitutive(Delta_t,co,ip,el) result(converged_)
|
||||||
|
|
||||||
|
real(pReal), intent(in) :: Delta_t
|
||||||
|
integer, intent(in) :: &
|
||||||
|
co, &
|
||||||
|
ip, &
|
||||||
|
el
|
||||||
|
logical :: converged_
|
||||||
|
|
||||||
|
integer :: &
|
||||||
|
ph, en
|
||||||
|
|
||||||
|
|
||||||
|
converged_ = .not. integrateDamageState(Delta_t,co,(el-1)*discretization_nIPs + ip)
|
||||||
|
|
||||||
|
end function phase_damage_constitutive
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
!> @brief returns the degraded/modified elasticity matrix
|
!> @brief returns the degraded/modified elasticity matrix
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
@ -197,7 +218,7 @@ end function phase_f_phi
|
||||||
!> @brief integrate stress, state with adaptive 1st order explicit Euler method
|
!> @brief integrate stress, state with adaptive 1st order explicit Euler method
|
||||||
!> using Fixed Point Iteration to adapt the stepsize
|
!> using Fixed Point Iteration to adapt the stepsize
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module function integrateDamageState(Delta_t,co,ce) result(broken)
|
function integrateDamageState(Delta_t,co,ce) result(broken)
|
||||||
|
|
||||||
real(pReal), intent(in) :: Delta_t
|
real(pReal), intent(in) :: Delta_t
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
|
|
|
@ -1059,8 +1059,6 @@ module function phase_mechanical_constitutive(Delta_t,co,ip,el) result(converged
|
||||||
|
|
||||||
enddo cutbackLooping
|
enddo cutbackLooping
|
||||||
|
|
||||||
converged_ = converged_ .and. .not. integrateDamageState(Delta_t,co,(el-1)*discretization_nIPs + ip)
|
|
||||||
|
|
||||||
end function phase_mechanical_constitutive
|
end function phase_mechanical_constitutive
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue