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)