This is the first step toward a better species system. It includes a periodic table and a chemical formula parser. The tests demonstrate some basic usage, but it is not really intended to be user-facing.
The next step will be implementing automatic species detection and creation of appropriate fields.
UPDATE 1: Adding chemical formula parser.
UPDATE 2: Adding species field plugin, using it for Enzo.
UPDATE 3: Missed one change.
UPDATE 4: To match my updated YTEP pull request, I have changed the electron specification to be De, and I've added D to the periodic table. This is open for discussion.
UPDATE 5: Fixing conflict.
UPDATE 6: De => El
UPDATE 7: Removing known_species_masses function.
Of course I forgot about D, which is an isotope and not supported by this. @brittonsmith , @ngoldbaum , @devinsilvia , do you think it should be implemented as a fake element in the periodic table?
D is common enough in astro that we should probably include it. This also exposes the fact that we do not handle isotopes, but one thing at a time.
So, does this now already work with Enzo's multispecies fields? If so, can you provide an example of this? Also, looks like there is a minor merger conflict.
Never mind on the merger conflict. Forgot to refresh the PR.