| tadded dampening - sphere - GPU-based 3D discrete element method algorithm with… | |
| git clone git://src.adamsgaard.dk/sphere | |
| Log | |
| Files | |
| Refs | |
| LICENSE | |
| --- | |
| commit 3541524c4cd9b0c3c474232ca6bb9e469e5b5546 | |
| parent d9bcb826a7b9d4cbf74c8b0afc00bcd89829e23f | |
| Author: Anders Damsgaard <[email protected]> | |
| Date: Thu, 19 Jun 2014 14:58:30 +0200 | |
| added dampening | |
| Diffstat: | |
| M python/shortening.py | 62 +++++++++++++++++++++--------… | |
| 1 file changed, 43 insertions(+), 19 deletions(-) | |
| --- | |
| diff --git a/python/shortening.py b/python/shortening.py | |
| t@@ -8,25 +8,25 @@ cube.adjustUpperWall(z_adjust=1.0) | |
| # 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, 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], | |
| - [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,13], | |
| - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12], | |
| - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,11,11,11,11,11], | |
| - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10,10,10,10,10,10], | |
| - [9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9], | |
| - [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8], | |
| - [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], | |
| - [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6], | |
| - [5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5], | |
| - [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], | |
| - [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3], | |
| - [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], | |
| - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 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, 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], | |
| + [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2], | |
| + [ 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, 2, 2, 2, 2, 2, 2, 2], | |
| + [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], | |
| + [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], | |
| + [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], | |
| + [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], | |
| + [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], | |
| + [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], | |
| + [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], | |
| + [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2], | |
| + [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] | |
| )) | |
| # World dimensions and cube grid | |
| t@@ -69,6 +69,7 @@ sim.x[:,2] = sim.x[:,2] - min_z | |
| sim.defineWorldBoundaries(L=[Lx, Lz*3, Ly]) | |
| sim.k_t[0] = 2.0/3.0*sim.k_n[0] | |
| +sim.cleanup() | |
| sim.writeVTK() | |
| print(sim.np[0]) | |
| t@@ -81,6 +82,14 @@ sim.g[0] = 0 | |
| sim.g[1] = -9.81 | |
| sim.g[2] = 0 | |
| +sim.gamma_wn[0] = 1.0e4 | |
| +sim.mu_ws[0] = 0.0 | |
| +sim.mu_wd[0] = 0.0 | |
| + | |
| +sim.gamma_n[0] = 1.0e2 | |
| +sim.mu_s[0] = 0.0 | |
| +sim.mu_d[0] = 0.0 | |
| + | |
| sim.periodicBoundariesX() | |
| sim.uniaxialStrainRate(wvel = 0.0) | |
| t@@ -93,12 +102,26 @@ sim.run() | |
| sim.writeVTKall() | |
| +''' | |
| ## Shortening | |
| 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) | |
| +# set colors again | |
| +color_ny = 6 | |
| +y_max = numpy.max(sim.x[:,1]) | |
| +color_dy = y_max/color_ny | |
| +color_y = numpy.arange(0.0, y_max, ny) | |
| +for i in range(ny-1): | |
| + I = numpy.nonzero((sim.x[:,1] >= color_y[i]) & (sim.x[:,1] <= color_y[i+1]… | |
| + sim.color[I] = i%2 + 1 | |
| + | |
| +sim.mu_s[0] = 0.5 | |
| +sim.mu_d[0] = 0.5 | |
| + | |
| # push down upper wall | |
| compressional_strain = 0.5 | |
| sim.uniaxialStrainRate(wvel = -compressional_strain*Lx/sim.time_total[0]) | |
| t@@ -106,3 +129,4 @@ sim.uniaxialStrainRate(wvel = -compressional_strain*Lx/sim… | |
| sim.run(dry=True) | |
| sim.run() | |
| sim.writeVTKall() | |
| +''' |