treplaced .format with % expressions to speed up writeVTK() to gain 2x speedup - 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 f8c44ac1a8fcdc4d6d1112db0cc1467597912e69
(DIR) parent bee8aa32adc6b4bdb2b533d2eb5eef90c4c6e85b
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Mon, 11 Aug 2014 10:10:06 +0200
replaced .format with % expressions to speed up writeVTK() to gain 2x speedup
Diffstat:
M python/sphere.py | 55 +++++++++++++++----------------
1 file changed, 27 insertions(+), 28 deletions(-)
---
(DIR) diff --git a/python/sphere.py b/python/sphere.py
t@@ -1252,7 +1252,7 @@ class sim:
try :
targetbin = folder + '/' + self.sid + '.vtu' # unstructured grid
if (verbose == True):
- print('Output file: {0}'.format(targetbin))
+ print('Output file: ' + targetbin)
fh = open(targetbin, 'w')
t@@ -1263,8 +1263,8 @@ class sim:
fh.write('<VTKFile type="UnstructuredGrid" version="0.1" '
+ 'byte_order="LittleEndian">\n') # VTK header
fh.write(' <UnstructuredGrid>\n')
- fh.write(' <Piece NumberOfPoints="{}" '.format(self.np[0])
- + 'NumberOfCells="0">\n')
+ fh.write(' <Piece NumberOfPoints="{}" %d NumberOfCells="0">\n' \
+ % (self.np[0]))
# Coordinates for each point (positions)
fh.write(' <Points>\n')
t@@ -1272,8 +1272,7 @@ class sim:
+ 'NumberOfComponents="3" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} {} {} '.format(\
- self.x[i,0], self.x[i,1], self.x[i,2]))
+ fh.write('%f %f %f' % (self.x[i,0], self.x[i,1], self.x[i,2]))
fh.write('\n')
fh.write(' </DataArray>\n')
fh.write(' </Points>\n')
t@@ -1286,7 +1285,7 @@ class sim:
+ 'format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.radius[i]*2.0))
+ fh.write('%f ' % (self.radius[i]*2.0))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1295,8 +1294,8 @@ class sim:
+ 'NumberOfComponents="3" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} {} {} '.format(\
- self.xyzsum[i,0], self.xyzsum[i,1], self.xyzsum[i,2]))
+ fh.write('%f %f %f ' % \
+ (self.xyzsum[i,0], self.xyzsum[i,1], self.xyzsum[i,2]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1305,8 +1304,8 @@ class sim:
+ 'NumberOfComponents="3" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} {} {} '.format(\
- self.vel[i,0], self.vel[i,1], self.vel[i,2]))
+ fh.write('%f %f %f ' % \
+ (self.vel[i,0], self.vel[i,1], self.vel[i,2]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1315,7 +1314,7 @@ class sim:
+ 'format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.fixvel[i]))
+ fh.write('%f ' % (self.fixvel[i]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1324,8 +1323,8 @@ class sim:
+ 'NumberOfComponents="3" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} {} {} '.format(\
- self.force[i,0], self.force[i,1], self.force[i,2]))
+ fh.write('%f %f %f ' % \
+ (self.force[i,0], self.force[i,1], self.force[i,2]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1334,8 +1333,8 @@ class sim:
+ 'NumberOfComponents="3" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} {} {} '.format(\
- self.angpos[i,0], self.angpos[i,1], self.angpos[i,2]))
+ fh.write('%f %f %f ' % \
+ (self.angpos[i,0], self.angpos[i,1], self.angpos[i,2]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1344,8 +1343,8 @@ class sim:
+ 'NumberOfComponents="3" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} {} {} '.format(\
- self.angvel[i,0], self.angvel[i,1], self.angvel[i,2]))
+ fh.write('%f %f %f ' % \
+ (self.angvel[i,0], self.angvel[i,1], self.angvel[i,2]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1354,8 +1353,8 @@ class sim:
+ 'NumberOfComponents="3" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} {} {} '.format(\
- self.torque[i,0], self.torque[i,1], self.torque[i,2]))
+ fh.write('%f %f %f ' % \
+ (self.torque[i,0], self.torque[i,1], self.torque[i,2]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1364,7 +1363,7 @@ class sim:
+ 'format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.es_dot[i]))
+ fh.write('%f ' % (self.es_dot[i]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1373,7 +1372,7 @@ class sim:
+ 'format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.es[i]))
+ fh.write('%f ' % (self.es[i]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1382,7 +1381,7 @@ class sim:
+ 'Name="ViscousEnergyRate" format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.ev_dot[i]))
+ fh.write('%f ' % (self.ev_dot[i]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1391,7 +1390,7 @@ class sim:
+ 'format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.ev[i]))
+ fh.write('%f ' % (self.ev[i]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1400,7 +1399,7 @@ class sim:
+ 'format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.p[i]))
+ fh.write('%f ' % (self.p[i]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1409,7 +1408,7 @@ class sim:
+ 'format="ascii">\n')
fh.write(' ')
for i in range(self.np):
- fh.write('{} '.format(self.color[i]))
+ fh.write('%f ' % (self.color[i]))
fh.write('\n')
fh.write(' </DataArray>\n')
t@@ -1570,7 +1569,7 @@ class sim:
writer.SetInput(grid)
writer.Update()
if (verbose == True):
- print('Output file: {0}'.format(filename))
+ print('Output file: ' + filename)
def readfirst(self, verbose=True):
t@@ -1585,7 +1584,7 @@ class sim:
:func:`readstep`.
'''
- fn = "../output/{0}.output00000.bin".format(self.sid)
+ fn = '../output/' + self.sid + '.output00000.bin'
self.readbin(fn, verbose)
def readsecond(self, verbose=True):
t@@ -1599,7 +1598,7 @@ class sim:
See also :func:`readbin()`, :func:`readfirst()`, :func:`readlast()`,
and :func:`readstep`.
'''
- fn = "../output/{0}.output00001.bin".format(self.sid)
+ fn = '../output/' + self.sid + '.output00001.bin'
self.readbin(fn, verbose)
def readstep(self, step, verbose=True):