tadd additional fit - 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 7e337442d9b68f38a76a8f2479de8e216fd19c9c
 (DIR) parent 6588888296ad8f7e9330985e76d83c7ff05c615d
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Thu, 26 Feb 2015 10:35:19 +0100
       
       add additional fit
       
       Diffstat:
         M python/halfshear-darcy-rate-depend… |      25 +++++++++++++++++++++++++
       
       1 file changed, 25 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/python/halfshear-darcy-rate-dependence.py b/python/halfshear-darcy-rate-dependence.py
       t@@ -63,6 +63,7 @@ for sid in sids:
            shearstrain_nonzero = shearstrain[idx]
            t_nonzero = t[idx]
        
       +    ### "Critical" state fit
            # The algorithm uses the Levenberg-Marquardt algorithm through leastsq
            idxfit = numpy.nonzero((tau_nonzero/N_nonzero < 0.38) &
                    (shearstrainrate_nonzero < 0.1) &
       t@@ -74,6 +75,7 @@ for sid in sids:
            popt, pvoc = scipy.optimize.curve_fit(
                    creep_rheology, tau_nonzero[idxfit]/N_nonzero[idxfit],
                    shearstrainrate_nonzero[idxfit])
       +    print '# Critical state'
            print popt
            print pvoc
            n = popt[0] # stress exponent
       t@@ -87,6 +89,28 @@ for sid in sids:
                            100)
            strainrate_fit = friction_fit**n
        
       +    ### Consolidated state fit
       +    idxfit2 = numpy.nonzero((tau_nonzero/N_nonzero < 0.38) &
       +            (shearstrainrate_nonzero < 0.1) &
       +            ((t_nonzero > 0.0) & (t_nonzero < 3.0)))
       +    #popt, pvoc = scipy.optimize.curve_fit(
       +            #creep_rheology, tau/N, shearstrainrate)
       +    popt2, pvoc2 = scipy.optimize.curve_fit(
       +            creep_rheology, tau_nonzero[idxfit2]/N_nonzero[idxfit2],
       +            shearstrainrate_nonzero[idxfit2])
       +    print '# Consolidatet state'
       +    print popt2
       +    print pvoc2
       +    n2 = popt2[0] # stress exponent
       +
       +    friction_fit2 =\
       +            numpy.linspace(numpy.min(tau_nonzero[idxfit2]/N_nonzero[idxfit2]),
       +                    numpy.max(tau_nonzero[idxfit2]/N_nonzero[idxfit2]),
       +                    100)
       +    strainrate_fit2 = friction_fit2**n2
       +
       +
       +    ### Plotting
            fig = plt.figure(figsize=(3.5,2.5))
            ax1 = plt.subplot(111)
            #ax1.semilogy(N/1000., v)
       t@@ -103,6 +127,7 @@ for sid in sids:
                    #cmap=matplotlib.cm.get_cmap('afmhot'))
        
            ax1.plot(friction_fit, strainrate_fit)
       +    ax1.plot(friction_fit2, strainrate_fit2)
        
            ax1.annotate('$\\dot{\\gamma} = (\\tau/N)^{6.40}$',
                    xy = (friction_fit[40], strainrate_fit[40]),