source: vtkvis/trunk/MoleculeData.h

Last change on this file was 3616, checked in by ldelgass, 12 years ago

Remove Rp from vtkvis filenames

  • Property svn:eol-style set to native
File size: 13.3 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2/*
3 * Copyright (C) 2004-2012  HUBzero Foundation, LLC
4 *
5 * Author: Leif Delgass <ldelgass@purdue.edu>
6 */
7
8#define NUM_ELEMENTS 109
9
10// jmol colors (taken from VisIt)
11const unsigned char g_elementColors[NUM_ELEMENTS+1][3] = {
12    { 0x20, 0x20, 0x20 }, // ?
13    { 0xFF, 0xFF, 0xFF }, // H
14    { 0xD9, 0xFF, 0xFF }, // He
15    { 0xCC, 0x80, 0xFF }, // Li
16    { 0xC2, 0xFF, 0x00 }, // Be
17    { 0xFF, 0xB5, 0xB5 }, // B
18    { 0x90, 0x90, 0x90 }, // C
19    { 0x30, 0x50, 0xF8 }, // N
20    { 0xFF, 0x0D, 0x0D }, // O
21    { 0x90, 0xE0, 0x50 }, // F
22    { 0xB3, 0xE3, 0xF5 }, // Ne
23    { 0xAB, 0x5C, 0xF2 }, // Na
24    { 0x8A, 0xFF, 0x00 }, // Mg
25    { 0xBF, 0xA6, 0xA6 }, // Al
26    { 0xF0, 0xC8, 0xA0 }, // Si
27    { 0xFF, 0x80, 0x00 }, // P
28    { 0xFF, 0xFF, 0x30 }, // S
29    { 0x1F, 0xF0, 0x1F }, // Cl
30    { 0x80, 0xD1, 0xE3 }, // Ar
31    { 0x8F, 0x40, 0xD4 }, // K
32    { 0x3D, 0xFF, 0x00 }, // Ca
33    { 0xE6, 0xE6, 0xE6 }, // Sc
34    { 0xBF, 0xC2, 0xC7 }, // Ti
35    { 0xA6, 0xA6, 0xAB }, // V
36    { 0x8A, 0x99, 0xC7 }, // Cr
37    { 0x9C, 0x7A, 0xC7 }, // Mn
38    { 0xE0, 0x66, 0x33 }, // Fe
39    { 0xF0, 0x90, 0xA0 }, // Co
40    { 0x50, 0xD0, 0x50 }, // Ni
41    { 0xC8, 0x80, 0x33 }, // Cu
42    { 0x7D, 0x80, 0xB0 }, // Zn
43    { 0xC2, 0x8F, 0x8F }, // Ga
44    { 0x66, 0x8F, 0x8F }, // Ge
45    { 0xBD, 0x80, 0xE3 }, // As
46    { 0xFF, 0xA1, 0x00 }, // Se
47    { 0xA6, 0x29, 0x29 }, // Br
48    { 0x5C, 0xB8, 0xD1 }, // Kr
49    { 0x70, 0x2E, 0xB0 }, // Rb
50    { 0x00, 0xFF, 0x00 }, // Sr
51    { 0x94, 0xFF, 0xFF }, // Y
52    { 0x94, 0xE0, 0xE0 }, // Zr
53    { 0x73, 0xC2, 0xC9 }, // Nb
54    { 0x54, 0xB5, 0xB5 }, // Mo
55    { 0x3B, 0x9E, 0x9E }, // Tc
56    { 0x24, 0x8F, 0x8F }, // Ru
57    { 0x0A, 0x7D, 0x8C }, // Rh
58    { 0x00, 0x69, 0x85 }, // Pd
59    { 0xC0, 0xC0, 0xC0 }, // Ag
60    { 0xFF, 0xD9, 0x8F }, // Cd
61    { 0xA6, 0x75, 0x73 }, // In
62    { 0x66, 0x80, 0x80 }, // Sn
63    { 0x9E, 0x63, 0xB5 }, // Sb
64    { 0xD4, 0x7A, 0x00 }, // Te
65    { 0x94, 0x00, 0x94 }, // I
66    { 0x42, 0x9E, 0xB0 }, // Xe
67    { 0x57, 0x17, 0x8F }, // Cs
68    { 0x00, 0xC9, 0x00 }, // Ba
69    { 0x70, 0xD4, 0xFF }, // La
70    { 0xFF, 0xFF, 0xC7 }, // Ce
71    { 0xD9, 0xFF, 0xC7 }, // Pr
72    { 0xC7, 0xFF, 0xC7 }, // Nd
73    { 0xA3, 0xFF, 0xC7 }, // Pm
74    { 0x8F, 0xFF, 0xC7 }, // Sm
75    { 0x61, 0xFF, 0xC7 }, // Eu
76    { 0x45, 0xFF, 0xC7 }, // Gd
77    { 0x30, 0xFF, 0xC7 }, // Tb
78    { 0x1F, 0xFF, 0xC7 }, // Dy
79    { 0x00, 0xFF, 0x9C }, // Ho
80    { 0x00, 0xE6, 0x75 }, // Er
81    { 0x00, 0xD4, 0x52 }, // Tm
82    { 0x00, 0xBF, 0x38 }, // Yb
83    { 0x00, 0xAB, 0x24 }, // Lu
84    { 0x4D, 0xC2, 0xFF }, // Hf
85    { 0x4D, 0xA6, 0xFF }, // Ta
86    { 0x21, 0x94, 0xD6 }, // W
87    { 0x26, 0x7D, 0xAB }, // Re
88    { 0x26, 0x66, 0x96 }, // Os
89    { 0x17, 0x54, 0x87 }, // Ir
90    { 0xD0, 0xD0, 0xE0 }, // Pt
91    { 0xFF, 0xD1, 0x23 }, // Au
92    { 0xB8, 0xB8, 0xD0 }, // Hg
93    { 0xA6, 0x54, 0x4D }, // Tl
94    { 0x57, 0x59, 0x61 }, // Pb
95    { 0x9E, 0x4F, 0xB5 }, // Bi
96    { 0xAB, 0x5C, 0x00 }, // Po
97    { 0x75, 0x4F, 0x45 }, // At
98    { 0x42, 0x82, 0x96 }, // Rn
99    { 0x42, 0x00, 0x66 }, // Fr
100    { 0x00, 0x7D, 0x00 }, // Ra
101    { 0x70, 0xAB, 0xFA }, // Ac
102    { 0x00, 0xBA, 0xFF }, // Th
103    { 0x00, 0xA1, 0xFF }, // Pa
104    { 0x00, 0x8F, 0xFF }, // U
105    { 0x00, 0x80, 0xFF }, // Np
106    { 0x00, 0x6B, 0xFF }, // Pu
107    { 0x54, 0x5C, 0xF2 }, // Am
108    { 0x78, 0x5C, 0xE3 }, // Cm
109    { 0x8A, 0x4F, 0xE3 }, // Bk
110    { 0xA1, 0x36, 0xD4 }, // Cf
111    { 0xB3, 0x1F, 0xD4 }, // Es
112    { 0xB3, 0x1F, 0xBA }, // Fm
113    { 0xB3, 0x0D, 0xA6 }, // Md
114    { 0xBD, 0x0D, 0x87 }, // No
115    { 0xC7, 0x00, 0x66 }, // Lr
116    { 0xCC, 0x00, 0x59 }, // Rf
117    { 0xD1, 0x00, 0x4F }, // Db
118    { 0xD9, 0x00, 0x45 }, // Sg
119    { 0xE0, 0x00, 0x38 }, // Bh
120    { 0xE6, 0x00, 0x2E }, // Hs
121    { 0xEB, 0x00, 0x26 }  // Mt
122};
123
124// Covalent radii in Angstroms from VisIt
125const float g_covalentRadii[NUM_ELEMENTS+1] = {
126     .1f,  // ?  0
127    0.32f, // H  1
128    0.93f, // He 2
129    1.23f, // Li 3
130    0.90f, // Be 4
131    0.82f, // B  5
132    0.77f, // C  6
133    0.75f, // N  7
134    0.73f, // O  8
135    0.72f, // F  9
136    0.71f, // Ne 10
137    1.54f, // Na 11
138    1.36f, // Mg 12
139    1.18f, // Al 13
140    1.11f, // Si 14
141    1.06f, // P  15
142    1.02f, // S  16
143    0.99f, // Cl 17
144    0.98f, // Ar 18
145    2.03f, // K  19
146    1.74f, // Ca 20
147    1.44f, // Sc 21
148    1.32f, // Ti 22
149    1.22f, // V  23
150    1.18f, // Cr 24
151    1.17f, // Mn 25
152    1.17f, // Fe 26
153    1.16f, // Co 27
154    1.15f, // Ni 28
155    1.17f, // Cu 29
156    1.25f, // Zn 30
157    1.26f, // Ga 31
158    1.22f, // Ge 32
159    1.20f, // As 33
160    1.16f, // Se 34
161    1.14f, // Br 35
162    1.12f, // Kr 36
163    2.16f, // Rb 37
164    1.91f, // Sr 38
165    1.62f, // Y  39
166    1.45f, // Zr 40
167    1.34f, // Nb 41
168    1.30f, // Mo 42
169    1.27f, // Tc 43
170    1.25f, // Ru 44
171    1.25f, // Rh 45
172    1.28f, // Pd 46
173    1.34f, // Ag 47
174    1.48f, // Cd 48
175    1.44f, // In 49
176    1.41f, // Sn 50
177    1.40f, // Sb 51
178    1.36f, // Te 52
179    1.33f, // I  53
180    1.31f, // Xe 54
181    2.35f, // Cs 55
182    1.98f, // Ba 56
183    1.69f, // La 57
184    1.65f, // Ce 58
185    1.65f, // Pr 59
186    1.64f, // Nd 60
187    1.63f, // Pm 61
188    1.62f, // Sm 62
189    1.85f, // Eu 63
190    1.61f, // Gd 64
191    1.59f, // Tb 65
192    1.59f, // Dy 66
193    1.58f, // Ho 67
194    1.57f, // Er 68
195    1.56f, // Tm 69
196    1.74f, // Yb 70
197    1.56f, // Lu 71
198    1.44f, // Hf 72
199    1.34f, // Ta 73
200    1.30f, // W  74
201    1.28f, // Re 75
202    1.26f, // Os 76
203    1.27f, // Ir 77
204    1.30f, // Pt 78
205    1.34f, // Au 79
206    1.49f, // Hg 80
207    1.48f, // Tl 81
208    1.47f, // Pb 82
209    1.46f, // Bi 83
210    1.46f, // Po 84
211    1.45f, // At 85
212    1.50f, // Rn 86 // 86-96 from en.wikipedia.org/wiki/Covalent_radius 10/6/09
213    2.60f, // Fr 87
214    2.21f, // Ra 88
215    2.15f, // Ac 89
216    2.06f, // Th 90
217    2.00f, // Pa 91
218    1.96f, // U  92
219    1.90f, // Np 93
220    1.87f, // Pu 94
221    1.80f, // Am 95
222    1.69f, // Cm 96
223    .1f,
224    .1f,
225    .1f,
226    .1f,
227    .1f,
228    .1f,
229    .1f,
230    .1f,
231    .1f,
232    .1f,
233    .1f,
234    .1f,
235    .1f
236};
237
238// Atomic radii in Angstroms from VisIt
239const float g_atomicRadii[NUM_ELEMENTS+1] = {
240     .1f,  // ?  0
241    0.79f, // H  1
242    0.49f, // He 2
243    2.05f, // Li 3
244    1.40f, // Be 4
245    1.17f, // B  5
246    0.91f, // C  6
247    0.75f, // N  7
248    0.65f, // O  8
249    0.57f, // F  9
250    0.51f, // Ne 10
251    2.23f, // Na 11
252    1.72f, // Mg 12
253    1.82f, // Al 13
254    1.46f, // Si 14
255    1.23f, // P  15
256    1.09f, // S  16
257    0.97f, // Cl 17
258    0.88f, // Ar 18
259    2.77f, // K  19
260    2.23f, // Ca 20
261    2.09f, // Sc 21
262    2.00f, // Ti 22
263    1.92f, // V  23
264    1.85f, // Cr 24
265    1.79f, // Mn 25
266    1.72f, // Fe 26
267    1.67f, // Co 27
268    1.62f, // Ni 28
269    1.57f, // Cu 29
270    1.53f, // Zn 30
271    1.81f, // Ga 31
272    1.52f, // Ge 32
273    1.33f, // As 33
274    1.22f, // Se 34
275    1.12f, // Br 35
276    1.03f, // Kr 36
277    2.98f, // Rb 37
278    2.45f, // Sr 38
279    2.27f, // Y  39
280    2.16f, // Zr 40
281    2.08f, // Nb 41
282    2.01f, // Mo 42
283    1.95f, // Tc 43
284    1.89f, // Ru 44
285    1.83f, // Rh 45
286    1.79f, // Pd 46
287    1.75f, // Ag 47
288    1.71f, // Cd 48
289    2.00f, // In 49
290    1.72f, // Sn 50
291    1.53f, // Sb 51
292    1.42f, // Te 52
293    1.32f, // I  53
294    1.24f, // Xe 54
295    3.34f, // Cs 55
296    2.78f, // Ba 56
297    2.74f, // La 57
298    2.70f, // Ce 58
299    2.67f, // Pr 59
300    2.64f, // Nd 60
301    2.62f, // Pm 61
302    2.59f, // Sm 62
303    2.56f, // Eu 63
304    2.54f, // Gd 64
305    2.51f, // Tb 65
306    2.49f, // Dy 66
307    2.47f, // Ho 67
308    2.45f, // Er 68
309    2.42f, // Tm 69
310    2.40f, // Yb 70
311    2.25f, // Lu 71
312    2.16f, // Hf 72
313    2.09f, // Ta 73
314    2.02f, // W  74
315    1.97f, // Re 75
316    1.92f, // Os 76
317    1.87f, // Ir 77
318    1.83f, // Pt 78
319    1.79f, // Au 79
320    1.76f, // Hg 80
321    2.08f, // Tl 81
322    1.81f, // Pb 82
323    1.63f, // Bi 83
324    1.53f, // Po 84
325    1.43f, // At 85
326    1.34f, // Rn 86
327    2.60f, // Fr 87 (using covalent radius just to get a number here)
328    2.15f, // Ra 88 (88-99 from "http://en.wikipedia.org/wiki/Atomic_radii_of_the_elements_(data_page)", which references J.C. Slater, J. Chem. Phys. 1964, 41, 3199.)
329    1.95f, // Ac 89
330    1.80f, // Th 90
331    1.80f, // Pa 91
332    1.75f, // U  92
333    1.75f, // Np 93
334    1.75f, // Pu 94
335    1.75f, // Am 95
336    1.74f, // Cm 96 (96-99 use metallic radius to just get a number)
337    1.70f, // Bk 97
338    1.86f, // Cf 98
339    1.86f, // Es 99
340    .1f,
341    .1f,
342    .1f,
343    .1f,
344    .1f,
345    .1f,
346    .1f,
347    .1f,
348    .1f,
349    .1f
350};
351
352// From JMol / OpenBabel
353/// van der Waals radii in Angstroms
354const float g_vdwRadii[NUM_ELEMENTS+1] = {
355    1.0,    //   0  ?
356    1.200f, //   1  H
357    1.400f, //   2  He
358    1.820f, //   3  Li
359    1.700f, //   4  Be
360    2.080f, //   5  B
361    1.950f, //   6  C
362    1.850f, //   7  N
363    1.700f, //   8  O
364    1.730f, //   9  F
365    1.540f, //  10  Ne
366    2.270f, //  11  Na
367    1.730f, //  12  Mg
368    2.050f, //  13  Al
369    2.100f, //  14  Si
370    2.080f, //  15  P
371    2.000f, //  16  S
372    1.970f, //  17  Cl
373    1.880f, //  18  Ar
374    2.750f, //  19  K
375    1.973f, //  20  Ca
376    1.700f, //  21  Sc
377    1.700f, //  22  Ti
378    1.700f, //  23  V
379    1.700f, //  24  Cr
380    1.700f, //  25  Mn
381    1.700f, //  26  Fe
382    1.700f, //  27  Co
383    1.630f, //  28  Ni
384    1.400f, //  29  Cu
385    1.390f, //  30  Zn
386    1.870f, //  31  Ga
387    1.700f, //  32  Ge
388    1.850f, //  33  As
389    1.900f, //  34  Se
390    2.100f, //  35  Br
391    2.020f, //  36  Kr
392    1.700f, //  37  Rb
393    1.700f, //  38  Sr
394    1.700f, //  39  Y
395    1.700f, //  40  Zr
396    1.700f, //  41  Nb
397    1.700f, //  42  Mo
398    1.700f, //  43  Tc
399    1.700f, //  44  Ru
400    1.700f, //  45  Rh
401    1.630f, //  46  Pd
402    1.720f, //  47  Ag
403    1.580f, //  48  Cd
404    1.930f, //  49  In
405    2.170f, //  50  Sn
406    2.200f, //  51  Sb
407    2.060f, //  52  Te
408    2.150f, //  53  I
409    2.160f, //  54  Xe
410    1.700f, //  55  Cs
411    1.700f, //  56  Ba
412    1.700f, //  57  La
413    1.700f, //  58  Ce
414    1.700f, //  59  Pr
415    1.700f, //  60  Nd
416    1.700f, //  61  Pm
417    1.700f, //  62  Sm
418    1.700f, //  63  Eu
419    1.700f, //  64  Gd
420    1.700f, //  65  Tb
421    1.700f, //  66  Dy
422    1.700f, //  67  Ho
423    1.700f, //  68  Er
424    1.700f, //  69  Tm
425    1.700f, //  70  Yb
426    1.700f, //  71  Lu
427    1.700f, //  72  Hf
428    1.700f, //  73  Ta
429    1.700f, //  74  W
430    1.700f, //  75  Re
431    1.700f, //  76  Os
432    1.700f, //  77  Ir
433    1.720f, //  78  Pt
434    1.660f, //  79  Au
435    1.550f, //  80  Hg
436    1.960f, //  81  Tl
437    2.020f, //  82  Pb
438    1.700f, //  83  Bi
439    1.700f, //  84  Po
440    1.700f, //  85  At
441    1.700f, //  86  Rn
442    1.700f, //  87  Fr
443    1.700f, //  88  Ra
444    1.700f, //  89  Ac
445    1.700f, //  90  Th
446    1.700f, //  91  Pa
447    1.860f, //  92  U
448    1.700f, //  93  Np
449    1.700f, //  94  Pu
450    1.700f, //  95  Am
451    1.700f, //  96  Cm
452    1.700f, //  97  Bk
453    1.700f, //  98  Cf
454    1.700f, //  99  Es
455    1.700f, // 100  Fm
456    1.700f, // 101  Md
457    1.700f, // 102  No
458    1.700f, // 103  Lr
459    1.700f, // 104  Rf
460    1.700f, // 105  Db
461    1.700f, // 106  Sg
462    1.700f, // 107  Bh
463    1.700f, // 108  Hs
464    1.700f, // 109  Mt
465};
466
467const char * g_elementNames[NUM_ELEMENTS+1] = {
468    "?",    //   0  ?
469    "H",    //   1  H
470    "He",   //   2  He
471    "Li",   //   3  Li
472    "Be",   //   4  Be
473    "B",    //   5  B
474    "C",    //   6  C
475    "N",    //   7  N
476    "O",    //   8  O
477    "F",    //   9  F
478    "Ne",   //  10  Ne
479    "Na",   //  11  Na
480    "Mg",   //  12  Mg
481    "Al",   //  13  Al
482    "Si",   //  14  Si
483    "P",    //  15  P
484    "S",    //  16  S
485    "Cl",   //  17  Cl
486    "Ar",   //  18  Ar
487    "K",    //  19  K
488    "Ca",   //  20  Ca
489    "Sc",   //  21  Sc
490    "Ti",   //  22  Ti
491    "V",    //  23  V
492    "Cr",   //  24  Cr
493    "Mn",   //  25  Mn
494    "Fe",   //  26  Fe
495    "Co",   //  27  Co
496    "Ni",   //  28  Ni
497    "Cu",   //  29  Cu
498    "Zn",   //  30  Zn
499    "Ga",   //  31  Ga
500    "Ge",   //  32  Ge
501    "As",   //  33  As
502    "Se",   //  34  Se
503    "Br",   //  35  Br
504    "Kr",   //  36  Kr
505    "Rb",   //  37  Rb
506    "Sr",   //  38  Sr
507    "Y",    //  39  Y
508    "Zr",   //  40  Zr
509    "Nb",   //  41  Nb
510    "Mo",   //  42  Mo
511    "Tc",   //  43  Tc
512    "Ru",   //  44  Ru
513    "Rh",   //  45  Rh
514    "Pd",   //  46  Pd
515    "Ag",   //  47  Ag
516    "Cd",   //  48  Cd
517    "In",   //  49  In
518    "Sn",   //  50  Sn
519    "Sb",   //  51  Sb
520    "Te",   //  52  Te
521    "I",    //  53  I
522    "Xe",   //  54  Xe
523    "Cs",   //  55  Cs
524    "Ba",   //  56  Ba
525    "La",   //  57  La
526    "Ce",   //  58  Ce
527    "Pr",   //  59  Pr
528    "Nd",   //  60  Nd
529    "Pm",   //  61  Pm
530    "Sm",   //  62  Sm
531    "Eu",   //  63  Eu
532    "Gd",   //  64  Gd
533    "Tb",   //  65  Tb
534    "Dy",   //  66  Dy
535    "Ho",   //  67  Ho
536    "Er",   //  68  Er
537    "Tm",   //  69  Tm
538    "Yb",   //  70  Yb
539    "Lu",   //  71  Lu
540    "Hf",   //  72  Hf
541    "Ta",   //  73  Ta
542    "W",    //  74  W
543    "Re",   //  75  Re
544    "Os",   //  76  Os
545    "Ir",   //  77  Ir
546    "Pt",   //  78  Pt
547    "Au",   //  79  Au
548    "Hg",   //  80  Hg
549    "Tl",   //  81  Tl
550    "Pb",   //  82  Pb
551    "Bi",   //  83  Bi
552    "Po",   //  84  Po
553    "At",   //  85  At
554    "Rn",   //  86  Rn
555    "Fr",   //  87  Fr
556    "Ra",   //  88  Ra
557    "Ac",   //  89  Ac
558    "Th",   //  90  Th
559    "Pa",   //  91  Pa
560    "U",    //  92  U
561    "Np",   //  93  Np
562    "Pu",   //  94  Pu
563    "Am",   //  95  Am
564    "Cm",   //  96  Cm
565    "Bk",   //  97  Bk
566    "Cf",   //  98  Cf
567    "Es",   //  99  Es
568    "Fm",   // 100  Fm
569    "Md",   // 101  Md
570    "No",   // 102  No
571    "Lr",   // 103  Lr
572    "Rf",   // 104  Rf
573    "Db",   // 105  Db
574    "Sg",   // 106  Sg
575    "Bh",   // 107  Bh
576    "Hs",   // 108  Hs
577    "Mt",   // 109  Mt
578};
Note: See TracBrowser for help on using the repository browser.