Introduction
Introduction Statistics Contact Development Disclaimer Help
tAdded torqueScript generating function - sphere - GPU-based 3D discrete elemen…
git clone git://src.adamsgaard.dk/sphere
Log
Files
Refs
LICENSE
---
commit 3eacaf0437b573b776d293ca3f56e0c21be94aa3
parent 323d03bd4f83dd75223dd4d7f43ae4fcb3882a7b
Author: Anders Damsgaard <[email protected]>
Date: Thu, 14 Mar 2013 05:25:59 +0100
Added torqueScript generating function
Diffstat:
M python/sphere.py | 60 +++++++++++++++++++++++++++++…
1 file changed, 58 insertions(+), 2 deletions(-)
---
diff --git a/python/sphere.py b/python/sphere.py
t@@ -450,6 +450,38 @@ class Spherebin:
fig.clf()
+ def generateBimodalRadii(self,
+ r_small = 0.005,
+ r_large = 0.05,
+ ratio = 0.2,
+ verbose = True):
+ """ Draw radii from two sizes
+ @param r_small: Radii of small population (float), in ]0;r_large[
+ @param r_large: Radii of large population (float), in ]r_small;inf[
+ @param ratio: Approximate volumetric ratio between the two
+ populations (large/small).
+ """
+ if (r_small >= r_large):
+ raise Exception("r_large should be larger than r_small")
+
+ V_small = V_sphere(r_small)
+ V_large = V_sphere(r_large)
+ nlarge = int(V_small/V_large * ratio * self.np[0]) # ignore void volu…
+
+ self.radius[:] = r_small
+ self.radius[0:nlarge] = r_large
+ numpy.random.shuffle(self.radius)
+
+ # Test volumetric ratio
+ V_small_total = V_small * (self.np - nlarge)
+ V_large_total = V_large * nlarge
+ if (abs(V_large_total/V_small_total - ratio) > 1.0e5):
+ raise Exception("Volumetric ratio seems wrong")
+
+ if (verbose == True):
+ print("generateBimodalRadii created " + str(nlarge) + " large part…
+
+
def initRandomPos(self, g = numpy.array([0.0, 0.0, -9.80665]),
gridnum = numpy.array([12, 12, 36]),
periodic = 1,
t@@ -1155,7 +1187,11 @@ class Spherebin:
def torqueScript(self,
email="[email protected]",
email_alerts="ae",
- walltime="8:00:00"):
+ walltime="24:00:00",
+ queue="qfermi",
+ cudapath="/com/cuda/4.0.17/cuda",
+ spheredir="/home/adc/code/sphere",
+ workdir="/scratch"):
'Create job script for the Torque queue manager for the binary'
filename = self.sid + ".sh"
t@@ -1163,7 +1199,27 @@ class Spherebin:
try :
fh = open(filename, "w")
- # write stuff
+ fh.write('#!/bin/sh\n')
+ fh.write('#PBS -N ' + self.sid + '\n')
+ fh.write('#PBS -l nodes=1:ppn=1\n')
+ fh.write('#PBS -l walltime=' + walltime + '\n')
+ fh.write('#PBS -q ' + queue + '\n')
+ fh.write('#PBS -M ' + email + '\n')
+ fh.write('#PBS -m ' + email_alerts + '\n')
+ fh.write('CUDAPATH=' + cudapath + '\n')
+ fh.write('export PATH=$CUDAPATH/bin:$PATH\n')
+ fh.write('export LD_LIBRARY_PATH=$CUDAPATH/lib64:$CUDAPATH/lib:$LD…
+ fh.write('echo "`whoami`@`hostname`"\n')
+ fh.write('echo "Start at `date`"\n')
+ fh.write('ORIGDIR=' + spheredir + '\n')
+ fh.write('WORKDIR=' + workdir + "/$PBS_JOBID\n")
+ fh.write('cp -r $ORIGDIR/* $WORKDIR\n')
+ fh.write('cd $WORKDIR\n')
+ fh.write('cmake . && make\n')
+ fh.write('./sphere input/' + self.sid + '.bin > /dev/null &\n')
+ fh.write('wait\n')
+ fh.write('cp $WORKDIR/output/* $ORIGDIR/output/\n')
+ fh.write('echo "End at `date`"\n')
finally :
if fh is not None:
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.