Namespace qdk::chemistry::data::ciaaw_2024
-
namespace ciaaw_2024
CIAAW 2024 recommended values for atomic weights.
Standard atomic weights in AMU (atomic mass units) for all elements 1-118. IUPAC (International Union of Pure and Applied Chemistry) Commission on Isotopic Abundances and Atomic Weights (CIAAW), 2024.
T. Prohaska et al., Standard atomic weights of the elements 2021 (IUPAC Technical Report), Pure and Applied Chemistry 2022, 94, 573-600 (DOI: 10.1515/pac-2019-0603). :cite:
Prohaska2022Standard atomic masses of gadolinium, lutetium, and zirconium have been revised by IUPAC CIAAW in 2024 and these revisions are included here.
For radioactive elements the mass number of the most stable isotope is used as standard atomic weight.
F. G. Kondev et al., The NUBASE2020 evaluation of nuclear physics properties, Chinese Physics C 2021, 45, 030001 (DOI: 10.1088/1674-1137/abddae). :cite:
Kondev2021Isotope masses in AMU (atomic mass units) for all elements 1-118. IUPAC (International Union of Pure and Applied Chemistry) Commission on Isotopic Abundances and Atomic Weights (CIAAW), 2021.
W. J. Huang et al., The AME 2020 atomic mass evaluation (I). Evaluation of input data, and adjustment procedures, Chinese Physics C 2021, 45, 030002 (DOI: 10.1088/1674-1137/abddb0). :cite:
Huang2021M. Wang et al., The AME 2020 atomic mass evaluation (II). Tables, graphs and references, Chinese Physics C 2021, 45, 030003 (DOI: 10.1088/1674-1137/abddaf). :cite:
Wang2021F. G. Kondev et al., The NUBASE2020 evaluation of nuclear physics properties, Chinese Physics C 2021, 45, 030001 (DOI: 10.1088/1674-1137/abddae). :cite:
Kondev2021Functions
-
inline double get_atomic_weight(Element element)
Get atomic weight for an Element.
This function converts Element to unsigned and looks up the standard atomic weight.
- Parameters:
element – Element enum value
- Throws:
std::invalid_argument – if element is not found in the atomic weights map
- Returns:
Atomic weight in AMU
-
inline double get_atomic_weight(unsigned Z, unsigned A)
Get atomic weight for an atomic number Z and mass number A.
This function looks up the atomic weight for the given pair of atomic number Z and mass number A.
- Parameters:
Z – Atomic number (proton count)
A – Mass number (proton + neutron count) for a specific isotope mass or 0 for a standard atomic weight
- Throws:
std::invalid_argument – if pair of atomic number Z and mass number A is not found in the atomic weights map
- Returns:
Atomic weight in AMU
-
constexpr unsigned isotope(const unsigned Z, const unsigned A) noexcept
Helper function to calculate unique unsigned keys for isotopes.
For isotopes, put the atomic mass number in the unsigned’s bit representation. Z ranges up to 118 < 128 = 2^7, so we use 7 bits for Z. A ranges up to 295 < 512 = 2^9, so we need at least 16 bits total.
- Parameters:
Z – Atomic number (proton count)
A – Mass number (proton + neutron count) for a specific isotope mass or 0 for a standard atomic weight
- Returns:
Encoded unsigned key for atomic weight representation
Variables
-
const std::unordered_map<unsigned, double> atomic_weights
Standard atomic weights and specific isotope masses in AMU (atomic mass units)
Includes both standard atomic weights for elements 1-118 and specific isotope masses. For the standard atomic weights of radioactive elements, the mass numbers of the most stable isotopes are used.
-
inline double get_atomic_weight(Element element)