ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/visitors/AtomNameVisitor.hpp
Revision: 2245
Committed: Sun May 29 00:16:14 2005 UTC (19 years, 1 month ago) by tim
File size: 17162 byte(s)
Log Message:
adding AtomNameVisitor

File Contents

# Content
1 /*
2 * Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3 *
4 * The University of Notre Dame grants you ("Licensee") a
5 * non-exclusive, royalty free, license to use, modify and
6 * redistribute this software in source and binary code form, provided
7 * that the following conditions are met:
8 *
9 * 1. Acknowledgement of the program authors must be made in any
10 * publication of scientific results based in part on use of the
11 * program. An acceptable form of acknowledgement is citation of
12 * the article in which the program was described (Matthew
13 * A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 * J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 * Parallel Simulation Engine for Molecular Dynamics,"
16 * J. Comput. Chem. 26, pp. 252-271 (2005))
17 *
18 * 2. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 *
21 * 3. Redistributions in binary form must reproduce the above copyright
22 * notice, this list of conditions and the following disclaimer in the
23 * documentation and/or other materials provided with the
24 * distribution.
25 *
26 * This software is provided "AS IS," without a warranty of any
27 * kind. All express or implied conditions, representations and
28 * warranties, including any implied warranty of merchantability,
29 * fitness for a particular purpose or non-infringement, are hereby
30 * excluded. The University of Notre Dame and its licensors shall not
31 * be liable for any damages suffered by licensee as a result of
32 * using, modifying or distributing the software or its
33 * derivatives. In no event will the University of Notre Dame or its
34 * licensors be liable for any lost revenue, profit or data, or for
35 * direct, indirect, special, consequential, incidental or punitive
36 * damages, however caused and regardless of the theory of liability,
37 * arising out of the use of or inability to use software, even if the
38 * University of Notre Dame has been advised of the possibility of
39 * such damages.
40 */
41
42 #ifndef VISITORS_ATOMNAMEVISITOR_HPP
43 #define VISITORS_ATOMNAMEVISITOR_HPP
44 #include "visitors/BaseVisitor.hpp"
45 #include "visitors/AtomData.hpp"
46 #include <string>
47 #include <map>
48 #include "visitors/AtomVisitor.hpp"
49 #include "primitives/DirectionalAtom.hpp"
50 #include "primitives/RigidBody.hpp"
51
52 namespace oopse {
53
54
55 class AtomNameVisitor : public BaseVisitor {
56 public:
57 AtomNameVisitor(SimInfo* info);
58 AtomNameVisitor(SimInfo* info, const std::string& atomTypeFile);
59
60 virtual void visit(Atom* atom) {visitAtom(atom);}
61 virtual void visit(DirectionalAtom* datom) {visitAtom(static_cast<Atom*>(datom));}
62
63 virtual void visit(RigidBody* rb);
64
65 virtual const std::string toString();
66 private:
67 void visitAtom(Atom* atom);
68 void readAtomTypes(std::istream& is);
69 std::string getBaseAtomTypeName(const std::string& atomTypeName);
70
71 typedef std::map<std::string, std::string> MapType;
72 MapType atomNames_;
73 SimInfo* info_;
74 };
75
76
77 const char defaultAtomTypeTable[] = {
78 "#Atom Type Base Atom Type Atomic Number Atomic Mass Van derWaals Radius Covalent Radius Red Green Blue \n "
79 "X X 0 0.0 1.0 0.0 255 20 147 \n "
80 "H H 1 1.008 1.2 0.32 250 235 215 \n "
81 "He He 2 4.003 1.4 0.93 255 192 203 \n "
82 "Li Li 3 6.941 1.82 1.23 178 34 34 \n "
83 "Be Be 4 9.0122 1.3725 0.9 34 139 34 \n "
84 "B B 5 10.811 0.795 0.82 0 255 0 \n "
85 "C C 6 12.011 1.7 0.77 112 128 144 \n "
86 "N N 7 14.007 1.55 0.75 0 191 255 \n "
87 "O O 8 15.999 1.52 0.73 255 0 0 \n "
88 "F F 9 18.998 1.47 0.72 218 165 32 \n "
89 "Ne Ne 10 20.18 1.54 0.71 255 105 180 \n "
90 "Na Na 11 22.99 2.27 1.54 0 0 255 \n "
91 "Na+ Na 11 22.99 2.27 1.54 0 0 255 \n "
92 "Mg Mg 12 24.312 1.73 1.36 34 139 34 \n "
93 "Al Al 13 26.982 1.7 1.18 190 190 190 \n "
94 "Si Si 14 28.086 2.1 1.11 218 165 32 \n "
95 "P P 15 30.974 1.8 1.06 255 165 0 \n "
96 "S S 16 32.06 1.8 1.02 255 255 0 \n "
97 "Cl Cl 17 35.453 1.75 0.99 0 255 0 \n "
98 "Cl- Cl 17 35.453 1.75 0.99 0 255 0 \n "
99 "Ar Ar 18 39.948 1.88 0.98 255 192 203 \n "
100 "K K 19 39.098 2.75 2.03 255 20 147 \n "
101 "Ca Ca 20 40.078 2.45 1.74 128 128 128 \n "
102 "Sc Sc 21 44.956 1.37 1.44 190 190 190 \n "
103 "Ti Ti 22 47.9 1.37 1.32 190 190 190 \n "
104 "V V 23 50.941 1.37 1.22 190 190 190 \n "
105 "Cr Cr 24 51.996 1.37 1.18 190 190 190 \n "
106 "Mn Mn 25 54.938 1.37 1.17 190 190 190 \n "
107 "Fe Fe 26 55.847 1.456 1.17 255 165 0 \n "
108 "Co Co 27 58.933 0.88 1.16 165 42 42 \n "
109 "Ni Ni 28 58.71 0.69 1.15 165 42 42 \n "
110 "Cu Cu 29 63.54 0.72 1.17 165 42 42 \n "
111 "Zn Zn 30 65.37 0.74 1.25 165 42 42 \n "
112 "Ga Ga 31 69.72 1.37 1.26 165 42 42 \n "
113 "Ge Ge 32 72.59 1.95 1.22 85 107 47 \n "
114 "As As 33 74.9216 1.85 1.2 253 245 230 \n "
115 "Se Se 34 78.96 1.9 1.16 152 251 152 \n "
116 "Br Br 35 79.904 1.85 1.14 165 42 42 \n "
117 "Kr Kr 36 83.8 2.02 1.12 50 205 50 \n "
118 "Rb Rb 37 85.47 1.58 2.16 165 42 42 \n "
119 "Sr Sr 38 87.62 2.151 1.91 190 190 190 \n "
120 "Y Y 39 88.9059 1.801 1.62 190 190 190 \n "
121 "Zr Zr 40 91.224 1.602 1.45 190 190 190 \n "
122 "Nb Nb 41 92.9064 1.468 1.34 190 190 190 \n "
123 "Mo Mo 42 95.94 1.526 1.3 255 127 80 \n "
124 "Tc Tc 43 98.0 1.36 1.27 190 190 190 \n "
125 "Ru Ru 44 101.07 1.339 1.25 190 190 190 \n "
126 "Rh Rh 45 102.906 1.345 1.25 190 190 190 \n "
127 "Pd Pd 46 106.42 1.376 1.28 190 190 190 \n "
128 "Ag Ag 47 107.87 1.27 1.34 190 190 190 \n "
129 "Cd Cd 48 112.41 1.424 1.48 255 140 0 \n "
130 "In In 49 114.82 1.663 1.44 190 190 190 \n "
131 "Sn Sn 50 118.71 2.1 1.41 190 190 190 \n "
132 "Sb Sb 51 121.75 2.05 1.4 190 190 190 \n "
133 "Te Te 52 127.6 2.06 1.36 190 190 190 \n "
134 "I I 53 129.905 1.98 1.33 160 32 240 \n "
135 "Xe Xe 54 131.29 2.0 1.31 255 105 180 \n "
136 "Cs Cs 55 132.905 1.84 2.35 165 42 42 \n "
137 "Ba Ba 56 137.33 2.243 1.98 190 190 190 \n "
138 "La La 57 138.906 1.877 1.69 190 190 190 \n "
139 "Lu Lu 71 174.967 2.17 1.6 190 190 190 \n "
140 "Hf Hf 72 178.49 1.58 1.44 190 190 190 \n "
141 "Ta Ta 73 180.948 1.467 1.34 190 190 190 \n "
142 "W W 74 183.85 1.534 1.3 64 224 208 \n "
143 "Re Re 75 186.207 1.375 1.28 190 190 190 \n "
144 "Os Os 76 190.2 1.353 1.26 190 190 190 \n "
145 "Ir Ir 77 192.22 1.357 1.27 190 190 190 \n "
146 "Pt Pt 78 195.08 1.75 1.3 190 190 190 \n "
147 "Au Au 79 196.967 1.66 1.34 255 215 0 \n "
148 "Hg Hg 80 200.59 1.55 1.49 190 190 190 \n "
149 "Tl Tl 81 204.383 1.96 1.48 190 190 190 \n "
150 "Pb Pb 82 207.2 2.02 1.47 190 190 190 \n "
151 "Bi Bi 83 208.98 2.15 1.46 255 181 197 \n "
152 "LP X 0 0.0 1.0 0.0 255 20 147 \n "
153 "PD X 0 0.0 0.0 0.0 0 0 0 \n "
154 "DM X 0 0.0 0.0 0.0 0 0 0 \n "
155 "1 H 1 1.008 1.2 0.32 250 235 215 \n "
156 "H3 H 1 1.008 1.25 0.32 250 235 215 \n "
157 "HALI H 1 1.008 1.25 0.32 250 235 215 \n "
158 "HARO H 1 1.008 1.25 0.32 250 235 215 \n "
159 "HC H 1 1.008 1.25 0.32 250 235 215 \n "
160 "HHBN H 1 1.008 1.25 0.32 250 235 215 \n "
161 "HN H 1 1.008 1.25 0.32 250 235 215 \n "
162 "HO H 1 1.008 1.25 0.32 250 235 215 \n "
163 "HS H 1 1.008 1.25 0.32 250 235 215 \n "
164 "HE He 2 4.003 1.4 0.93 255 192 203 \n "
165 "3 Li 3 6.941 1.82 1.23 178 34 34 \n "
166 "LI Li 3 6.941 1.82 1.23 178 34 34 \n "
167 "5 B 5 10.811 0.795 0.82 0 255 0 \n "
168 "6 C 6 12.011 1.7 0.77 112 128 144 \n "
169 "C1 C 6 12.011 1.5 0.77 112 128 144 \n "
170 "C2 C 6 12.011 1.5 0.77 112 128 144 \n "
171 "C3 C 6 12.011 1.65 0.77 112 128 144 \n "
172 "CA C 6 12.011 1.5 0.77 112 128 144 \n "
173 "CAR C 6 12.011 1.5 0.77 112 128 144 \n "
174 "CARO C 6 12.011 1.5 0.77 112 128 144 \n "
175 "CB C 6 12.011 1.5 0.77 112 128 144 \n "
176 "CD C 6 12.011 1.5 0.77 112 128 144 \n "
177 "CD1 C 6 12.011 1.5 0.77 112 128 144 \n "
178 "CD2 C 6 12.011 1.5 0.77 112 128 144 \n "
179 "CE1 C 6 12.011 1.5 0.77 112 128 144 \n "
180 "CE2 C 6 12.011 1.5 0.77 112 128 144 \n "
181 "CG C 6 12.011 1.5 0.77 112 128 144 \n "
182 "CG1 C 6 12.011 1.5 0.77 112 128 144 \n "
183 "CG2 C 6 12.011 1.5 0.77 112 128 144 \n "
184 "CZ C 6 12.011 1.5 0.77 112 128 144 \n "
185 "CH2AL C 6 14.027 1.65 0.77 112 128 144 \n "
186 "CH2OL C 6 14.027 1.65 0.77 112 128 144 \n "
187 "CH3AL C 6 15.035 1.77 0.77 112 128 144 \n "
188 "CHAL C 6 13.019 1.67 0.77 112 128 144 \n "
189 "CHAR C 6 13.019 1.58 0.77 112 128 144 \n "
190 "CHOL C 6 13.019 1.67 0.77 112 128 144 \n "
191 "CSP C 6 12.011 1.5 0.77 112 128 144 \n "
192 "CSP2 C 6 12.011 1.5 0.77 112 128 144 \n "
193 "CSP3 C 6 12.011 1.65 0.77 112 128 144 \n "
194 "CT C 6 15.035 1.77 0.77 112 128 144 \n "
195 "7 N 7 14.007 1.55 0.75 0 191 255 \n "
196 "NE N 7 14.007 1.35 0.75 0 191 255 \n "
197 "ND2 N 7 14.007 1.35 0.75 0 191 255 \n "
198 "NH1 N 7 14.007 1.35 0.75 0 191 255 \n "
199 "NH2 N 7 14.007 1.35 0.75 0 191 255 \n "
200 "N1 N 7 14.007 1.35 0.75 0 191 255 \n "
201 "N2 N 7 14.007 1.35 0.75 0 191 255 \n "
202 "N3 N 7 14.007 1.5 0.75 0 191 255 \n "
203 "N3+ N 7 14.007 1.5 0.75 0 191 255 \n "
204 "NAM N 7 14.007 1.35 0.75 0 191 255 \n "
205 "NAR N 7 14.007 1.35 0.75 0 191 255 \n "
206 "NARO N 7 14.007 1.35 0.75 0 191 255 \n "
207 "NPL3 N 7 14.007 1.35 0.75 0 191 255 \n "
208 "NSP N 7 14.007 1.35 0.75 0 191 255 \n "
209 "NSP2 N 7 14.007 1.35 0.75 0 191 255 \n "
210 "NSP3 N 7 14.007 1.5 0.75 0 191 255 \n "
211 "NSP3+ N 7 14.007 1.5 0.75 0 191 255 \n "
212 "8 O 8 15.999 1.52 0.73 255 0 0 \n "
213 "O1 O 8 15.999 1.35 0.73 255 0 0 \n "
214 "O2 O 8 15.999 1.35 0.73 255 0 0 \n "
215 "O3 O 8 15.999 1.35 0.73 255 0 0 \n "
216 "OH O 8 15.999 1.35 0.73 255 0 0 \n "
217 "OD1 O 8 15.999 1.35 0.73 255 0 0 \n "
218 "OE1 O 8 15.999 1.35 0.73 255 0 0 \n "
219 "OE2 O 8 15.999 1.35 0.73 255 0 0 \n "
220 "OG O 8 15.999 1.35 0.73 255 0 0 \n "
221 "OG1 O 8 15.999 1.35 0.73 255 0 0 \n "
222 "OXT O 8 15.999 1.35 0.73 255 0 0 \n "
223 "OSP2 O 8 15.999 1.35 0.73 255 0 0 \n "
224 "OSP3 O 8 15.999 1.35 0.73 255 0 0 \n "
225 "OSP3- O 8 15.999 1.35 0.73 255 0 0 \n "
226 "9 F 9 18.998 1.47 0.72 218 165 32 \n "
227 "NE Ne 10 20.18 1.54 0.71 255 105 180 \n "
228 "11 Na 11 22.99 2.27 1.54 0 0 255 \n "
229 "NA Na 11 22.99 2.27 1.54 0 0 255 \n "
230 "12 Mg 12 24.312 1.73 1.36 34 139 34 \n "
231 "MG Mg 12 24.312 1.73 1.36 34 139 34 \n "
232 "13 Al 13 26.982 1.7 1.18 190 190 190 \n "
233 "AL Al 13 26.982 1.7 1.18 190 190 190 \n "
234 "14 Si 14 28.086 2.1 1.11 218 165 32 \n "
235 "SI Si 14 28.086 2.1 1.11 218 165 32 \n "
236 "15 P 15 30.974 1.8 1.06 255 165 0 \n "
237 "P(C) P 15 30.974 1.75 1.06 255 165 0 \n "
238 "P(N) P 15 30.974 1.75 1.06 255 165 0 \n "
239 "P(O) P 15 30.974 1.75 1.06 255 165 0 \n "
240 "P(S) P 15 30.974 1.75 1.06 255 165 0 \n "
241 "16 S 16 32.06 1.8 1.02 255 255 0 \n "
242 "S2 S 16 32.06 1.85 1.02 255 255 0 \n "
243 "S3 S 16 32.06 1.85 1.02 255 255 0 \n "
244 "SG S 16 32.06 1.85 1.02 255 255 0 \n "
245 "SDIV S 16 32.06 1.85 1.02 255 255 0 \n "
246 "STET S 16 32.06 1.85 1.02 255 255 0 \n "
247 "STRI S 16 32.06 1.85 1.02 255 255 0 \n "
248 "Sh S 16 32.06 1.85 1.02 255 255 0 \n "
249 "17 Cl 17 35.453 1.75 0.99 0 255 0 \n "
250 "CL Cl 17 35.453 1.75 0.99 0 255 0 \n "
251 "AR Ar 18 39.948 1.88 0.98 255 192 203 \n "
252 "HV Ar 18 399.48 1.91 0.0 255 192 203 \n "
253 "LT Ar 18 39.948 1.91 0.0 255 192 203 \n "
254 "DZ Ar 18 39.948 1.91 0.0 255 192 203 \n "
255 "19 K 19 39.098 2.75 2.03 255 20 147 \n "
256 "20 Ca 20 40.078 2.45 1.74 128 128 128 \n "
257 "21 Sc 21 44.956 1.37 1.44 190 190 190 \n "
258 "SC Sc 21 44.956 1.37 1.44 190 190 190 \n "
259 "22 Ti 22 47.9 1.37 1.32 190 190 190 \n "
260 "TI Ti 22 47.9 1.37 1.32 190 190 190 \n "
261 "23 V 23 50.941 1.37 1.22 190 190 190 \n "
262 "24 Cr 24 51.996 1.37 1.18 190 190 190 \n "
263 "CR Cr 24 51.996 1.37 1.18 190 190 190 \n "
264 "25 Mn 25 54.938 1.37 1.17 190 190 190 \n "
265 "MN Mn 25 54.938 1.37 1.17 190 190 190 \n "
266 "26 Fe 26 55.847 1.456 1.17 255 165 0 \n "
267 "FE Fe 26 55.847 1.456 1.17 255 165 0 \n "
268 "27 Co 27 58.933 0.88 1.16 165 42 42 \n "
269 "CO Co 27 58.933 0.88 1.16 165 42 42 \n "
270 "28 Ni 28 58.71 0.69 1.15 165 42 42 \n "
271 "NI Ni 28 58.71 0.69 1.15 165 42 42 \n "
272 "29 Cu 29 63.54 0.72 1.17 165 42 42 \n "
273 "CU Cu 29 63.54 0.72 1.17 165 42 42 \n "
274 "30 Zn 30 65.37 0.74 1.25 165 42 42 \n "
275 "ZN Zn 30 65.37 0.74 1.25 165 42 42 \n "
276 "31 Ga 31 69.72 1.37 1.26 165 42 42 \n "
277 "GA Ga 31 69.72 1.37 1.26 165 42 42 \n "
278 "GE Ge 32 72.59 1.95 1.22 85 107 47 \n "
279 "35 Br 35 79.904 1.85 1.14 165 42 42 \n "
280 "BR Br 35 79.904 1.85 1.14 165 42 42 \n "
281 "37 Rb 37 85.47 1.58 2.16 165 42 42 \n "
282 "RB Rb 37 85.47 1.58 2.16 165 42 42 \n "
283 "MO Mo 42 95.94 1.526 1.3 255 127 80 \n "
284 "47 Ag 47 107.87 1.27 1.34 190 190 190 \n "
285 "AG Ag 47 107.87 1.27 1.34 190 190 190 \n "
286 "53 I 53 129.905 1.98 1.33 160 32 240 \n "
287 "55 Cs 55 132.905 1.84 2.35 165 42 42 \n "
288 "CS Cs 55 132.905 1.84 2.35 165 42 42 \n "
289 "79 Au 79 196.967 1.66 1.34 255 215 0 \n "
290 "AU Au 79 196.967 1.66 1.34 255 215 0 \n "
291 "XX X 0 0.0 1.0 0.0 255 20 147 \n "
292 "+ X 0 0.0 1.0 1.38 255 20 147 \n "
293 "++ X 0 0.0 1.0 0.9 255 20 147 \n "
294 "- X 0 0.0 1.0 2.0 255 20 147 \n "
295 "-- X 0 0.0 1.0 2.0 255 20 147 \n "
296 "DUMMY X 0 0.0 1.0 0.0 255 20 147 \n "
297 "RESERV X 0 0.0 1.0 0.0 255 20 147 \n "
298 "BOGUS X 0 0.0 1.0 0.0 255 20 147 \n "
299 "DU X 0 0.0 1.0 0.0 255 20 147 \n "
300 "Tv X 0 0.0 1.0 0.0 255 20 147 \n "
301 "TV X 0 0.0 1.0 0.0 255 20 147 \n "
302 "BQ X 0 0.0 1.0 0.0 255 20 147 \n "
303 "GB X 0 760.09 1.0 0.0 255 20 147 \n "
304 "GBDP X 0 760.09 10.0 0.0 255 20 147 \n "
305 "linear linear 0 760.09 1.0 0.0 255 20 147 \n "
306 "PL P 15 30.974 1.8 1.06 255 165 0 \n "
307 "NTL N 7 14.007 1.55 0.75 0 191 255 \n "
308 "CH C 6 14.027 1.65 0.77 112 128 144 \n "
309 "CH2 C 6 14.027 1.65 0.77 112 128 144 \n "
310 "CH3 C 6 15.035 1.77 0.77 112 128 144 \n "
311 "CE C 6 14.027 1.80 1.06 255 105 180 \n "
312 "CK C 6 15.035 1.71 1.06 255 0 0 \n "
313 "PO4 P 15 109.0 2.23 1.73 255 165 0 \n "
314 "NC4 N 7 73.137 2.06 1.56 0 191 255 \n "
315 "HDP X 0 0.0 1.0 1.0 0 255 0 \n "
316 "FAKE X 0 0.0 1.0 1.0 0 255 0 \n "
317 "SSD X 0 0.0 1.0 1.0 255 20 147 \n "};
318
319 }
320
321 #endif
322

Properties

Name Value
svn:executable *