tAdded uniaxialStrainRate - 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 1736587a16f7500de97a3cf3ff04eb47558a5546
(DIR) parent 9d663f08ba7d578b6b49aff96cc10fc066f49228
(HTM) Author: Anders Damsgaard <adc@geo.au.dk>
Date: Thu, 30 Aug 2012 12:47:31 +0200
Added uniaxialStrainRate
Diffstat:
M python/sphere.py | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
---
(DIR) diff --git a/python/sphere.py b/python/sphere.py
t@@ -527,7 +527,7 @@ class Spherebin:
self.w_devs[0] = 0.0
self.nw = numpy.ones(1, dtype=numpy.uint32) * 1
- # Adjust grid and upper wall for consolidation
+ # Adjust grid and upper wall for consolidation under deviatoric stress
def consolidate(self, deviatoric_stress = 10e3,
periodic = 1):
""" Setup consolidation experiment. Specify the upper wall
t@@ -552,6 +552,30 @@ class Spherebin:
self.w_devs[0] = deviatoric_stress
self.nw = numpy.ones(1, dtype=numpy.uint32) * 1
+ # Adjust grid and upper wall for consolidation under fixed upper wall velocity
+ def uniaxialStrainRate(self, wvel = -0.001,
+ periodic = 1):
+ """ Setup consolidation experiment. Specify the upper wall
+ deviatoric stress in Pascal, default value is 10 kPa.
+ """
+
+ # Compute new grid, scaled to fit max. and min. particle positions
+ z_min = numpy.min(self.x[:,2] - self.radius)
+ z_max = numpy.max(self.x[:,2] + self.radius)
+ cellsize = self.L[0] / self.num[0]
+ z_adjust = 1.1 # Overheightening of grid. 1.0 = no overheightening
+ self.num[2] = numpy.ceil((z_max-z_min)*z_adjust/cellsize)
+ self.L[2] = (z_max-z_min)*z_adjust
+
+ # Initialize upper wall
+ self.wmode[0] = 1
+ self.w_n[0,2] = -1.0
+ self.w_x[0] = self.L[2]
+ self.w_m[0] = self.rho[0] * self.np * math.pi * (cellsize/2.0)**3
+ self.w_vel[0] = wvel
+ self.w_force[0] = 0.0
+ self.nw = numpy.ones(1, dtype=numpy.uint32) * 1
+
# Adjust grid and upper wall for shear, and fix boundary particle velocities
def shear(self, deviatoric_stress = 10e3,