tadd scaling - 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 c2fbc76fd859097a117a2743bc56c7bc4fbff74d
 (DIR) parent 21f1894e7c4390b1b3c1856bd7510ecda586c1e3
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Mon,  1 Sep 2014 10:57:33 +0200
       
       add scaling
       
       Diffstat:
         M python/capillary-cohesion2.py       |      35 +++++++++++++++++++------------
       
       1 file changed, 22 insertions(+), 13 deletions(-)
       ---
 (DIR) diff --git a/python/capillary-cohesion2.py b/python/capillary-cohesion2.py
       t@@ -23,22 +23,29 @@ cube = sphere.sim('cube-init')
        cube.readlast()
        cube.adjustUpperWall(z_adjust=1.0)
        
       +# shrink particles to new mean radius and resize domain
       +r_mean = 0.001
       +r_mean_old = numpy.mean(cube.radius)
       +scale_fractor = r_mean/r_mean_old
       +cube.radius *= scale_factor
       +cube.L *= scale_factor
       +
        # Fill out grid with cubic packages
        grid = numpy.array((
       -        [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0],
       -        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0]))
       +        [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0],
       +        [ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0]))
        
        # World dimensions and cube grid
       -nx = 1                # horizontal (thickness) cubes
       -ny = grid.shape[1]    # horizontal cubes
       +nx = grid.shape[1]    # horizontal cubes
       +ny = 1
        nz = grid.shape[0]    # vertical cubes
        dx = cube.L[0]
        dy = cube.L[1]
       t@@ -53,7 +60,7 @@ for z in range(nz):
            for y in range(ny):
                for x in range(nx):
        
       -            if (grid[z,y] == 0):
       +            if (grid[x,z] == 0):
                        continue # skip to next iteration
        
                    for i in range(cube.np):
       t@@ -65,6 +72,8 @@ for z in range(nz):
        
        sim.checkerboardColors()
        sim.defaultParams(capillaryCohesion=cohesion)
       +sim.k_n[0] = 1.0e6
       +sim.k_t[0] = 1.0e6
        sim.g[2] = -10.0
        sim.run(device=device)