Introduction
Introduction Statistics Contact Development Disclaimer Help
timprove shearStrain function - sphere - GPU-based 3D discrete element method a…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit 9f8b77e89f90aa53dc6c0c2cfe65c417e62ef1a6
parent 4655081fc0453fd7a0e469a1b199e67687920dc4
Author: Anders Damsgaard <[email protected]>
Date: Tue, 17 Feb 2015 14:24:06 +0100
improve shearStrain function
use current displacement of fixed particles instead of multiplying the current
velocities
Diffstat:
M python/sphere.py | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
---
diff --git a/python/sphere.py b/python/sphere.py
t@@ -4210,7 +4210,9 @@ class sim:
w_x0 = self.w_x[0]
# Displacement of the upper, fixed particles in the shear direction
- xdisp = self.time_current[0] * self.shearVel()
+ #xdisp = self.time_current[0] * self.shearVel()
+ fixvel = numpy.nonzero(self.fixvel > 0.0)
+ xdisp = numpy.max(self.xyzsum[fixvel,0])
# Return shear strain
return xdisp/w_x0
t@@ -6088,6 +6090,7 @@ class sim:
tau = numpy.empty(sb.status())
N = numpy.empty(sb.status())
v = numpy.empty(sb.status())
+ shearstrain = numpy.empty(sb.status())
for i in numpy.arange(sb.status()):
sb.readstep(i+1, verbose=False)
#tau = sb.shearStress()
t@@ -6095,24 +6098,38 @@ class sim:
#tau[i] = sb.shearStress()[0] # measured shear stress along x
N[i] = sb.currentNormalStress() # defined normal stress
v[i] = sb.shearVel()
+ shearstrain[i] = sb.shearStrain()
# remove nonzero sliding velocities and their associated values
idx = numpy.nonzero(v)
v_nonzero = v[idx]
tau_nonzero = tau[idx]
N_nonzero = N[idx]
+ shearstrain_nonzero = shearstrain[idx]
ax1 = plt.subplot(111)
#ax1.semilogy(N/1000., v)
#ax1.semilogy(tau_nonzero/N_nonzero, v_nonzero, '+k')
#ax1.plot(tau/N, v, '.')
- ax1.scatter(tau_nonzero/N_nonzero, v_nonzero, c=idx)
+ friction = tau_nonzero/N_nonzero
+ CS = ax1.scatter(friction, v_nonzero, c=shearstrain_nonzero,
+ linewidth=0)
ax1.set_yscale('log')
+ x_min = numpy.floor(numpy.min(friction))
+ x_max = numpy.ceil(numpy.max(friction))
+ ax1.set_xlim([x_min, x_max])
+ y_min = numpy.min(v_nonzero)*0.5
+ y_max = numpy.max(v_nonzero)*2.0
+ ax1.set_ylim([y_min, y_max])
+
+ plt.colorbar(CS)
#ax1.set_xlabel('Effective normal stress [kPa]')
ax1.set_xlabel('Friction $\\tau/N$ [-]')
ax1.set_ylabel('Shear velocity [m/s]')
+
+
'''
ax2 = plt.subplot(212)
ax2.plot(tau/N, v, '.')
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.