source: molecuilder/src/elements_db.cpp@ 25a549

Last change on this file since 25a549 was 06f141, checked in by Frederik Heber <heber@…>, 15 years ago

"-e <db path>" not necessary anymore.

Removed necessity of specifying path to databases (this was one check of molecuilder/test/testsuite.at which cannot be fulfilled anymore with boost::program_options)
For this to work a great number of small changes have been necessary:

class periodentafel:

  • all .db files merged into const char * arrays in elements_db.cpp
  • periodentafel rewritten:
  • FindElement(), AskElement() and EnterElement return element * const instead of const element * (i.e. the contents of the pointer is const (the element) not the pointer itself which is very vexatious (i.e. FindElement() yields const element * which can subsequently not be used for RemoveElement(), ...)
  • parsedElems is not needed anymore. Instead we operate on map elements directly
  • new unittest periodentafelTest which is made friend of periodentafel to be able to access private loading functions directly

A number of unit tests had to be changed (all that create elements during setUp() which is now unnecessary)

Some of the analysis_bonds function's signatures were changed in the process:

Finally, the respective tests are removed from molecuilder/tests/testsuite.at.

  • Property mode set to 100755
File size: 8.0 KB
Line 
1/*
2 * elements_db.cpp
3 *
4 * Created on: 17.05.2010
5 * Author: heber
6 */
7
8const char *elementsDB =\
9"# Covalent radius of each element in Angstroem from CSD (binding is: [Rcov(A)+Rcov(B)-t,Rcov(A)+Rcov(B)+t] with t = 0.4A\n\
10#Element Name Symbol Period Group Block Atomic Number AtomicWeight Covalent Radius vdW Radius\n\
11Hydrogen H 1 1 s 1 1.008 0.23 1.09\n\
12Helium He 1 18 p 2 4.003 1.50 1.40\n\
13Lithium Li 2 1 s 3 6.941 0.68 1.82\n\
14Beryllium Be 2 2 s 4 9.012 0.35 2.00\n\
15Boron B 2 13 p 5 10.811 0.83 2.00\n\
16Carbon C 2 14 p 6 12.011 0.68 1.70\n\
17Nitrogen N 2 15 p 7 14.007 0.68 1.55\n\
18Oxygen O 2 16 p 8 15.999 0.68 1.52\n\
19Fluorine F 2 17 p 9 18.998 0.64 1.47\n\
20Neon Ne 2 18 p 10 20.180 1.50 1.54\n\
21Sodium Na 3 1 s 11 22.991 0.97 2.27\n\
22Magnesium Mg 3 2 s 12 24.305 1.10 1.73\n\
23Aluminium Al 3 13 p 13 26.982 1.35 2.00\n\
24Silicon Si 3 14 p 14 28.086 1.20 2.10\n\
25Phosphorus P 3 15 p 15 30.974 1.05 1.80\n\
26Sulphur S 3 16 p 16 32.066 1.02 1.80\n\
27Chlorine Cl 3 17 p 17 35.453 0.99 1.75\n\
28Argon Ar 3 18 p 18 39.948 1.51 1.88\n\
29Potassium K 4 1 s 19 39.098 1.33 2.75\n\
30Calcium Ca 4 2 s 20 40.078 0.99 2.00\n\
31Scandium Sc 4 3 d 21 44.956 1.44 2.00\n\
32Titanium Ti 4 4 d 22 47.867 1.47 2.00\n\
33Vanadium V 4 5 d 23 50.942 1.33 2.00\n\
34Chromium Cr 4 6 d 24 51.996 1.35 2.00\n\
35Manganese Mn 4 7 d 25 54.938 1.35 2.00\n\
36Iron Fe 4 8 d 26 55.845 1.34 2.00\n\
37Cobalt Co 4 9 d 27 58.933 1.33 2.00\n\
38Nickel Ni 4 10 d 28 58.693 1.50 1.63\n\
39Copper Cu 4 11 d 29 63.546 1.52 1.40\n\
40Zinc Zn 4 12 d 30 65.390 1.45 1.39\n\
41Gallium Ga 4 13 p 31 69.723 1.22 1.87\n\
42Germanium Ge 4 14 p 32 72.610 1.17 2.00\n\
43Arsenic As 4 15 p 33 74.922 1.21 1.85\n\
44Selenium Se 4 16 p 34 78.960 1.22 1.90\n\
45Bromine Br 4 17 p 35 79.904 1.21 1.85\n\
46Krypton Kr 4 18 p 36 83.800 1.50 2.02\n\
47Rubidium Rb 5 1 s 37 85.468 1.47 2.00\n\
48Strontium Sr 5 2 s 38 87.620 1.12 2.00\n\
49Yttrium Y 5 3 d 39 88.906 1.78 2.00\n\
50Zirconium Zr 5 4 d 40 91.224 1.56 2.00\n\
51Niobium Nb 5 5 d 41 92.906 1.48 2.00\n\
52Molybdenum Mo 5 6 d 42 95.940 1.47 2.00\n\
53Technetium Tc 5 7 d 43 98 1.35 2.00\n\
54Ruthenium Ru 5 8 d 44 101.070 1.40 2.00\n\
55Rhodium Rh 5 9 d 45 102.906 1.45 2.00\n\
56Palladium Pd 5 10 d 46 106.420 1.50 1.63\n\
57Silver Ag 5 11 d 47 107.868 1.59 1.72\n\
58Cadmium Cd 5 12 d 48 112.411 1.69 1.58\n\
59Indium In 5 13 p 49 114.818 1.63 1.93\n\
60Tin Sn 5 14 p 50 118.71 1.46 2.17\n\
61Antimony Sb 5 15 p 51 121.760 1.46 2.00\n\
62Tellurium Te 5 16 p 52 127.600 1.47 2.06\n\
63Iodine I 5 17 p 53 126.904 1.40 1.98\n\
64Xenon Xe 5 18 p 54 131.290 1.50 2.16\n\
65Caesium Cs 6 1 s 55 132.905 1.67 2.00\n\
66Barium Ba 6 2 s 56 137.327 1.34 2.00\n\
67Lutetium Lu 6 3 d 71 174.967 1.72 2.00\n\
68Hafnium Hf 6 4 d 72 178.490 1.57 2.00\n\
69Tantalum Ta 6 5 d 73 180.948 1.43 2.00\n\
70Tungsten W 6 6 d 74 183.840 1.37 2.00\n\
71Rhenium Re 6 7 d 75 186.207 1.35 2.00\n\
72Osmium Os 6 8 d 76 190.230 1.37 2.00\n\
73Iridium Ir 6 9 d 77 192.217 1.32 2.00\n\
74Platinum Pt 6 10 d 78 195.078 1.50 1.72\n\
75Gold Au 6 11 d 79 196.967 1.50 1.66\n\
76Mercury Hg 6 12 d 80 200.590 1.70 1.55\n\
77Thallium Tl 6 13 p 81 204.383 1.55 1.96\n\
78Lead Pb 6 14 p 82 207.200 1.54 2.02\n\
79Bismuth Bi 6 15 p 83 208.980 1.54 2.00\n\
80Polonium Po 6 16 p 84 210 1.68 2.00\n\
81Astatine At 6 17 p 85 210 1.21 2.00\n\
82Radon Rn 6 18 p 86 222 1.50 2.00\n\
83Cerium Ce 6Lan 19 f 58 140.116 1.83 2.00\n\
84Dysprosium Dy 6Lan 19 f 66 162.500 1.75 2.00\n\
85Erbium Er 6Lan 19 f 68 167.260 1.73 2.00\n\
86Europium Eu 6Lan 19 f 63 151.964 1.99 2.00\n\
87Gadolinium Gd 6Lan 19 f 64 157.250 1.79 2.00\n\
88Holmium Ho 6Lan 19 f 67 164.930 1.74 2.00\n\
89Lanthanum La 6Lan 19 f 57 138.906 1.87 2.00\n\
90Neodymium Nd 6Lan 19 f 60 144.240 1.81 2.00\n\
91Promethium Pm 6Lan 19 f 61 145 1.80 2.00\n\
92Praseodymium Pr 6Lan 19 f 59 140.908 1.82 2.00\n\
93Samarium Sm 6Lan 19 f 62 150.360 1.80 2.00\n\
94Terbium Tb 6Lan 19 f 65 158.925 1.76 2.00\n\
95Thulium Tm 6Lan 19 f 69 168.934 1.72 2.00\n\
96Ytterbium Yb 6Lan 19 f 70 173.040 1.94 2.00\n\
97Francium Fr 7 1 s 87 223 1.50 2.00\n\
98Radium Ra 7 2 s 88 226 1.90 2.00\n\
99Lawrencium Lr 7 3 d 103 262 1.50 2.00\n\
100Rutherfordium Rf 7 4 d 104 261 1.50 2.00\n\
101Dubnium Db 7 5 d 105 262 1.50 2.00\n\
102Seaborgium Sg 7 6 d 106 266 1.50 2.00\n\
103Bohrium Bh 7 7 d 107 264 1.50 2.00\n\
104Hassium Hs 7 8 d 108 269 1.50 2.00\n\
105Meitnerium Mt 7 9 d 109 268 1.50 2.00\n\
106Darmstadtium Ds 7 10 d 110 271 1.50 2.00\n\
107Actinium Ac 7Act 20 f 89 227 1.88 2.00\n\
108Americium Am 7Act 20 f 95 243 1.51 2.00\n\
109Berkelium Bk 7Act 20 f 97 247 1.54 2.00\n\
110Californium Cf 7Act 20 f 98 251 1.83 2.00\n\
111Curium Cm 7Act 20 f 96 247 0.99 2.00\n\
112Einsteinium Es 7Act 20 f 99 252 1.50 2.00\n\
113Fermium Fm 7Act 20 f 100 257 1.50 2.00\n\
114Mendelevium Md 7Act 20 f 101 258 1.50 2.00\n\
115Nobelium No 7Act 20 f 102 259 1.50 2.00\n\
116Neptunium Np 7Act 20 f 93 237 1.55 2.00\n\
117Protactinium Pa 7Act 20 f 91 231.036 1.61 2.00\n\
118Plutonium Pu 7Act 20 f 94 244 1.53 2.00\n\
119Thorium Th 7Act 20 f 90 232.038 1.79 2.00\n\
120Uranium U 7Act 20 f 92 238.029 1.58 1.86\n\
121";
122
123const char *HbonddistanceDB =\
124"#atomic number bond distances for single, double and triple bond (-1 no bond)\n\
1251 0.74 -1 -1\n\
1262 0.77429209 -1 -1\n\
1275 1.23 1.19 1.18\n\
1286 1.09 1.076 1.06\n\
1297 1.04 1.02 1.01\n\
1308 0.96 0.957 -1\n\
13114 1.48 1.48 1.48\n\
13215 1.42 -1 -1\n\
13316 1.35 -1 -1\n\
13417 1.29 -1 -1\n\
13520 1.09 1.09 -1\n\
13634 1.47 -1 -1\n\
13735 1.44 -1 -1\n\
138";
139
140const char *HbondangleDB =\
141"# atomicnumber angles for single, double and triple bond (-1 no angle)\n\
1421 180 -1 -1\n\
1435 180 131.0 109.2\n\
1446 180 120 109.47\n\
1457 180 110 106.67\n\
1468 180 104.5 -1\n\
14714 180 120 109.47\n\
14815 180 -1 -1\n\
14916 180 -1 -1\n\
15017 180 -1 -1\n\
15120 180 120 109.47\n\
15234 180 -1 -1\n\
15335 180 -1 -1\n\
154";
155
156const char *orbitalsDB =\
157"# atomicnumber numberoforbitals\n\
1581 1\n\
1592 0\n\
1603 1\n\
1614 2\n\
1625 3\n\
1636 4\n\
1647 3\n\
1658 2\n\
1669 1\n\
16710 0\n\
16811 1\n\
16912 2\n\
17013 3\n\
17114 4\n\
17215 3\n\
17316 2\n\
17417 1\n\
17518 0\n\
17619 1\n\
17720 4\n\
17821 3\n\
17922 4\n\
18023 5\n\
18124 6\n\
18225 4\n\
18326 3\n\
18427 3\n\
18528 2\n\
18629 2\n\
18730 2\n\
18831 3\n\
18932 4\n\
19033 3\n\
19134 2\n\
19235 1\n\
19336 0\n\
19437 1\n\
19538 2\n\
19639 3\n\
19740 4\n\
19841 5\n\
19942 6\n\
20043 6\n\
20144 8\n\
20245 4\n\
20346 4\n\
20447 1\n\
20548 2\n\
20649 3\n\
20750 4\n\
20851 3\n\
20952 2\n\
21053 1\n\
21154 0\n\
21255 1\n\
21356 2\n\
21457 3\n\
21558 4\n\
21659 3\n\
21760 4\n\
21861 3\n\
21962 3\n\
22063 3\n\
22164 3\n\
22265 4\n\
22366 3\n\
22467 3\n\
22568 3\n\
22669 3 \n\
22770 3\n\
22871 3\n\
22972 4\n\
23073 5\n\
23174 6\n\
23275 7\n\
23376 8\n\
23477 6\n\
23578 6\n\
23679 3\n\
23780 2\n\
23881 3\n\
23982 4\n\
24083 3\n\
24184 4\n\
24286 0\n\
24388 2\n\
24489 3\n\
24590 4\n\
24691 5\n\
24792 6\n\
248";
249
250const char *valenceDB =\
251"#atomicnumber numberofvalenceorbitals\n\
2521 0.10000000000000E+01\n\
2532 0.20000000000000E+01\n\
2543 0.10000000000000E+01\n\
2554 0.20000000000000E+01\n\
2565 0.30000000000000E+01\n\
2576 0.40000000000000E+01\n\
2587 0.50000000000000E+01\n\
2598 0.60000000000000E+01\n\
2609 0.70000000000000E+01\n\
26110 0.80000000000000E+01\n\
26211 0.10000000000000E+01\n\
26312 0.40000000000000E+01\n\
26413 .3000000000000000E+01\n\
26514 0.40000000000000E+01\n\
26615 0.50000000000000E+01\n\
26716 0.60000000000000E+01\n\
26817 0.70000000000000E+01\n\
26918 0.80000000000000E+01\n\
27019 0.30000000000000E+01\n\
27120 0.40000000000000E+01\n\
27221 0.30000000000000E+01\n\
27322 0.40000000000000E+01\n\
27423 0.50000000000000E+01\n\
27524 0.60000000000000E+01\n\
27625 0.70000000000000E+01\n\
27726 0.80000000000000E+01\n\
27827 0.90000000000000E+01\n\
27928 0.10000000000000E+02\n\
28029 0.11000000000000E+02\n\
28130 0.12000000000000E+02\n\
28231 3.00000000000000000\n\
28332 0.40000000000000E+01\n\
28433 5.00000000000000000\n\
28534 0.60000000000000E+01\n\
28635 0.70000000000000E+01\n\
28736 0.80000000000000E+01\n\
28837 0.10000000000000E+01\n\
28938 0.20000000000000E+01\n\
29039 0.30000000000000E+01\n\
29140 0.40000000000000E+01\n\
29241 0.50000000000000E+01\n\
29342 0.60000000000000E+01\n\
29443 0.70000000000000E+01\n\
29544 0.80000000000000E+01\n\
29645 0.90000000000000E+01\n\
29746 0.10000000000000E+02\n\
29847 0.11000000000000E+02\n\
29948 0.12000000000000E+02\n\
30049 0.30000000000000E+01\n\
30150 0.40000000000000E+01\n\
30251 0.50000000000000E+01\n\
30352 0.60000000000000E+01\n\
30453 0.70000000000000E+01\n\
30554 0.80000000000000E+01\n\
30655 0.10000000000000E+01\n\
30756 0.20000000000000E+01\n\
30872 0.40000000000000E+01\n\
30973 0.50000000000000E+01\n\
31074 0.60000000000000E+01\n\
31175 0.70000000000000E+01\n\
31276 0.80000000000000E+01\n\
31377 0.90000000000000E+01\n\
31478 0.10000000000000E+02\n\
31579 0.11000000000000E+02\n\
31680 0.12000000000000E+02\n\
317";
Note: See TracBrowser for help on using the repository browser.