From ad014d40be2d355ef73d75f538db3631d3a620a9 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Mon, 16 Mar 2020 16:41:55 +0100 Subject: [PATCH] vectorized --- src/constitutive_plastic_nonlocal.f90 | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/constitutive_plastic_nonlocal.f90 b/src/constitutive_plastic_nonlocal.f90 index 1bc592c73..99a7a499b 100644 --- a/src/constitutive_plastic_nonlocal.f90 +++ b/src/constitutive_plastic_nonlocal.f90 @@ -638,7 +638,6 @@ module subroutine plastic_nonlocal_dependentState(F, Fp, ip, el) n real(pReal) :: & FVsize, & - correction, & nRealNeighbors ! number of really existing neighbors integer, dimension(2) :: & neighbors @@ -668,7 +667,6 @@ module subroutine plastic_nonlocal_dependentState(F, Fp, ip, el) real(pReal), dimension(totalNslip(phase_plasticityInstance(material_phaseAt(1,el))), & totalNslip(phase_plasticityInstance(material_phaseAt(1,el)))) :: & myInteractionMatrix ! corrected slip interaction matrix - real(pReal), dimension(totalNslip(phase_plasticityInstance(material_phaseAt(1,el))),nIPneighbors) :: & rho_edg_delta_neighbor, & rho_scr_delta_neighbor @@ -695,13 +693,11 @@ module subroutine plastic_nonlocal_dependentState(F, Fp, ip, el) ! coefficients are corrected for the line tension effect ! (see Kubin,Devincre,Hoc; 2008; Modeling dislocation storage rates and mean free paths in face-centered cubic crystals) if (any(lattice_structure(material_phaseAt(1,el)) == [LATTICE_bcc_ID,LATTICE_fcc_ID])) then - do s = 1,ns - correction = ( 1.0_pReal - prm%linetensionEffect & - + prm%linetensionEffect & - * log(0.35_pReal * prm%burgers(s) * sqrt(max(stt%rho_forest(s,of),prm%significantRho))) & - / log(0.35_pReal * prm%burgers(s) * 1e6_pReal)) ** 2.0_pReal - myInteractionMatrix(:,s) = correction * prm%interactionSlipSlip(:,s) - enddo + myInteractionMatrix = prm%interactionSlipSlip & + * transpose(spread(( 1.0_pReal - prm%linetensionEffect & + + prm%linetensionEffect & + * log(0.35_pReal * prm%burgers * sqrt(max(stt%rho_forest(:,of),prm%significantRho))) & + / log(0.35_pReal * prm%burgers * 1e6_pReal))** 2.0_pReal,2,ns)) else myInteractionMatrix = prm%interactionSlipSlip endif