Source code for atomicdataMB.atomicmass

"""``atomicmass`` - Return the atomic mass of an atom or molecule.

This is really just a wrapper for
`periodictable
<https://periodictable.readthedocs.io/en/latest/index.html>`_
but returns the mass as an `astropy quantity
<http://docs.astropy.org/en/stable/units/index.html>`_.
"""
import periodictable as pt
from periodictable import formulas
import astropy.units as u


[docs]def atomicmass(species): r"""Return the atomic mass of an atom or molecule. **Parameters** species Chemical formula requested species. See `periodictable <https://periodictable.readthedocs.io/en/latest/index.html>`_ for formatting options. **Returns** The atomicmass of *species* as an astropy quantity with units = AMU :math:`(1\, \mathrm{AMU} = 1.660539 \times 10^{-27}\, \mathrm{kg})`. If ``periodictable`` returns a ValueError, *None* is returned. **Examples** :: >>> from atomicdataMB import atomicmass >>> print(atomicmass('Na')) 22.98977 u >>> print(atomicmass('H2O')) 18.01528 u >>> print(atomicmass('X')) WARNING: mathMB.atomicmass: X not found None """ el = [e.symbol for e in pt.elements] if species in el: atom = eval('pt.' + species) mass = atom.mass * u.u else: try: mass = formulas.formula(species).mass * u.u except ValueError: print(f'WARNING: mathMB.atomicmass: {species} not found') mass = None return mass