tfix lowermost particles - 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 f2c74457b53b987cdd2f6687f33a7d861d7644c8
 (DIR) parent 6d43d86505ba38caf0de020525c3c955d73f31d4
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Sun, 22 Jun 2014 18:20:25 +0200
       
       fix lowermost particles
       
       Diffstat:
         M python/shortening.py                |      18 ++++++++++++------
         M python/sphere.py                    |      12 ++++--------
       
       2 files changed, 16 insertions(+), 14 deletions(-)
       ---
 (DIR) diff --git a/python/shortening.py b/python/shortening.py
       t@@ -108,7 +108,7 @@ sim = sphere.sim('shortening-relaxation', nw=1)
        sim.readlast()
        sim.sid = 'shortening'
        sim.cleanup()
       -sim.initTemporal(current=0.0, total=5.0, file_dt = 0.01)
       +sim.initTemporal(current=0.0, total=5.0, file_dt = 0.01, epsilon=0.07)
        
        # set colors again
        y_min = numpy.min(sim.x[:,1])
       t@@ -133,14 +133,20 @@ for i in range(sim.np):
            iz = numpy.floor((sim.x[i,2] - z_min)/(z_max/color_nz))
            sim.color[i] = (-1)**iy + (-1)**iz + 1
        
       -sim.normalBoundariesXY()
       +# fix lowest plane of particles
       +I = numpy.nonzero(sim.x[:,1] < 1.5*numpy.mean(sim.radius))
       +sim.fixvel[I] = 1
       +sim.color[I] = 0
       +
       +#sim.normalBoundariesXY()
       +sim.periodicBoundariesX()
        sim.zeroKinematics()
        
        # Wall parameters
       -sim.mu_ws[0] = 0.0
       -sim.mu_wd[0] = 0.0
       -sim.gamma_wn[0] = 0.0
       -sim.gamma_wt[0] = 0.0
       +sim.mu_ws[0] = 0.5
       +sim.mu_wd[0] = 0.5
       +sim.gamma_wn[0] = 1.0e2
       +sim.gamma_wt[0] = 1.0e2
        
        # Particle parameters
        sim.mu_s[0] = 0.5
 (DIR) diff --git a/python/sphere.py b/python/sphere.py
       t@@ -2379,21 +2379,17 @@ class sim:
                        + "simulating particles may produce instabilities.")
                else:
                    r_min = numpy.min(self.radius)
       -
       -            # Radjaii et al 2011
                    m_min = self.rho * 4.0/3.0*numpy.pi*r_min**3
                    k_max = numpy.max([self.k_n[:], self.k_t[:]])
       +
       +            # Radjaii et al 2011
                    self.time_dt[0] = epsilon/(numpy.sqrt(k_max/m_min))
        
                    # Zhang and Campbell, 1992
       -            #self.time_dt[0] = 0.075 *\
       -                    #math.sqrt((V_sphere(r_min) * self.rho[0]) \
       -                    #/ numpy.amax([self.k_n[:], self.k_t[:]]) )
       +            #self.time_dt[0] = 0.075*math.sqrt(m_min/k_max)
        
                    # Computational time step (O'Sullivan et al, 2003)
       -            #self.time_dt[0] = 0.17 * \
       -                    #math.sqrt((4.0/3.0 * math.pi * r_min**3 * self.rho[0]) \
       -                    #/ numpy.amax([self.k_n[:], self.k_t[:]]) )
       +            #self.time_dt[0] = 0.17*math.sqrt(m_min/k_max)
        
                # Check numerical stability of the fluid phase, by criteria derived by
                # von Neumann stability analysis of the diffusion and advection terms