JDFTx  1.2.0
symbols.h
1 /*-------------------------------------------------------------------
2 Copyright 2013 Ravishankar Sundararaman
3 
4 This file is part of JDFTx.
5 
6 JDFTx is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10 
11 JDFTx is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with JDFTx. If not, see <http://www.gnu.org/licenses/>.
18 -------------------------------------------------------------------*/
19 
20 #ifndef JDFTX_ELECTRONIC_SYMBOLS_H
21 #define JDFTX_ELECTRONIC_SYMBOLS_H
22 
23 #include <core/Util.h>
24 
25 enum class AtomicSymbol : int
26 { H = 1,
27  He = 2,
28  Li = 3,
29  Be = 4,
30  B = 5,
31  C = 6,
32  N = 7,
33  O = 8,
34  F = 9,
35  Ne = 10,
36  Na = 11,
37  Mg = 12,
38  Al = 13,
39  Si = 14,
40  P = 15,
41  S = 16,
42  Cl = 17,
43  Ar = 18,
44  K = 19,
45  Ca = 20,
46  Sc = 21,
47  Ti = 22,
48  V = 23,
49  Cr = 24,
50  Mn = 25,
51  Fe = 26,
52  Co = 27,
53  Ni = 28,
54  Cu = 29,
55  Zn = 30,
56  Ga = 31,
57  Ge = 32,
58  As = 33,
59  Se = 34,
60  Br = 35,
61  Kr = 36,
62  Rb = 37,
63  Sr = 38,
64  Y = 39,
65  Zr = 40,
66  Nb = 41,
67  Mo = 42,
68  Tc = 43,
69  Ru = 44,
70  Rh = 45,
71  Pd = 46,
72  Ag = 47,
73  Cd = 48,
74  In = 49,
75  Sn = 50,
76  Sb = 51,
77  Te = 52,
78  I = 53,
79  Xe = 54,
80  Cs = 55,
81  Ba = 56,
82  La = 57,
83  Ce = 58,
84  Pr = 59,
85  Nd = 60,
86  Pm = 61,
87  Sm = 62,
88  Eu = 63,
89  Gd = 64,
90  Tb = 65,
91  Dy = 66,
92  Ho = 67,
93  Er = 68,
94  Tm = 69,
95  Yb = 70,
96  Lu = 71,
97  Hf = 72,
98  Ta = 73,
99  W = 74,
100  Re = 75,
101  Os = 76,
102  Ir = 77,
103  Pt = 78,
104  Au = 79,
105  Hg = 80,
106  Tl = 81,
107  Pb = 82,
108  Bi = 83,
109  Po = 84,
110  At = 85,
111  Rn = 86,
112  Fr = 87,
113  Ra = 88,
114  Ac = 89,
115  Th = 90,
116  Pa = 91,
117  U = 92,
118  Np = 93,
119  Pu = 94,
120  Am = 95,
121  Cm = 96,
122  Bk = 97,
123  Cf = 98,
124  Es = 99,
125  Fm = 100,
126  Md = 101,
127  No = 102,
128  Lr = 103,
129  Rf = 104,
130  Db = 105,
131  Sg = 106,
132  Bh = 107,
133  Hs = 108,
134  Mt = 109,
135  Ds = 110,
136  Rg = 111,
137  Cn = 112,
138  Uut = 113,
139  Uuq = 114,
140  Uup = 115,
141  Uuh = 116,
142  Uus = 117,
143  Uuo = 118,
144 };
145 
146 extern EnumStringMap<AtomicSymbol> atomicSymbolMap;
147 
148 double atomicMass(AtomicSymbol);
149 
150 #endif // JDFTX_ELECTRONIC_SYMBOLS_H
A template to ease option parsing (maps enums <–> strings)
Definition: Util.h:179
ScalarField I(const ScalarFieldTilde &, bool compat=false, int nThreads=0)
Forward transform: PW basis -> real space (preserve input)
ScalarFieldTilde O(const ScalarFieldTilde &)
Inner product operator (diagonal in PW basis)
Miscellaneous utilities.