| 14 |
|
-x, --repeatX=... make the system repeat in the x direction |
| 15 |
|
-y, --repeatY=... make the system repeat in the y direction |
| 16 |
|
-z, --repeatZ=... make the system repeat in the z direction |
| 17 |
+ |
-d, --depthFirst write out the replicated system depth-first |
| 18 |
|
|
| 19 |
|
|
| 20 |
|
Example: |
| 23 |
|
""" |
| 24 |
|
|
| 25 |
|
__author__ = "Dan Gezelter (gezelter@nd.edu)" |
| 26 |
< |
__version__ = "$Revision: 1.2 $" |
| 27 |
< |
__date__ = "$Date: 2008-05-14 20:49:17 $" |
| 26 |
> |
__version__ = "$Revision: 1.3 $" |
| 27 |
> |
__date__ = "$Date: 2008-09-14 01:32:23 $" |
| 28 |
|
__copyright__ = "Copyright (c) 2008 by the University of Notre Dame" |
| 29 |
|
__license__ = "OOPSE" |
| 30 |
|
|
| 156 |
|
|
| 157 |
|
mdFile.close() |
| 158 |
|
|
| 159 |
< |
def writeFile(outputFileName): |
| 159 |
> |
def writeFile(outputFileName,depthFirst): |
| 160 |
|
outputFile = open(outputFileName, 'w') |
| 161 |
|
|
| 162 |
|
outputFile.write("<OOPSE version=4>\n"); |
| 191 |
|
|
| 192 |
|
print repeatX, repeatY, repeatZ |
| 193 |
|
|
| 194 |
< |
for i in range(len(indices)): |
| 194 |
> |
|
| 195 |
> |
if (depthFirst) : |
| 196 |
> |
whichSD = 0 |
| 197 |
> |
for i in range(len(indices)): |
| 198 |
> |
for ii in range(repeatX): |
| 199 |
> |
for jj in range(repeatY): |
| 200 |
> |
for kk in range(repeatZ): |
| 201 |
> |
|
| 202 |
> |
myP = [] |
| 203 |
> |
myP.append(p[i][0] + ii*Hmat[0][0] + jj*Hmat[1][0] + kk*Hmat[2][0]) |
| 204 |
> |
myP.append(p[i][1] + ii*Hmat[0][1] + jj*Hmat[1][1] + kk*Hmat[2][1]) |
| 205 |
> |
myP.append(p[i][2] + ii*Hmat[0][2] + jj*Hmat[1][2] + kk*Hmat[2][2]) |
| 206 |
> |
|
| 207 |
> |
if (pvqj[i] == 'pv'): |
| 208 |
> |
outputFile.write("%10d %7s %18.10g %18.10g %18.10g %14e %13e %13e\n" % (whichSD, pvqj[i], myP[0], myP[1], myP[2], v[i][0], v[i][1], v[i][2])) |
| 209 |
> |
elif (pvqj[i] == 'pvqj'): |
| 210 |
> |
outputFile.write("%10d %7s %18.10g %18.10g %18.10g %13e %13e %13e %13e %13e %13e %13e %13e %13e %13e\n" % (whichSD, pvqj[i], myP[0], myP[1], myP[2], v[i][0], v[i][1], v[i][2], q[i][0], q[i][1], q[i][2], q[i][3], j[i][0], j[i][1], j[i][2])) |
| 211 |
> |
|
| 212 |
> |
whichSD = whichSD + 1 |
| 213 |
> |
|
| 214 |
> |
else: |
| 215 |
> |
whichSD = 0 |
| 216 |
|
for ii in range(repeatX): |
| 217 |
|
for jj in range(repeatY): |
| 218 |
|
for kk in range(repeatZ): |
| 219 |
< |
|
| 198 |
< |
myP = [] |
| 199 |
< |
myP.append(p[i][0] + ii*Hmat[0][0] + jj*Hmat[1][0] + kk*Hmat[2][0]) |
| 200 |
< |
myP.append(p[i][1] + ii*Hmat[0][1] + jj*Hmat[1][1] + kk*Hmat[2][1]) |
| 201 |
< |
myP.append(p[i][2] + ii*Hmat[0][2] + jj*Hmat[1][2] + kk*Hmat[2][2]) |
| 202 |
< |
|
| 203 |
< |
if (pvqj[i] == 'pv'): |
| 204 |
< |
outputFile.write("%10d %7s %18.10g %18.10g %18.10g %14e %13e %13e\n" % (whichSD, pvqj[i], myP[0], myP[1], myP[2], v[i][0], v[i][1], v[i][2])) |
| 205 |
< |
elif (pvqj[i] == 'pvqj'): |
| 206 |
< |
outputFile.write("%10d %7s %18.10g %18.10g %18.10g %13e %13e %13e %13e %13e %13e %13e %13e %13e %13e\n" % (whichSD, pvqj[i], myP[0], myP[1], myP[2], v[i][0], v[i][1], v[i][2], q[i][0], q[i][1], q[i][2], q[i][3], j[i][0], j[i][1], j[i][2])) |
| 219 |
> |
for i in range(len(indices)): |
| 220 |
|
|
| 221 |
< |
whichSD = whichSD + 1 |
| 221 |
> |
myP = [] |
| 222 |
> |
myP.append(p[i][0] + ii*Hmat[0][0] + jj*Hmat[1][0] + kk*Hmat[2][0]) |
| 223 |
> |
myP.append(p[i][1] + ii*Hmat[0][1] + jj*Hmat[1][1] + kk*Hmat[2][1]) |
| 224 |
> |
myP.append(p[i][2] + ii*Hmat[0][2] + jj*Hmat[1][2] + kk*Hmat[2][2]) |
| 225 |
> |
|
| 226 |
> |
if (pvqj[i] == 'pv'): |
| 227 |
> |
outputFile.write("%10d %7s %18.10g %18.10g %18.10g %14e %13e %13e\n" % (whichSD, pvqj[i], myP[0], myP[1], myP[2], v[i][0], v[i][1], v[i][2])) |
| 228 |
> |
elif (pvqj[i] == 'pvqj'): |
| 229 |
> |
outputFile.write("%10d %7s %18.10g %18.10g %18.10g %13e %13e %13e %13e %13e %13e %13e %13e %13e %13e\n" % (whichSD, pvqj[i], myP[0], myP[1], myP[2], v[i][0], v[i][1], v[i][2], q[i][0], q[i][1], q[i][2], q[i][3], j[i][0], j[i][1], j[i][2])) |
| 230 |
> |
|
| 231 |
> |
whichSD = whichSD + 1 |
| 232 |
|
|
| 233 |
+ |
|
| 234 |
|
outputFile.write(" </StuntDoubles>\n") |
| 235 |
|
outputFile.write(" </Snapshot>\n") |
| 236 |
|
outputFile.write("</OOPSE>\n") |
| 279 |
|
|
| 280 |
|
|
| 281 |
|
def main(argv): |
| 282 |
+ |
depthFirst = 0 |
| 283 |
|
try: |
| 284 |
< |
opts, args = getopt.getopt(argv, "hm:o:x:y:z:", ["help", "meta-data=", "output-file=", "repeatX=", "repeatY=", "repeatZ="]) |
| 284 |
> |
opts, args = getopt.getopt(argv, "hm:o:x:y:z:d", ["help", "meta-data=", "output-file=", "repeatX=", "repeatY=", "repeatZ=","depthFirst"]) |
| 285 |
|
except getopt.GetoptError: |
| 286 |
|
usage() |
| 287 |
|
sys.exit(2) |
| 306 |
|
elif opt in ("-z", "--repeatZ"): |
| 307 |
|
global repeatZ |
| 308 |
|
repeatZ = int(arg) |
| 309 |
+ |
elif opt in ("-d", "--depthFirst"): |
| 310 |
+ |
depthFirst = 1 |
| 311 |
|
if (_haveMDFileName != 1): |
| 312 |
|
usage() |
| 313 |
|
print "No meta-data file was specified" |
| 316 |
|
usage() |
| 317 |
|
print "No output file was specified" |
| 318 |
|
sys.exit() |
| 319 |
+ |
|
| 320 |
|
readFile(mdFileName) |
| 321 |
|
mapToBox() |
| 322 |
< |
writeFile(outputFileName) |
| 322 |
> |
writeFile(outputFileName, depthFirst) |
| 323 |
|
|
| 324 |
|
if __name__ == "__main__": |
| 325 |
|
if len(sys.argv) == 1: |