tadd method to visualize sediment rate dependence - sphere - GPU-based 3D discrete element method algorithm with optional fluid coupling
(HTM) git clone git://src.adamsgaard.dk/sphere
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
(DIR) commit 418246d1ed3a323dae340566ab6c24e0b1ec4ad9
(DIR) parent f8229089d0385e01a20cca9f20fdd4fc4afaef88
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Tue, 17 Feb 2015 13:06:33 +0100
add method to visualize sediment rate dependence
Diffstat:
M python/sphere.py | 38 +++++++++++++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/python/sphere.py b/python/sphere.py
t@@ -5472,7 +5472,7 @@ class sim:
return force/(self.L[0]*self.L[1])
- def visualize(self, method = 'energy', savefig = True, outformat = 'png',
+ def visualize(self, method='energy', savefig=True, outformat='png',
pickle=False, xlim=False):
'''
Visualize output from the simulation, where the temporal progress is
t@@ -5482,7 +5482,7 @@ class sim:
:param method: The type of plot to render. Possible values are 'energy',
'walls', 'triaxial', 'mean-fluid-pressure', 'fluid-pressure',
- 'shear', 'shear-displacement', 'porosity'
+ 'shear', 'shear-displacement', 'porosity', 'rate-dependence'
:type method: str
:param savefig: Save the image instead of showing it on screen
:type savefig: bool
t@@ -6083,6 +6083,40 @@ class sim:
fig.tight_layout()
plt.subplots_adjust(hspace=0.05)
+ elif method == 'rate-dependence':
+
+ tau = numpy.empty(sb.status())
+ N = numpy.empty(sb.status())
+ v = numpy.empty(sb.status())
+ for i in numpy.arange(sb.status()):
+ sb.readstep(i+1, verbose=False)
+ #tau = sb.shearStress()
+ tau[i] = sb.w_tau_x # defined shear stress
+ #tau[i] = sb.shearStress()[0] # measured shear stress along x
+ N[i] = sb.currentNormalStress() # defined normal stress
+ v[i] = sb.shearVel()
+
+ # remove nonzero sliding velocities and their associated values
+ idx = numpy.nonzero(v)
+ v_nonzero = v[idx]
+ tau_nonzero = tau[idx]
+ N_nonzero = N[idx]
+
+ ax1 = plt.subplot(111)
+ #ax1.semilogy(N/1000., v)
+ ax1.semilogy(tau_nonzero/N_nonzero, v_nonzero, '.')
+ #ax1.plot(tau/N, v, '.')
+ #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, '.')
+ ax1.set_xlabel('Friction $\\tau/N$ [-]')
+ ax1.set_ylabel('Shear velocity [m/s]')
+ '''
+
elif method == 'mean-fluid-pressure':
# Read pressure values from simulation binaries