ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/applications/utilities/md2md
(Generate patch)

Comparing trunk/src/applications/utilities/md2md (file contents):
Revision 1292 by xsun, Wed May 14 20:49:17 2008 UTC vs.
Revision 1293 by chuckv, Sun Sep 14 01:32:26 2008 UTC

# Line 14 | Line 14 | Options:
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:
# Line 22 | Line 23 | __author__ = "Dan Gezelter (gezelter@nd.edu)"
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  
# Line 155 | Line 156 | def readFile(mdFileName):
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");
# Line 190 | Line 191 | def writeFile(outputFileName):
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")
# Line 255 | Line 279 | def main(argv):
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)                    
# Line 281 | Line 306 | def main(argv):
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"
# Line 289 | Line 316 | def main(argv):
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:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines