41 {
42 if (!atoms.empty()) return atoms;
43 addAtom(
"Hydrogen",
"H", 1, 1.0);
44
45 addAtom(
"Helium",
"He", 2, 4.002602 * gram / mole);
46 addAtom(
"Lithium",
"Li", 3, 6.941 * gram / mole);
47 addAtom(
"Beryllium",
"Be", 4, 9.012182 * gram / mole);
48 addAtom(
"Boron",
"B", 5, 10.811 * gram / mole);
49 addAtom(
"Carbon",
"C", 6, 12.011 * gram / mole);
50 addAtom(
"Nitrogen",
"N", 7, 14.00674 * gram / mole);
51 addAtom(
"Oxygen",
"O", 8, 15.9994 * gram / mole);
52 addAtom(
"Fluorine",
"F", 9, 18.9984032 * gram / mole);
53 addAtom(
"Neon",
"Ne", 10, 20.1797 * gram / mole);
54 addAtom(
"Sodium",
"Na", 11, 22.989768 * gram / mole);
55 addAtom(
"Magnesium",
"Mg", 12, 24.3050 * gram / mole);
56 addAtom(
"Aluminium",
"Al", 13, 26.981539 * gram / mole);
57 addAtom(
"Silicon",
"Si", 14, 28.0855 * gram / mole);
58 addAtom(
"Phosphorus",
"P", 15, 30.973762 * gram / mole);
59 addAtom(
"Sulfur",
"S", 16, 32.066 * gram / mole);
60 addAtom(
"Chlorine",
"Cl", 17, 35.066 * gram / mole);
61 addAtom(
"Argon",
"Ar", 18, 39.948 * gram / mole);
62 addAtom(
"Argon_without_K",
"Ar_without_K", 16,
63 39.948 * gram / mole);
64 addAtom(
"Potassium",
"K", 19, 39.098 * gram / mole);
65 addAtom(
"Calcium",
"Ca", 20, 40.08 * gram / mole);
66 addAtom(
"Scandium",
"Sc", 21, 44.9559 * gram / mole);
67 addAtom(
"Titanium",
"Ti", 22, 47.867 * gram / mole);
68 addAtom(
"Vanadium",
"V", 23, 50.9414 * gram / mole);
69 addAtom(
"Chromium",
"Cr", 24, 51.996 * gram / mole);
70 addAtom(
"Manganese",
"Mn", 25, 54.9380 * gram / mole);
71 addAtom(
"Iron",
"Fe", 26, 55.845 * gram / mole);
72 addAtom(
"Cobalt",
"Co", 27, 58.9332 * gram / mole);
73 addAtom(
"Nickel",
"Ni", 28, 58.70 * gram / mole);
74 addAtom(
"Copper",
"Cu", 29, 63.546 * gram / mole);
75 addAtom(
"Zinc",
"Zn", 30, 65.38 * gram / mole);
76 addAtom(
"Gallium",
"Ga", 31, 69.72 * gram / mole);
77 addAtom(
"Germanium",
"Ge", 32, 72.59 * gram / mole);
78 addAtom(
"Arsenic",
"As", 33, 74.9216 * gram / mole);
79 addAtom(
"Selenium",
"Se", 34, 78.96 * gram / mole);
80 addAtom(
"Bromine",
"Br", 35, 79.904 * gram / mole);
81 addAtom(
"Krypton",
"Kr", 36, 83.80 * gram / mole);
82 addAtom(
"Rubidium",
"Rb", 37, 85.4673 * gram / mole);
83 addAtom(
"Strontium",
"Sr", 38, 87.62 * gram / mole);
84 addAtom(
"Yttrium",
"Y", 39, 88.9059 * gram / mole);
85 addAtom(
"Zirconium",
"Zr", 40, 91.22 * gram / mole);
86 addAtom(
"Niobium",
"Nb", 41, 92.9064 * gram / mole);
87 addAtom(
"Molybdenum",
"Mo", 42, 95.94 * gram / mole);
88 addAtom(
"Technetium",
"Tc", 43, 98 * gram / mole);
89 addAtom(
"Ruthenium",
"Ru", 44, 101.07 * gram / mole);
90 addAtom(
"Rhodium",
"Rh", 45, 102.9055 * gram / mole);
91 addAtom(
"Palladium",
"Pd", 46, 106.4 * gram / mole);
92 addAtom(
"Silver",
"Ag", 47, 107.868 * gram / mole);
93 addAtom(
"Cadmium",
"Cd", 48, 112.411 * gram / mole);
94 addAtom(
"Indium",
"In", 49, 114.818 * gram / mole);
95 addAtom(
"Tin",
"Sn", 50, 118.710 * gram / mole);
96 addAtom(
"Antimony",
"Sb", 51, 121.760 * gram / mole);
97 addAtom(
"Tellurium",
"Te", 52, 127.60 * gram / mole);
98 addAtom(
"Iodine",
"I", 53, 126.9045 * gram / mole);
99 addAtom(
"Xenon",
"Xe", 54, 131.293 * gram / mole);
100 addAtom(
"Caesium",
"Cs", 55, 132.9054519 * gram / mole);
101 addAtom(
"Tungsten",
"W", 74, 183.85 * gram / mole);
102 addAtom(
"Mercury",
"Hg", 80, 200.59 * gram / mole);
103 addAtom(
"Bismuth",
"Bi", 83, 208.9804 * gram / mole);
104 addAtom(
"Uranium",
"U", 92, 238.0289 * gram / mole);
105 addAtom(
"Plutonium",
"Pu", 94, 244.0 * gram / mole);
106 return atoms;
107}
static void addAtom(const std::string &name, const std::string ¬ation, const int z, const double a)