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

# Content
1 #!/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 __version__ = "$Revision: 1.2 $"
23 __date__ = "$Date: 2006-07-27 20:36:54 $"
24 __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 if (l.find('initialConfig') == -1):
49 outputFile.write(l)
50
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 L = line.replace(';',' ').split()
66 time = float(L[0])
67 outputFile.write(" <FrameData>\n");
68 outputFile.write(" Time: %.10g\n" % (time))
69 Hxx = float(L[1])
70 Hxy = float(L[2])
71 Hxz = float(L[3])
72 Hyx = float(L[4])
73 Hyy = float(L[5])
74 Hyz = float(L[6])
75 Hzx = float(L[7])
76 Hzy = float(L[8])
77 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 integChi = float(L[11])
82 outputFile.write(" Thermostat: %.10g , %.10g\n" % (chi, integChi))
83 if (len(L) >= 21):
84 Nxx = float(L[12])
85 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 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 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 elif (sdFormat == 'pvqj'):
130 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 elif (sdFormat == 'pvqjft'):
132 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 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 *