diff --git a/src/homogenization.f90 b/src/homogenization.f90 index 3d96b007f..1f9fb2221 100644 --- a/src/homogenization.f90 +++ b/src/homogenization.f90 @@ -259,7 +259,7 @@ subroutine homogenization_mechanical_response(Delta_t,FEsolving_execIP,FEsolving NiterationMPstate = NiterationMPstate + 1 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,ce),co=1,homogenization_Nconstituents(ho))]) if (converged) then doneAndHappy = mechanical_updateState(Delta_t,homogenization_F(1:3,1:3,ce),ce) converged = all(doneAndHappy) @@ -268,7 +268,7 @@ subroutine homogenization_mechanical_response(Delta_t,FEsolving_execIP,FEsolving endif enddo convergenceLooping - converged = converged .and. all([(phase_damage_constitutive(Delta_t,co,ip,el),co=1,homogenization_Nconstituents(ho))]) + converged = converged .and. all([(phase_damage_constitutive(Delta_t,co,ce),co=1,homogenization_Nconstituents(ho))]) if (.not. converged) then if (.not. terminallyIll) print*, ' Cell ', ce, ' terminally ill' diff --git a/src/phase.f90 b/src/phase.f90 index 4d180d439..8bc797e85 100644 --- a/src/phase.f90 +++ b/src/phase.f90 @@ -228,15 +228,15 @@ module phase end function phase_thermal_constitutive - module function phase_damage_constitutive(Delta_t,co,ip,el) result(converged_) + module function phase_damage_constitutive(Delta_t,co,ce) result(converged_) real(pReal), intent(in) :: Delta_t - integer, intent(in) :: co, ip, el + integer, intent(in) :: co, ce logical :: converged_ end function phase_damage_constitutive - module function phase_mechanical_constitutive(Delta_t,co,ip,el) result(converged_) + module function phase_mechanical_constitutive(Delta_t,co,ce) result(converged_) real(pReal), intent(in) :: Delta_t - integer, intent(in) :: co, ip, el + integer, intent(in) :: co, ce logical :: converged_ end function phase_mechanical_constitutive diff --git a/src/phase_damage.f90 b/src/phase_damage.f90 index 2fa5ab9ea..e4700938f 100644 --- a/src/phase_damage.f90 +++ b/src/phase_damage.f90 @@ -127,21 +127,20 @@ end subroutine damage_init !-------------------------------------------------------------------------------------------------- !> @brief calculate stress (P) !-------------------------------------------------------------------------------------------------- -module function phase_damage_constitutive(Delta_t,co,ip,el) result(converged_) +module function phase_damage_constitutive(Delta_t,co,ce) result(converged_) real(pReal), intent(in) :: Delta_t integer, intent(in) :: & co, & - ip, & - el + ce logical :: converged_ integer :: & ph, en - ph = material_phaseID(co,(el-1)*discretization_nIPs + ip) - en = material_phaseEntry(co,(el-1)*discretization_nIPs + ip) + ph = material_phaseID(co,ce) + en = material_phaseEntry(co,ce) converged_ = .not. integrateDamageState(Delta_t,ph,en) diff --git a/src/phase_mechanical.f90 b/src/phase_mechanical.f90 index 88e98cc2e..655f53ad8 100644 --- a/src/phase_mechanical.f90 +++ b/src/phase_mechanical.f90 @@ -414,8 +414,6 @@ function integrateStress(F,subFp0,subFi0,Delta_t,en,ph) result(broken) ierr, & ! error indicator for LAPACK o, & p, & - ph, & - en, & jacoCounterLp, & jacoCounterLi ! counters to check for Jacobian update logical :: error,broken @@ -583,8 +581,6 @@ function integrateStateFPI(F_0,F,subFp0,subFi0,subState0,Delta_t,en,ph) result(b integer :: & NiterationState, & !< number of iterations in state loop - ph, & - en, & sizeDotState real(pReal) :: & zeta @@ -674,8 +670,6 @@ function integrateStateEuler(F_0,F,subFp0,subFi0,subState0,Delta_t,en,ph) result real(pReal), dimension(plasticState(ph)%sizeDotState) :: & dotState integer :: & - ph, & - en, & sizeDotState @@ -711,8 +705,6 @@ function integrateStateAdaptiveEuler(F_0,F,subFp0,subFi0,subState0,Delta_t,en,ph broken integer :: & - ph, & - en, & sizeDotState real(pReal), dimension(plasticState(ph)%sizeDotState) :: & r, & @@ -829,8 +821,6 @@ function integrateStateRK(F_0,F,subFp0,subFi0,subState0,Delta_t,en,ph,A,B,C,DB) integer :: & stage, & ! stage index in integration stage loop n, & - ph, & - en, & sizeDotState real(pReal), dimension(plasticState(ph)%sizeDotState) :: & dotState @@ -985,13 +975,12 @@ end subroutine mechanical_forward !-------------------------------------------------------------------------------------------------- !> @brief calculate stress (P) !-------------------------------------------------------------------------------------------------- -module function phase_mechanical_constitutive(Delta_t,co,ip,el) result(converged_) +module function phase_mechanical_constitutive(Delta_t,co,ce) result(converged_) real(pReal), intent(in) :: Delta_t integer, intent(in) :: & co, & - ip, & - el + ce logical :: converged_ real(pReal) :: & @@ -1010,6 +999,8 @@ module function phase_mechanical_constitutive(Delta_t,co,ip,el) result(converged real(pReal), dimension(:), allocatable :: subState0 + ph = material_phaseID(co,ce) + en = material_phaseEntry(co,ce) sizeDotState = plasticState(ph)%sizeDotState subLi0 = phase_mechanical_Li0(ph)%data(1:3,1:3,en)