ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/applications/utilities/dumpConverter
Revision: 2966
Committed: Thu Jul 27 20:36:54 2006 UTC (18 years, 1 month ago) by tim
File size: 6538 byte(s)
Log Message:
fixed dumpConverter problems

File Contents

# User Rev Content
1 gezelter 2965 #!/usr/bin/env python
2     """Dump File Converter
3    
4     Converts old-style OOPSE md and dump files into new-style
5     combined files
6    
7     Usage: dumpConverter
8    
9     Options:
10     -h, --help show this help
11     -m, --meta-data=... use specified meta-data (.md) file
12     -c, --config-file=... use specified configuration (.in, .eor, .dump) file
13     -o, --output-file=... use specified output (.oop) file
14    
15    
16     Example:
17     dumpConverter -m Ar.md -c Ar.dump -o Ar.oop
18    
19     """
20    
21     __author__ = "Dan Gezelter (gezelter@nd.edu)"
22 tim 2966 __version__ = "$Revision: 1.2 $"
23     __date__ = "$Date: 2006-07-27 20:36:54 $"
24 gezelter 2965 __copyright__ = "Copyright (c) 2006 by the University of Notre Dame"
25     __license__ = "OOPSE"
26    
27     import sys
28     import getopt
29     import string
30    
31     _haveMDFileName = 0
32     _haveConfFileName = 0
33     _haveOutputFileName = 0
34    
35     def usage():
36     print __doc__
37    
38    
39     def convertFiles(mdFileName, configFileName, outputFileName):
40     mdFile = open(mdFileName, 'r')
41     outputFile = open(outputFileName, 'w')
42    
43     outputFile.write("<OOPSE version=4>\n");
44     outputFile.write(" <MetaData>\n")
45    
46     mdLines = mdFile.readlines()
47     for l in mdLines:
48 tim 2966 if (l.find('initialConfig') == -1):
49     outputFile.write(l)
50 gezelter 2965
51     outputFile.write(" </MetaData>\n")
52     mdFile.close()
53    
54     framePos = 0
55     configFile = open(configFileName, 'r')
56     for line in configFile.readlines():
57     framePos = framePos + 1
58     if (framePos == 1):
59     L = line.split()
60     nStuntDoubles = int(L[0])
61     whichSD = 0
62     outputFile.write(" <Snapshot>\n")
63     continue
64     elif (framePos == 2):
65 tim 2966 L = line.replace(';',' ').split()
66     time = float(L[0])
67 gezelter 2965 outputFile.write(" <FrameData>\n");
68 tim 2966 outputFile.write(" Time: %.10g\n" % (time))
69 gezelter 2965 Hxx = float(L[1])
70     Hxy = float(L[2])
71 tim 2966 Hxz = float(L[3])
72 gezelter 2965 Hyx = float(L[4])
73     Hyy = float(L[5])
74 tim 2966 Hyz = float(L[6])
75 gezelter 2965 Hzx = float(L[7])
76     Hzy = float(L[8])
77 tim 2966 Hzz = float(L[9])
78     outputFile.write(" Hmat: {{ %.10g, %.10g, %.10g }, { %.10g, %.10g, %.10g }, { %.10g, %.10g, %.10g }}\n" % (Hxx, Hxy, Hxz, Hyx, Hyy, Hyz, Hzx, Hzy, Hzz))
79     if (len(L) >= 12):
80     chi = float(L[10])
81 gezelter 2965 integChi = float(L[11])
82 tim 2966 outputFile.write(" Thermostat: %.10g , %.10g\n" % (chi, integChi))
83     if (len(L) >= 21):
84 gezelter 2965 Nxx = float(L[12])
85 tim 2966 Nxy = float(L[13])
86     Nxz = float(L[14])
87     Nyx = float(L[15])
88     Nyy = float(L[16])
89     Nyz = float(L[17])
90     Nzx = float(L[18])
91     Nzy = float(L[19])
92     Nzz = float(L[20])
93     outputFile.write(" Barostat: {{ %.10g, %.10g, %.10g }, { %.10g, %.10g, %.10g }, { %.10g, %.10g, %.10g }}\n" % (Nxx, Nxy, Nxz, Nyx, Nyy, Nyz, Nzx, Nzy, Nzz))
94    
95 gezelter 2965 outputFile.write(" </FrameData>\n")
96     outputFile.write(" <StuntDoubles>\n")
97     else:
98     whichSD = whichSD + 1
99     L = line.split()
100     x = float(L[1])
101     y = float(L[2])
102     z = float(L[3])
103     vx = float(L[4])
104     vy = float(L[5])
105     vz = float(L[6])
106     sdFormat = 'pv'
107     if (len(L) == 14):
108     qw = float(L[7])
109     qx = float(L[8])
110     qy = float(L[9])
111     qz = float(L[10])
112     jx = float(L[11])
113     jy = float(L[12])
114     jz = float(L[13])
115     if (qw == 0.0 and qx == 0.0 and qy == 0.0 and qz == 0.0):
116     sdFormat = 'pv'
117     else:
118     sdFormat = 'pvqj'
119     if (len(L) == 20):
120     fx = float(L[14])
121     fy = float(L[15])
122     fz = float(L[16])
123     tx = float(L[17])
124     ty = float(L[18])
125     tz = float(L[19])
126     sdFormat = 'pvqjft'
127     if (sdFormat == 'pv'):
128 tim 2966 outputFile.write("%d\t%s\t%18.10g\t%18.10g\t%18.10g\t%14.10g\t%14.10g\t%14.10g\n" % (whichSD-1, sdFormat, x, y, z, vx, vy, vz))
129 gezelter 2965 elif (sdFormat == 'pvqj'):
130 tim 2966 outputFile.write("%d\t%s\t%18.10g\t%18.10g\t%18.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\n" % (whichSD-1, sdFormat, x, y, z, vx, vy, vz, qw, qx, qy, qz, jx, jy, jz))
131 gezelter 2965 elif (sdFormat == 'pvqjft'):
132 tim 2966 outputFile.write("%d\t%s\t%18.10g\t%18.10g\t%18.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\t%14.10g\n" % (whichSD-1, sdFormat, x, y, z, vx, vy, vz, qw, qx, qy, qz, jx, jy, jz, fx, fy, fz, tx, ty, tz))
133 gezelter 2965 if (whichSD == nStuntDoubles):
134     outputFile.write(" </StuntDoubles>\n")
135     outputFile.write(" </Snapshot>\n")
136     framePos = 0
137    
138    
139     configFile.close()
140     outputFile.write("</OOPSE>\n")
141     outputFile.close()
142    
143    
144     def main(argv):
145     try:
146     opts, args = getopt.getopt(argv, "hm:c:o:", ["help", "meta-data=", "config-file=", "output-file="])
147     except getopt.GetoptError:
148     usage()
149     sys.exit(2)
150     for opt, arg in opts:
151     if opt in ("-h", "--help"):
152     usage()
153     sys.exit()
154     elif opt in ("-m", "--meta-data"):
155     mdFileName = arg
156     global _haveMDFileName
157     _haveMDFileName = 1
158     elif opt in ("-c", "--config-file"):
159     configFileName = arg
160     global _haveConfFileName
161     _haveConfFileName = 1
162     elif opt in ("-o", "--output-file"):
163     outputFileName = arg
164     global _haveOutputFileName
165     _haveOutputFileName = 1
166     if (_haveMDFileName != 1):
167     usage()
168     print "No meta-data file was specified"
169     sys.exit()
170     if (_haveConfFileName != 1):
171     usage()
172     print "No configuration file was specified"
173     sys.exit()
174     if (_haveOutputFileName != 1):
175     usage()
176     print "No output file was specified"
177     sys.exit()
178     convertFiles(mdFileName, configFileName, outputFileName);
179    
180     if __name__ == "__main__":
181     if len(sys.argv) == 1:
182     usage()
183     sys.exit()
184     main(sys.argv[1:])
185    

Properties

Name Value
svn:executable *