ERKALE
ERKALE - DFT from Hel
 All Classes Functions Variables Friends Pages
elements.h
1 /*
2  * This source code is part of
3  *
4  * E R K A L E
5  * -
6  * DFT from Hel
7  *
8  * Written by Susi Lehtola, 2010-2011
9  * Copyright (c) 2010-2011, Susi Lehtola
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  */
16 
17 
18 #ifndef ERKALE_ELEMENTS
19 #define ERKALE_ELEMENTS
20 
21 #include <string>
22 #include <vector>
23 
25 const std::string element_names[]={
26  "",
27  "Hydrogen","Helium",
28  "Lithium","Beryllium","Boron","Carbon","Nitrogen","Oxygen","Fluorine","Neon",
29  "Sodium","Magnesium","Aluminium","Silicon","Phosphorus","Sulfur","Chlorine","Argon",
30  "Potassium","Calcium","Scandium","Titanium","Vanadium","Chromium","Manganese","Iron","Cobalt","Nickel","Copper","Zinc","Gallium","Germanium","Arsenic","Selenium","Bromine","Krypton",
31  "Rubidium","Strontium","Yttrium","Zirconium","Niobium","Molybdenum","Technetium","Ruthenium","Rhodium","Palladium","Silver","Cadmium","Indium","Tin","Antimony","Tellurium","Iodine","Xenon",
32  "Caesium","Barium","Lanthanum","Cerium","Praseodymium","Neodynium","Promethium","Samarium","Europium","Gadolinium","Terbium","Dysprosium","Holmium","Erbium","Thulium","Ytterbium", "Lutetium", "Hafnium", "Tantalum", "Tungsten", "Rhenium", "Osmium", "Iridium", "Platinum", "Gold", "Mercury", "Thallium", "Lead", "Bismuth", "Polonium", "Astatine", "Radon",
33  "Francium", "Radium", "Actinium", "Thorium", "Protactinium", "Uranium", "Neptunium", "Plutonium", "Americium", "Curium", "Berkelium", "Californium", "Einsteinium", "Fermium", "Mendelevium", "Nobelium", "Lawrencium", "Rutherfordium", "Dubnium", "Seaborgium", "Bohrium", "Hassium", "Meitnerium", "Darmstadtium", "Roentgenium", "Copernicium", "Ununtrium", "Flevorium", "Ununpentium", "Livermorium", "Ununseptium", "Ununoctium"
34 };
35 
37 const std::string element_symbols[]={
38  "",
39  "H","He",
40  "Li","Be","B","C","N","O","F","Ne",
41  "Na","Mg","Al","Si","P","S","Cl","Ar",
42  "K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr",
43  "Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe",
44  "Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn",
45  "Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Uut","Fl","Uup","Lv","Uus","Uuo"
46 };
47 
49 const int maxZ=112;
50 
52 const int element_row[]={
53  0,
54  1, 1,
55  2, 2, 2, 2, 2, 2, 2, 2,
56  3, 3, 3, 3, 3, 3, 3, 3,
57  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
58  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
59  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
60  7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7};
61 
63 const int shell_order[]={0, 0, 1, 0, 1, 0, 2, 1, 0, 2, 1, 0, 3, 2, 1, 0, 3, 2, 1};
64 
66 std::vector<int> shell_count(int Z);
67 
70 const double atomic_masses[]={
71  0.0,
72  1.008000, 4.002602,
73  6.940000, 9.012182, 10.810000, 12.011000, 14.007000, 15.999000, 18.998403, 20.179700,
74  22.989769, 24.305000, 26.981539, 28.085000, 30.973762, 32.060000, 35.450000, 39.948000,
75  39.098300, 40.078000, 44.955912, 47.867000, 50.941500, 51.996100, 54.938045, 55.845000, 58.933195, 58.693400, 63.546000, 65.380000, 69.723000, 72.630000, 74.921600, 78.960000, 79.904000, 83.798000,
76  85.467800, 87.620000, 88.905850, 91.224000, 92.906380, 95.960000, -1e-10, 101.070000, 102.905500, 106.420000, 107.868200, 112.411000, 114.818000, 118.710000, 121.760000, 127.600000, 126.904470, 131.293000
77 };
78 
80 const int magicno[]={0, 2, 10, 18, 36, 54, 86, 118};
81 
83 int get_Z(std::string el);
84 
86 int atom_am(int Z);
87 
88 #endif