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:Prohaska2022

Standard 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:Kondev2021

Isotope 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:Huang2021

M. 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:Wang2021

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:Kondev2021

Functions

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.