tadd annotations to pressures, improve plots - 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 fd79cc4d343e7c453c80d070111e68dacbb3f1d2
(DIR) parent 7e4cc7fe4992f77525b64943c83114d632496410
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Fri, 3 Oct 2014 15:45:08 +0200
add annotations to pressures, improve plots
Diffstat:
M python/permeability-results.py | 3 ++-
M python/shear-results-forces.py | 29 ++++++++++++++++++++++-------
M python/shear-results-pressures.py | 25 +++++++++++++++++--------
3 files changed, 41 insertions(+), 16 deletions(-)
---
(DIR) diff --git a/python/permeability-results.py b/python/permeability-results.py
t@@ -12,7 +12,8 @@ import sphere
from permeabilitycalculator import *
import matplotlib.pyplot as plt
-dp_list = numpy.array([1.0e3, 2.0e3, 4.0e3, 10.0e3, 20.0e3, 40.0e3])
+#dp_list = numpy.array([1.0e3, 2.0e3, 4.0e3, 10.0e3, 20.0e3, 40.0e3])
+dp_list = numpy.array([1.0e3, 2.0e3, 4.0e3, 10.0e3])
cvals = [1.0, 0.1, 0.01]
c_phi = 1.0
(DIR) diff --git a/python/shear-results-forces.py b/python/shear-results-forces.py
t@@ -23,8 +23,9 @@ sigma0 = float(sys.argv[1])
c_grad_p = float(sys.argv[2])
c_phi = 1.0
-sid = 'shear-sigma0=' + str(sigma0) + '-c_phi=' + \
- str(c_phi) + '-c_grad_p=' + str(c_grad_p) + '-hi_mu-lo_visc'
+#sid = 'shear-sigma0=' + str(sigma0) + '-c_phi=' + \
+# str(c_phi) + '-c_grad_p=' + str(c_grad_p) + '-hi_mu-lo_visc'
+sid = 'halfshear-sigma0=' + str(sigma0) + '-c=' + str(c_grad_p) + '-shear'
sim = sphere.sim(sid, fluid=True)
sim.readfirst(verbose=False)
t@@ -112,12 +113,14 @@ for step_str in steps:
print(sid + ' not found')
s += 1
+
#fig = plt.figure(figsize=(8,4*(len(steps))+1))
fig = plt.figure(figsize=(8,5*(len(steps))+1))
ax = []
for s in numpy.arange(len(steps)):
+
ax.append(plt.subplot(len(steps)*100 + 31 + s*3))
ax.append(plt.subplot(len(steps)*100 + 32 + s*3, sharey=ax[s*4+0]))
ax.append(plt.subplot(len(steps)*100 + 33 + s*3, sharey=ax[s*4+0]))
t@@ -126,9 +129,19 @@ for s in numpy.arange(len(steps)):
ax[s*4+0].plot(xdisp[s], zpos_p[s], ',', color = '#888888')
ax[s*4+0].plot(xdisp_mean[s], zpos_c[s], color = 'k')
- ax[s*4+1].plot(f_pf[s], zpos_p[s], ',', color = '#888888')
- ax[s*4+1].plot(f_pf_mean[s], zpos_c[s], color = 'k')
- ax[s*4+1].plot([0.0, 0.0], [0.0, sim.L[2]], '--', color='k')
+ # remove particles with 0.0 pressure force
+ I = numpy.nonzero(numpy.abs(f_pf[s]) > .01)
+ f_pf_nonzero = f_pf[s][I]
+ zpos_p_nonzero = zpos_p[s][I]
+ I = numpy.nonzero(numpy.abs(f_pf_mean[s]) > .01)
+ f_pf_mean_nonzero = f_pf_mean[s][I]
+ zpos_c_nonzero = zpos_c[s][I]
+
+ #ax[s*4+1].plot(f_pf[s], zpos_p[s], ',', color = '#888888')
+ ax[s*4+1].plot(f_pf_nonzero, zpos_p_nonzero, ',', color = '#888888')
+ #ax[s*4+1].plot(f_pf_mean[s][1:-2], zpos_c[s][1:-2], color = 'k')
+ ax[s*4+1].plot(f_pf_mean_nonzero, zpos_c_nonzero, color = 'k')
+ #ax[s*4+1].plot([0.0, 0.0], [0.0, sim.L[2]], '--', color='k')
#ax[s*4+2].plot(dev_p[s]/1000.0, zpos_c[s], 'k')
ax[s*4+2].plot(phi_bar[s,1:], zpos_c[s,1:], '-k', linewidth=3)
t@@ -142,6 +155,7 @@ for s in numpy.arange(len(steps)):
max_z = numpy.max(zpos_p)
ax[s*4+0].set_ylim([0, max_z])
+ ax[s*4+1].set_xlim([0.15, 0.46])
ax[s*4+1].set_ylim([0, max_z])
ax[s*4+2].set_ylim([0, max_z])
#plt.plot(dpdz[c], K[c], 'o-', label='$c$ = %.2f' % (cvals[c]))
t@@ -181,8 +195,9 @@ for s in numpy.arange(len(steps)):
transform=ax[s*4+0].transAxes)
#ax[s*4+0].set_title(strain_str)
- #ax1.grid()
- #ax2.grid()
+ ax[s*4+0].grid()
+ ax[s*4+1].grid()
+ ax[s*4+2].grid()
#ax1.legend(loc='lower right', prop={'size':18})
#ax2.legend(loc='lower right', prop={'size':18})
(DIR) diff --git a/python/shear-results-pressures.py b/python/shear-results-pressures.py
t@@ -63,23 +63,32 @@ min_p = numpy.min(dev_pres)/1000.0
#max_p = numpy.min(dev_pres)
max_p = numpy.abs(min_p)
-cmap = matplotlib.colors.ListedColormap(['b', 'w', 'r'])
-bounds = [min_p, 0, max_p]
-norm = matplotlib.colors.BoundaryNorm(bounds, cmap.N)
+#cmap = matplotlib.colors.ListedColormap(['b', 'w', 'r'])
+#bounds = [min_p, 0, max_p]
+#norm = matplotlib.colors.BoundaryNorm(bounds, cmap.N)
#ax1 = plt.subplot(311)
ax1 = plt.subplot(111)
-im1 = ax1.pcolormesh(shear_strain, zpos_c, dev_pres/1000.0, rasterized=True,
- cmap=cmap, norm=norm)
+#im1 = ax1.pcolormesh(shear_strain, zpos_c, dev_pres/1000.0, rasterized=True,
+# cmap=cmap, norm=norm)
+im1 = ax1.pcolormesh(shear_strain, zpos_c, dev_pres/1000.0, vmin=min_p,
+ vmax=max_p, rasterized=True)
ax1.set_xlim([0, shear_strain[-1]])
ax1.set_ylim([zpos_c[0], sim.w_x[0]])
ax1.set_xlabel('Shear strain $\\gamma$ [-]')
ax1.set_ylabel('Vertical position $z$ [m]')
-#cb1 = plt.colorbar()
-cb1 = plt.colorbar(im1, cmap=cmap, norm=norm)
-cb1.set_label('Deviatoric pressure $p_\\text{f}$ [kPa]')
+cb1 = plt.colorbar(im1)
+#cb1 = plt.colorbar(im1, cmap=cmap, norm=norm)
+cb1.set_label('$p_\\text{f} - p^\\text{hyd}_\\text{f}$ [kPa]')
cb1.solids.set_rasterized(True)
+# annotate plot
+ax1.text(0.02, 0.15, 'compressive',
+ bbox={'facecolor':'white', 'alpha':0.5, 'pad':10})
+
+ax1.text(0.12, 0.25, 'dilative',
+ bbox={'facecolor':'white', 'alpha':0.5, 'pad':10})
+
'''
ax2 = plt.subplot(312)
im2 = ax2.pcolormesh(shear_strain, zpos_c, pres/1000.0, rasterized=True)