tadded readstep and addParticle - sphere - GPU-based 3D discrete element method… | |
git clone git://src.adamsgaard.dk/sphere | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 86ff0596acf9d36f1e849e72d1a6184fd6a4edcf | |
parent 3ccb9bda7a8b9d2c878695e70a743dde2d5651c3 | |
Author: Anders Damsgaard <[email protected]> | |
Date: Tue, 1 Oct 2013 19:33:01 +0200 | |
added readstep and addParticle | |
Diffstat: | |
M python/sphere.py | 46 +++++++++++++++++++++++++++++… | |
1 file changed, 46 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/python/sphere.py b/python/sphere.py | |
t@@ -207,6 +207,42 @@ class Spherebin: | |
else: | |
return 1 | |
+ def addParticle(self, | |
+ x, | |
+ radius, | |
+ xysum = numpy.zeros(1), | |
+ vel = numpy.zeros(3), | |
+ fixvel = numpy.zeros(1), | |
+ force = numpy.zeros(3), | |
+ angpos = numpy.zeros(3), | |
+ angvel = numpy.zeros(3), | |
+ torque = numpy.zeros(3), | |
+ es_dot = numpy.zeros(1), | |
+ es = numpy.zeros(1), | |
+ ev_dot = numpy.zeros(1), | |
+ ev = numpy.zeros(1), | |
+ p = numpy.zeros(1)): | |
+ ''' Add a single particle to the simulation object. The only required | |
+ parameters are the position (x), a length-three array, and the | |
+ radius (radius), a length-one array. | |
+ ''' | |
+ | |
+ self.np = self.np + 1 | |
+ | |
+ self.x = numpy.append(self.x, [x], axis=0) | |
+ self.radius = numpy.append(self.radius, radius) | |
+ self.vel = numpy.append(self.vel, [vel], axis=0) | |
+ self.fixvel = numpy.append(self.fixvel, fixvel) | |
+ self.force = numpy.append(self.force, [force], axis=0) | |
+ self.angpos = numpy.append(self.angpos, [angpos], axis=0) | |
+ self.angvel = numpy.append(self.angvel, [angvel], axis=0) | |
+ self.torque = numpy.append(self.torque, [torque], axis=0) | |
+ self.es_dot = numpy.append(self.es_dot, es_dot) | |
+ self.es = numpy.append(self.es, es) | |
+ self.ev_dot = numpy.append(self.ev_dot, ev_dot) | |
+ self.ev = numpy.append(self.ev, ev) | |
+ self.p = numpy.append(self.p, p) | |
+ | |
def readbin(self, targetbin, verbose = True, bonds = True, devsmod = True, | |
fluid = True, esysparticle = False): | |
'Reads a target SPHERE binary file' | |
t@@ -479,14 +515,21 @@ class Spherebin: | |
fh.close() | |
def readfirst(self, verbose=True): | |
+ ''' Read first output file of self.sid ''' | |
fn = "../output/{0}.output00000.bin".format(self.sid) | |
self.readbin(fn, verbose) | |
def readsecond(self, verbose=True): | |
+ ''' Read second output file of self.sid ''' | |
fn = "../output/{0}.output00001.bin".format(self.sid) | |
self.readbin(fn, verbose) | |
+ def readstep(self, step, verbose=True): | |
+ ''' Read output binary from time step 'step' from output/ folder. ''' | |
+ fn = "../output/{0}.output{1:0=5}.bin".format(self.sid, step) | |
+ | |
def readlast(self, verbose=True): | |
+ ''' Read last output binary of self.sid from output/ folder. ''' | |
lastfile = status(self.sid) | |
fn = "../output/{0}.output{1:0=5}.bin".format(self.sid, lastfile) | |
self.readbin(fn, verbose) | |
t@@ -1575,6 +1618,9 @@ class Spherebin: | |
ax.set_rticks([]) | |
plt.savefig("bonds-" + self.sid + "-rose." + imgformat, transparent=Tr… | |
+ def status(self): | |
+ ''' Show the current simulation status ''' | |
+ return status(self.sid) | |
def sheardisp(self, outformat='pdf', zslices=32): | |
''' Show particle x-displacement vs. the z-pos ''' |