use std::collections::HashMap;
pub fn atomic_weights_mono_isotopic() -> HashMap<&'static str, f64> {
let mut map = HashMap::new();
map.insert("H", 1.00782503223);
map.insert("He", 4.00260325415);
map.insert("Li", 7.0160034366);
map.insert("Be", 9.012183065);
map.insert("B", 11.00930536);
map.insert("C", 12.0000000);
map.insert("N", 14.00307400443);
map.insert("O", 15.99491461957);
map.insert("F", 18.99840316273);
map.insert("Ne", 19.9924401762);
map.insert("Na", 22.9897692820);
map.insert("Mg", 23.985041697);
map.insert("Al", 26.98153853);
map.insert("Si", 27.97692653465);
map.insert("P", 30.97376199842);
map.insert("S", 31.9720711744);
map.insert("Cl", 34.968852682);
map.insert("Ar", 39.9623831237);
map.insert("K", 38.963706679);
map.insert("Ca", 39.96259098);
map.insert("Sc", 44.95590828);
map.insert("Ti", 47.9479463);
map.insert("V", 50.9439595);
map.insert("Cr", 51.9405075);
map.insert("Mn", 54.9380455);
map.insert("Fe", 55.9349375);
map.insert("Co", 58.9331955);
map.insert("Ni", 57.9353429);
map.insert("Cu", 62.9295975);
map.insert("Zn", 63.9291422);
map.insert("Ga", 68.9255735);
map.insert("Ge", 73.9211778);
map.insert("As", 74.9215965);
map.insert("Se", 79.9165218);
map.insert("Br", 78.9183376);
map.insert("Kr", 83.911507);
map.insert("Rb", 84.9117893);
map.insert("Sr", 87.9056125);
map.insert("Y", 88.905842);
map.insert("Zr", 89.9046977);
map.insert("Nb", 92.906373);
map.insert("Mo", 97.905404);
map.insert("Tc", 98.0);
map.insert("Ru", 101.904349);
map.insert("Rh", 102.905504);
map.insert("Pd", 105.903485);
map.insert("Ag", 106.905093);
map.insert("Cd", 113.903358);
map.insert("In", 114.903878);
map.insert("Sn", 119.902199);
map.insert("Sb", 120.903818);
map.insert("Te", 129.906224);
map.insert("I", 126.904473);
map.insert("Xe", 131.904155);
map.insert("Cs", 132.905447);
map.insert("Ba", 137.905247);
map.insert("La", 138.906355);
map.insert("Ce", 139.905442);
map.insert("Pr", 140.907662);
map.insert("Nd", 141.907732);
map.insert("Pm", 145.0);
map.insert("Sm", 151.919728);
map.insert("Eu", 152.921225);
map.insert("Gd", 157.924103);
map.insert("Tb", 158.925346);
map.insert("Dy", 163.929171);
map.insert("Ho", 164.930319);
map.insert("Er", 165.930290);
map.insert("Tm", 168.934211);
map.insert("Yb", 173.938859);
map.insert("Lu", 174.940770);
map.insert("Hf", 179.946550);
map.insert("Ta", 180.947992);
map.insert("W", 183.950932);
map.insert("Re", 186.955744);
map.insert("Os", 191.961467);
map.insert("Ir", 192.962917);
map.insert("Pt", 194.964766);
map.insert("Au", 196.966543);
map.insert("Hg", 201.970617);
map.insert("Tl", 204.974427);
map.insert("Pb", 207.976627);
map.insert("Bi", 208.980384);
map.insert("Po", 209.0);
map.insert("At", 210.0);
map.insert("Rn", 222.0);
map.insert("Fr", 223.0);
map.insert("Ra", 226.0);
map.insert("Ac", 227.0);
map.insert("Th", 232.038054);
map.insert("Pa", 231.035882);
map.insert("U", 238.050786);
map.insert("Np", 237.0);
map.insert("Pu", 244.0);
map.insert("Am", 243.0);
map.insert("Cm", 247.0);
map.insert("Bk", 247.0);
map.insert("Cf", 251.0);
map.insert("Es", 252.0);
map.insert("Fm", 257.0);
map.insert("Md", 258.0);
map.insert("No", 259.0);
map.insert("Lr", 262.0);
map.insert("Rf", 267.0);
map.insert("Db", 270.0);
map.insert("Sg", 271.0);
map.insert("Bh", 270.0);
map.insert("Hs", 277.0);
map.insert("Mt", 276.0);
map.insert("Ds", 281.0);
map.insert("Rg", 280.0);
map.insert("Cn", 285.0);
map.insert("Nh", 284.0);
map.insert("Fl", 289.0);
map.insert("Mc", 288.0);
map.insert("Lv", 293.0);
map.insert("Ts", 294.0);
map.insert("Og", 294.0);
map
}
pub fn atoms_isotopic_weights() -> HashMap<&'static str, Vec<f64>> {
let mut map = HashMap::new();
map.insert("H", vec![1.00782503223, 2.01410177812]);
map.insert("He", vec![4.00260325415]);
map.insert("Li", vec![7.0160034366]);
map.insert("Be", vec![9.012183065]);
map.insert("B", vec![11.00930536]);
map.insert("C", vec![12.0000000, 13.00335483507]);
map.insert("N", vec![14.00307400443, 15.00010889888]);
map.insert("O", vec![15.99491461957, 16.99913175650, 17.99915961286]);
map.insert("F", vec![18.99840316273]);
map.insert("Ne", vec![19.9924401762]);
map.insert("Na", vec![22.9897692820]);
map.insert("Mg", vec![23.985041697]);
map.insert("Al", vec![26.98153853]);
map.insert("Si", vec![27.97692653465]);
map.insert("P", vec![30.97376199842]);
map.insert("S", vec![31.9720711744, 32.9714589098, 33.967867004]);
map.insert("Cl", vec![34.968852682, 36.965902602]);
map.insert("Ar", vec![39.9623831237, 35.967545105]);
map.insert("K", vec![38.963706679, 39.963998166, 40.961825257]);
map.insert("Ca", vec![39.96259098, 41.95861783, 42.95876644, 43.95548156, 45.95369276]);
map.insert("Sc", vec![44.95590828]);
map.insert("Ti", vec![47.9479463, 45.95262772, 46.95175879, 47.94794198, 49.9447912]);
map.insert("V", vec![50.9439595]);
map.insert("Cr", vec![51.9405075, 49.94604183, 50.9439637, 51.94050623, 53.93887916]);
map.insert("Mn", vec![54.9380455]);
map.insert("Fe", vec![55.9349375, 53.93960899, 54.93804514, 55.93493739, 56.93539400, 57.93327443]);
map.insert("Co", vec![58.9331955]);
map.insert("Ni", vec![57.9353429, 58.9343467, 59.93078588, 60.93105557, 61.92834537, 63.92796682]);
map.insert("Cu", vec![62.9295975, 61.92834537, 63.92914201]);
map.insert("Zn", vec![63.9291422, 65.92603381, 66.92712775, 67.92484455, 69.9253192]);
map.insert("Ga", vec![68.9255735]);
map.insert("Ge", vec![73.9211778, 71.922075826, 72.923458956, 73.921177761, 75.921402726]);
map.insert("As", vec![74.9215965]);
map.insert("Se", vec![79.9165218, 73.9224764, 75.9192136, 76.9199140, 77.9173095, 79.9165218, 81.9166995]);
map
}
pub fn isotopic_abundance() -> HashMap<&'static str, Vec<f64>> {
let mut map = HashMap::new();
map.insert("H", vec![0.999885, 0.000115]);
map.insert("He", vec![0.99999866, 0.00000134]);
map.insert("Li", vec![0.0759, 0.9241]);
map.insert("Be", vec![1.0]);
map.insert("B", vec![0.199, 0.801]);
map.insert("C", vec![0.9893, 0.0107]);
map.insert("N", vec![0.99632, 0.00368]);
map.insert("O", vec![0.99757, 0.00038, 0.00205]);
map.insert("F", vec![1.0]);
map.insert("Ne", vec![0.9048, 0.0027, 0.0925]);
map.insert("Na", vec![0.5429, 0.4571]);
map.insert("Mg", vec![0.7899, 0.1000, 0.1101]);
map.insert("Al", vec![1.0]);
map.insert("Si", vec![0.9223, 0.0467, 0.0310]);
map.insert("P", vec![1.0]);
map.insert("S", vec![0.9493, 0.0076, 0.0429]);
map.insert("Cl", vec![0.7578, 0.2422]);
map.insert("Ar", vec![0.003365, 0.000632, 0.996003]);
map.insert("K", vec![0.932581, 0.000117, 0.067302]);
map.insert("Ca", vec![0.96941, 0.00647, 0.00135, 0.02086, 0.00187]);
map.insert("Sc", vec![1.0]);
map.insert("Ti", vec![0.0825, 0.0744, 0.7372, 0.0541, 0.0518]);
map.insert("V", vec![0.9975, 0.0025]);
map.insert("Cr", vec![0.04345, 0.83789, 0.09501, 0.02365, 0.0001]);
map.insert("Mn", vec![1.0]);
map.insert("Fe", vec![0.05845, 0.91754, 0.02119, 0.00282, 0.0002]);
map.insert("Co", vec![1.0]);
map.insert("Ni", vec![0.680769, 0.262231, 0.011399, 0.036345, 0.009256, 0.0011]);
map.insert("Cu", vec![0.6915, 0.3085]);
map.insert("Zn", vec![0.4917, 0.2773, 0.0404, 0.1845, 0.0061]);
map.insert("Ga", vec![0.60108, 0.39892]);
map.insert("Ge", vec![0.2052, 0.2745, 0.0775, 0.3652, 0.0775]);
map.insert("As", vec![1.0]);
map.insert("Se", vec![0.0089, 0.0937, 0.0763, 0.2377, 0.4961, 0.0873]);
map
}