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() | |
+''' |