1 /*
2  * Copyright (c) 2019 Kevin Townsend (KTOWN)
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include <math.h>
8 #include <errno.h>
9 #include <zephyr/kernel.h>
10 #include <zsl/zsl.h>
11 #include <zsl/chemistry.h>
12 
13 const zsl_real_t zsl_chem_atom_weight[119] = {
14         0.0,        /* NULL element so that index matches atomic number. */
15         1.0079,     /* Hydrogen, H,         1 */
16         4.0026,     /* Helium, He           2 */
17         6.941,      /* Lithium, Li          3 */
18         9.0122,     /* Beryllium, Be        4 */
19         10.811,     /* Boron, B             5 */
20         12.0107,    /* Carbon, C            6 */
21         14.0067,    /* Nitrogen, N          7 */
22         15.9994,    /* Oxygen, O            8 */
23         18.9984,    /* Fluorine, F          9 */
24         20.1797,    /* Neon, Ne             10 */
25         22.9897,    /* Sodium, Na           11 */
26         24.305,     /* Magnesium, Mg        12 */
27         26.9815,    /* Aluminum, Al         13 */
28         28.0855,    /* Silicon, Si          14 */
29         30.9738,    /* Phosphorus, P        15 */
30         32.065,     /* Sulfur, S            16 */
31         35.453,     /* Chlorine, Cl         17 */
32         39.948,     /* Argon, Ar            18 */
33         39.0983,    /* Potassium, K         19 */
34         40.078,     /* Calcium, Ca          20 */
35         44.9559,    /* Scandium, Sc         21 */
36         47.867,     /* Titanium, Ti         22 */
37         50.9415,    /* Vanadium, V          23 */
38         51.9961,    /* Chromium, Cr         24 */
39         54.938,     /* Manganese, Mn        25 */
40         55.845,     /* Iron, Fe             26 */
41         58.9332,    /* Cobalt, Co           27 */
42         58.6934,    /* Nickel, Ni           28 */
43         63.546,     /* Copper, Cu           29 */
44         65.39,      /* Zinc, Zn             30 */
45         69.723,     /* Gallium, Ga          31 */
46         72.64,      /* Germanium, Ge        32 */
47         74.9216,    /* Arsenic, As          33 */
48         78.96,      /* Selenium, Se         34 */
49         79.904,     /* Bromine, Br          35 */
50         83.8,       /* Krypton, Kr          36 */
51         85.4678,    /* Rubidium, Rb         37 */
52         87.62,      /* Strontium, Sr        38 */
53         88.9059,    /* Yttrium, Y           39 */
54         91.224,     /* Zirconium, Zr        40 */
55         92.9064,    /* Niobium, Nb          41 */
56         95.94,      /* Molybdenum, Mo       42 */
57         98.0,       /* Technetium, Tc       43 */
58         101.07,     /* Ruthenium, Ru        44 */
59         102.9055,   /* Rhodium, Rh          45 */
60         106.42,     /* Palladium, Pd        46 */
61         107.8682,   /* Silver, Ag           47 */
62         112.411,    /* Cadmium, Cd          48 */
63         114.818,    /* Indium, In           49 */
64         118.71,     /* Tin, Sn              50 */
65         121.76,     /* Antimony, Sb         51 */
66         127.6,      /* Tellurium, Te        52 */
67         126.9045,   /* Iodine, I            53 */
68         131.293,    /* Xenon, Xe            54 */
69         132.9055,   /* Cesium, Cs           55 */
70         137.327,    /* Barium, Ba           56 */
71         138.9055,   /* Lanthanum, La        57 */
72         140.116,    /* Cerium, Ce           58 */
73         140.9077,   /* Praseodymium, Pr     59 */
74         144.24,     /* Neodymium, Nd        60 */
75         145.0,      /* Promethium, Pm       61 */
76         150.36,     /* Samarium, Sm         62 */
77         151.964,    /* Europium, Eu         63 */
78         157.25,     /* Gadolinium, Gd       64 */
79         158.9253,   /* Terbium, Tb          65 */
80         162.5,      /* Dysprosium, Dy       66 */
81         164.9303,   /* Holmium, Ho          67 */
82         167.259,    /* Erbium, Er           68 */
83         168.9342,   /* Thulium, Tm          69 */
84         173.04,     /* Ytterbium, Yb        70 */
85         174.967,    /* Lutetium, Lu         71 */
86         178.49,     /* Hafnium, Hf          72 */
87         180.9479,   /* Tantalum, Ta         73 */
88         183.84,     /* Tungsten, W          74 */
89         186.207,    /* Rhenium, Re          75 */
90         190.23,     /* Osmium, Os           76 */
91         192.217,    /* Iridium, Ir          77 */
92         195.078,    /* Platinum, Pt         78 */
93         196.9665,   /* Gold, Au             79 */
94         200.59,     /* Mercury, Hg          80 */
95         204.3833,   /* Thallium, Tl         81 */
96         207.2,      /* Lead, Pb             82 */
97         208.9804,   /* Bismuth, Bi          83 */
98         209.0,      /* Polonium, Po         84 */
99         210.0,      /* Astatine, At         85 */
100         222.0,      /* Radon, Rn            86 */
101         223.0,      /* Francium, Fr         87 */
102         226.0,      /* Radium, Ra           88 */
103         227.0,      /* Actinium, Ac         89 */
104         232.0381,   /* Thorium, Th          90 */
105         231.0359,   /* Protactinium, Pa     91 */
106         238.0289,   /* Uranium, U           92 */
107         237.0,      /* Neptunium, Np        93 */
108         244.0,      /* Plutonium, Pu        94 */
109         0.0,        /* Americium, Am        95 */
110         0.0,        /* Curium, Cm           96 */
111         0.0,        /* Berkelium, Bk        97 */
112         0.0,        /* Californium, Cf      98 */
113         0.0,        /* Einsteinium, Es      99 */
114         0.0,        /* Fermium, Fm          100 */
115         0.0,        /* Mendelevium, Md      101 */
116         0.0,        /* Nobelium, No         102 */
117         0.0,        /* Lawrencium, Lr       103 */
118         0.0,        /* Rutherfordium, Rf    104 */
119         0.0,        /* Dubnium, Db          105 */
120         0.0,        /* Seaborgium, Sg       106 */
121         0.0,        /* Bohrium, Bh          107 */
122         0.0,        /* Hassium, Hs          108 */
123         0.0,        /* Meitnerium, Mt       109 */
124         0.0,        /* Darmstadtium, Ds     110 */
125         0.0,        /* Roentgenium, Rg      111 */
126         0.0,        /* Copernicium, Cn      112 */
127         0.0,        /* Nihonium, Nh         113 */
128         0.0,        /* Flerovium, Fl        114 */
129         0.0,        /* Moscovium, Mc        115 */
130         0.0,        /* Livermorium, Lv      116 */
131         0.0,        /* Tennessine, Ts       117 */
132         0.0         /* Oganesson, Og        118 */
133 };
134