From 67f87486b10ec2e65560e2f7bad6c43e3e8fc1ce Mon Sep 17 00:00:00 2001 From: Luc Hantcherli Date: Fri, 6 Nov 2009 17:46:12 +0000 Subject: [PATCH] in constitutive_dislotwin.f90: in constitutive_nonlocal.f90: Derivatives of shear rates w.r.t. resolved shear stress HAVE to be positive. Computation of dgdot_dtauslip is now correct. --- code/constitutive_dislotwin.f90 | 68 +++++++++++++++++++++++++++++---- code/constitutive_nonlocal.f90 | 2 +- 2 files changed, 62 insertions(+), 8 deletions(-) diff --git a/code/constitutive_dislotwin.f90 b/code/constitutive_dislotwin.f90 index e8ffd91f0..aaa566e62 100644 --- a/code/constitutive_dislotwin.f90 +++ b/code/constitutive_dislotwin.f90 @@ -448,11 +448,12 @@ do i = 1,maxNinstance select case(constitutive_dislotwin_output(o,i)) case('edge_density', & 'dipole_density', & - 'shear_rate_slip', & 'mfp_slip', & 'resolved_stress_slip', & - 'threshold_stress_slip' & + 'threshold_stress_slip', & + 'edge_dipole_distance', & + 'stress_exponent' & ) mySize = constitutive_dislotwin_totalNslip(i) case('twin_fraction', & @@ -923,7 +924,7 @@ do f = 1,lattice_maxNslipFamily ! loop over all !* Derivatives of shear rates dgdot_dtauslip(j) = & - ((gdot_slip(j)*BoltzmannRatio*& + ((abs(gdot_slip(j))*BoltzmannRatio*& constitutive_dislotwin_p(myInstance)*constitutive_dislotwin_q(myInstance))/state(g,ip,el)%p(5*ns+3*nt+j))*& StressRatio_pminus1*(1-StressRatio_p)**(constitutive_dislotwin_q(myInstance)-1.0_pReal) @@ -1070,6 +1071,8 @@ do f = 1,lattice_maxNslipFamily ! loop over all (constitutive_dislotwin_burgersPerSlipSystem(f,myInstance)*state(g,ip,el)%p(4*ns+2*nt+j)) !* Dipole formation + EdgeDipMinDistance = & + constitutive_dislotwin_CEdgeDipMinDistance(myInstance)*constitutive_dislotwin_burgersPerSlipSystem(f,myInstance) if (tau_slip(j) == 0.0_pReal) then DotRhoDipFormation(j) = 0.0_pReal else @@ -1077,14 +1080,13 @@ do f = 1,lattice_maxNslipFamily ! loop over all (3.0_pReal*constitutive_dislotwin_Gmod(myInstance)*constitutive_dislotwin_burgersPerSlipSystem(f,myInstance))/& (16.0_pReal*pi*abs(tau_slip(j))) if (EdgeDipDistance(j)>state(g,ip,el)%p(4*ns+2*nt+j)) EdgeDipDistance(j)=state(g,ip,el)%p(4*ns+2*nt+j) + if (EdgeDipDistance(j)