23 #ifndef COM_DAFER45_TBTK_ATOM
24 #define COM_DAFER45_TBTK_ATOM
35 Atom(
unsigned int atomicNumber);
63 static const Atom &Helium;
64 static const Atom &Lithium;
65 static const Atom &Beryllium;
66 static const Atom &Boron;
67 static const Atom &Carbon;
68 static const Atom &Nitrogen;
69 static const Atom &Oxygen;
70 static const Atom &Fluorine;
71 static const Atom &Neon;
72 static const Atom &Sodium;
73 static const Atom &Magnesium;
74 static const Atom &Aluminium;
75 static const Atom &Silicon;
76 static const Atom &Phosphorus;
77 static const Atom &Sulfur;
78 static const Atom &Chlorine;
79 static const Atom &Argon;
80 static const Atom &Potassium;
81 static const Atom &Calcium;
82 static const Atom &Scandium;
83 static const Atom &Titanium;
84 static const Atom &Vanadium;
85 static const Atom &Chromium;
86 static const Atom &Manganese;
87 static const Atom &Iron;
88 static const Atom &Cobalt;
89 static const Atom &Nickel;
90 static const Atom &Copper;
91 static const Atom &Zinc;
92 static const Atom &Gallium;
93 static const Atom &Germanium;
94 static const Atom &Arsenic;
95 static const Atom &Selenium;
96 static const Atom &Bromine;
97 static const Atom &Krypton;
98 static const Atom &Rubidium;
99 static const Atom &Strontium;
100 static const Atom &Yttrium;
101 static const Atom &Zirconium;
102 static const Atom &Niobium;
103 static const Atom &Molybdenum;
104 static const Atom &Technetium;
105 static const Atom &Ruthenium;
106 static const Atom &Rhodium;
107 static const Atom &Palladium;
108 static const Atom &Silver;
109 static const Atom &Cadmium;
110 static const Atom &Indium;
111 static const Atom &Tin;
112 static const Atom &Antimony;
113 static const Atom &Tellurium;
114 static const Atom &Iodine;
115 static const Atom &Xenon;
116 static const Atom &Caesium;
117 static const Atom &Barium;
118 static const Atom &Lanthanum;
119 static const Atom &Cerium;
120 static const Atom &Praseodymium;
121 static const Atom &Neodymium;
122 static const Atom &Promethium;
123 static const Atom &Samarium;
124 static const Atom &Europium;
125 static const Atom &Gadolinium;
126 static const Atom &Terbium;
127 static const Atom &Dysprosium;
128 static const Atom &Holmium;
129 static const Atom &Erbium;
130 static const Atom &Thulium;
131 static const Atom &Ytterbium;
132 static const Atom &Lutetium;
133 static const Atom &Hafnium;
134 static const Atom &Tantalum;
135 static const Atom &Tungsten;
136 static const Atom &Rhenium;
137 static const Atom &Osmium;
138 static const Atom &Iridium;
139 static const Atom &Platinum;
140 static const Atom &Gold;
141 static const Atom &Mercury;
142 static const Atom &Thallium;
143 static const Atom &Lead;
144 static const Atom &Bismuth;
145 static const Atom &Polonium;
146 static const Atom &Astatine;
147 static const Atom &Radon;
148 static const Atom &Francium;
149 static const Atom &Radium;
150 static const Atom &Actinium;
151 static const Atom &Thorium;
152 static const Atom &Protactinium;
153 static const Atom &Uranium;
154 static const Atom &Neptunium;
155 static const Atom &Plutonium;
156 static const Atom &Americium;
157 static const Atom &Curium;
158 static const Atom &Berkelium;
159 static const Atom &Californium;
160 static const Atom &Einsteinium;
161 static const Atom &Fermium;
162 static const Atom &Mendelevium;
163 static const Atom &Nobelium;
164 static const Atom &Lawrencium;
165 static const Atom &Rutherfordium;
166 static const Atom &Dubnium;
167 static const Atom &Seaborgium;
168 static const Atom &Bohrium;
169 static const Atom &Hassium;
170 static const Atom &Meitnerium;
171 static const Atom &Darmstadtium;
172 static const Atom &Roentgenium;
173 static const Atom &Copernicium;
174 static const Atom &Nihonium;
175 static const Atom &Flerovium;
176 static const Atom &Moscovium;
177 static const Atom &Livermorium;
178 static const Atom &Tennessine;
179 static const Atom &Oganesson;
183 static const Atom &He;
184 static const Atom &Li;
185 static const Atom &Be;
186 static const Atom &B;
187 static const Atom &C;
188 static const Atom &N;
189 static const Atom &O;
190 static const Atom &F;
191 static const Atom &Ne;
192 static const Atom &Na;
193 static const Atom &Mg;
194 static const Atom &Al;
195 static const Atom &Si;
196 static const Atom &P;
197 static const Atom &S;
198 static const Atom &Cl;
199 static const Atom &Ar;
200 static const Atom &K;
201 static const Atom &Ca;
202 static const Atom ⪼
203 static const Atom &Ti;
204 static const Atom &V;
205 static const Atom &Cr;
206 static const Atom &Mn;
207 static const Atom &Fe;
208 static const Atom &Co;
209 static const Atom &Ni;
210 static const Atom &Cu;
211 static const Atom &Zn;
212 static const Atom &Ga;
213 static const Atom &Ge;
214 static const Atom &As;
215 static const Atom &Se;
216 static const Atom &Br;
217 static const Atom &Kr;
218 static const Atom &Rb;
219 static const Atom &Sr;
220 static const Atom &Y;
221 static const Atom &Zr;
222 static const Atom &Nb;
223 static const Atom &Mo;
224 static const Atom &Tc;
225 static const Atom &Ru;
226 static const Atom &Rh;
227 static const Atom &Pd;
228 static const Atom &Ag;
229 static const Atom &Cd;
230 static const Atom &In;
231 static const Atom &Sn;
232 static const Atom &Sb;
233 static const Atom &Te;
234 static const Atom &I;
235 static const Atom &Xe;
236 static const Atom &Cs;
237 static const Atom &Ba;
238 static const Atom &La;
239 static const Atom &Ce;
240 static const Atom ⪻
241 static const Atom &Nd;
242 static const Atom &Pm;
243 static const Atom &Sm;
244 static const Atom &Eu;
245 static const Atom &Gd;
246 static const Atom &Tb;
247 static const Atom &Dy;
248 static const Atom &Ho;
249 static const Atom &Er;
250 static const Atom &Tm;
251 static const Atom &Yb;
252 static const Atom &Lu;
253 static const Atom &Hf;
254 static const Atom &Ta;
255 static const Atom &W;
256 static const Atom ℜ
257 static const Atom &Os;
258 static const Atom &Ir;
259 static const Atom &Pt;
260 static const Atom &Au;
261 static const Atom &Hg;
262 static const Atom &Tl;
263 static const Atom &Pb;
264 static const Atom &Bi;
265 static const Atom &Po;
266 static const Atom &At;
267 static const Atom &Rn;
268 static const Atom &Fr;
269 static const Atom &Ra;
270 static const Atom &Ac;
271 static const Atom &Th;
272 static const Atom &Pa;
273 static const Atom &U;
274 static const Atom &Np;
275 static const Atom &Pu;
276 static const Atom &Am;
277 static const Atom &Cm;
278 static const Atom &Bk;
279 static const Atom &Cf;
280 static const Atom &Es;
281 static const Atom &Fm;
282 static const Atom &Md;
283 static const Atom &No;
284 static const Atom &Lr;
285 static const Atom &Rf;
286 static const Atom &Db;
287 static const Atom &Sg;
288 static const Atom &Bh;
289 static const Atom &Hs;
290 static const Atom &Mt;
291 static const Atom &Ds;
292 static const Atom &Rg;
293 static const Atom &Cn;
294 static const Atom &Nh;
295 static const Atom &Fl;
296 static const Atom &Mc;
297 static const Atom &Lv;
298 static const Atom &Ts;
299 static const Atom &Og;
302 unsigned int atomicNumber;
305 static constexpr
unsigned int totalNumAtoms = 118;
308 static std::string symbols[];
311 static std::string names[];
314 static double standardWeights[];
325 return symbols[atomicNumber];
329 return names[atomicNumber];
333 return UnitHandler::convertArbitraryToBase<Quantity::Mass>(
334 standardWeights[atomicNumber],
335 Quantity::Mass::Unit::u
340 if(atomicNumber > totalNumAtoms)
343 return atoms[atomicNumber];
347 for(
unsigned int n = 1; n <= totalNumAtoms; n++)
348 if(symbols[n].compare(symbol) == 0)
355 for(
unsigned int n = 1; n <= totalNumAtoms; n++)
356 if(names[n].compare(name) == 0)