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

# User Rev Content
1 tim 2245 /*
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 *