tadd gravity flag - 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 6cd635fc47e08ae3bfa52306235f5a5bf94ba36a
 (DIR) parent 5702a349deb400506e747ef13fe3b2f18a67e593
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Fri, 29 Aug 2014 15:23:59 +0200
       
       add gravity flag
       
       Diffstat:
         M python/capillary-cohesion.py        |      15 ++++++++++++++-
         M python/capillary-cohesion.sh        |       5 +++--
       
       2 files changed, 17 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/python/capillary-cohesion.py b/python/capillary-cohesion.py
       t@@ -4,10 +4,13 @@
        # desk.
        
        # start with
       -# $ python capillary-cohesion.py <DEVICE> <COHESION>
       +# $ python capillary-cohesion.py <DEVICE> <COHESION> <GRAVITY>
        # where DEVICE specifies the index of the GPU (0 is the most common value).
        # COHESION should have the value of 0 or 1. 0 denotes a dry simulation without
        # cohesion, 1 denotes a wet simulation with capillary cohesion.
       +# GRAVITY toggles gravitational acceleration. Without it, the particles are
       +# placed in the middle of a volume. With it enabled, the particles are put on
       +# top of a flat wall.
        
        import sphere
        import numpy
       t@@ -15,6 +18,7 @@ import sys
        
        device = sys.argv[1]
        cohesion = sys.argv[2]
       +gravity = sys.argv[3]
        
        # Create packing
        sim = sphere.sim('cap-cohesion=' + str(cohesion) + '-init', np=2000)
       t@@ -39,6 +43,15 @@ sim.num[0] *= 5
        sim.num[1] *= 5
        sim.x[:,0] += 0.5*sim.L[0] - 0.5*init_lx
        sim.x[:,1] += 0.5*sim.L[1] - 0.5*init_ly
       +
       +if gravity == 0:
       +    init_lz = sim.L[2]
       +    sim.L[2] *= 5
       +    sim.num[2] *= 5
       +    sim.w_x[0] = sim.L[2]
       +    sim.x[:,2] += 0.5*sim.L[2] - 0.5*init_lz
       +    sim.g[2] = 0.0
       +
        sim.initTemporal(2.0, file_dt=0.01, epsilon=0.07)
        sim.run()
        
 (DIR) diff --git a/python/capillary-cohesion.sh b/python/capillary-cohesion.sh
       t@@ -39,8 +39,9 @@ nvidia-smi
        rm CMakeCache.txt
        cmake . && make
        cd python
       -python capillary-cohesion.py 0 0 &
       -python capillary-cohesion.py 1 1 &
       +python capillary-cohesion.py 0 0 1 &
       +python capillary-cohesion.py 1 1 1 &
       +python capillary-cohesion.py 1 1 0 &
        wait
        
        #cp $WORKDIR/output/* $ORIGDIR/output/