diff --git a/code/constitutive_nonlocal.f90 b/code/constitutive_nonlocal.f90 index be31b423a..504db8d6b 100644 --- a/code/constitutive_nonlocal.f90 +++ b/code/constitutive_nonlocal.f90 @@ -2406,7 +2406,7 @@ if (.not. phase_localPlasticity(material_phase(g,ip,el))) then c = (t + 1_pInt) / 2 topp = t + mod(t,2_pInt) - mod(t+1_pInt,2_pInt) if (neighboring_v(s,t) * math_mul3x3(m(1:3,s,t), normal_neighbor2me) > 0.0_pReal & ! flux from my neighbor to me == entering flux for me - .and. v(s,t) * neighboring_v(s,t) >= 0.0_pReal ) then ! ... only if no sign change in flux density + .and. v(s,t) * neighboring_v(s,t) > 0.0_pReal ) then ! ... only if no sign change in flux density lineLength = neighboring_rhoSgl(s,t) * neighboring_v(s,t) * math_mul3x3(m(1:3,s,t), normal_neighbor2me) * area ! positive line length that wants to enter through this interface where (constitutive_nonlocal_compatibility(c,1_pInt:ns,s,n,ip,el) > 0.0_pReal) & ! positive compatibility... rhoDotFlux(1_pInt:ns,t) = rhoDotFlux(1_pInt:ns,t) + lineLength / mesh_ipVolume(ip,el) & ! ... transferring to equally signed mobile dislocation type @@ -2463,7 +2463,7 @@ if (.not. phase_localPlasticity(material_phase(g,ip,el))) then do t = 1_pInt,4_pInt c = (t + 1_pInt) / 2_pInt if (vMe(s,t) * math_mul3x3(m(1:3,s,t), normal_me2neighbor) > 0.0_pReal ) then ! flux from me to my neighbor == leaving flux for me (might also be a pure flux from my mobile density to dead density if interface not at all transmissive) - if (vMe(s,t) * neighboring_v(s,t) >= 0.0_pReal) then ! no sign change in flux density + if (vMe(s,t) * neighboring_v(s,t) > 0.0_pReal) then ! no sign change in flux density transmissivity = sum(constitutive_nonlocal_compatibility(c,1_pInt:ns,s,n,ip,el)**2.0_pReal) ! overall transmissivity from this slip system to my neighbor else ! sign change in flux density means sign change in stress which does not allow for dislocations to arive at the neighbor transmissivity = 0.0_pReal