tadd coloring - 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 c187341cc547490c3de9c3397af82b2893e0d1d4
(DIR) parent 6d7378e8949c392dece9dbb1aec3d30bf8ef6c96
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Thu, 19 Jun 2014 11:15:23 +0200
add coloring
Diffstat:
M python/shortening.py | 42 ++++++++++++++++++-------------
1 file changed, 25 insertions(+), 17 deletions(-)
---
(DIR) diff --git a/python/shortening.py b/python/shortening.py
t@@ -14,18 +14,18 @@ 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, 1],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
- [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,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]
))
t@@ -40,7 +40,7 @@ Lx = dx*nx
Ly = dy*ny
Lz = dz*nz
-sim = sphere.sim('shortening', nw=0)
+sim = sphere.sim('shortening-relaxation', nw=0)
# insert particles into each cube in 90 degree CCW rotated coordinate system
# around y
t@@ -56,10 +56,17 @@ for z in range(nz):
pos = [ cube.x[i,0] + x*dx,
Ly - ((dz - cube.x[i,2]) + z*dz),
cube.x[i,1] + y*dy ]
- sim.addParticle(pos, radius=cube.radius[i])
+ sim.addParticle(pos, radius=cube.radius[i], color=grid[z,y])
-sim.defineWorldBoundaries(L=[Lx, Lz*3, Ly])
+# move to y=0
+min_y = numpy.min(sim.x[:,1] - sim.radius[:])
+sim.x[:,1] = sim.x[:,1] - min_y
+
+# move to z=0
+min_z = numpy.min(sim.x[:,2] - sim.radius[:])
+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.writeVTK()
t@@ -78,7 +85,7 @@ sim.periodicBoundariesX()
sim.uniaxialStrainRate(wvel = 0.0)
# Set duration of simulation, automatically determine timestep, etc.
-sim.initTemporal(total=3.0, file_dt = 0.001)
+sim.initTemporal(total=3.0, file_dt = 0.01)
sim.zeroKinematics()
sim.run(dry=True)
t@@ -87,8 +94,9 @@ sim.writeVTKall()
## Shortening
-sim = sphere.sim('shortening', nw=1)
+sim = sphere.sim('shortening-relaxation', nw=1)
sim.readlast()
+sim.sid = 'shortening'
sim.initTemporal(current=0.0, total=5.0, file_dt = 0.01)
# push down upper wall