From 27f30c6a2d5cc6581da4461ecf87c168ee515b3f Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Fri, 9 Aug 2019 11:31:55 -0400 Subject: [PATCH] Use more precise atomic masses for deuterium and tritium --- data/inputs/elements.xml | 7 +++++-- interfaces/cython/cantera/test/test_thermo.py | 4 ++-- src/thermo/Elements.cpp | 13 ++++--------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/data/inputs/elements.xml b/data/inputs/elements.xml index e056f0e8b..e142383d5 100644 --- a/data/inputs/elements.xml +++ b/data/inputs/elements.xml @@ -8,6 +8,9 @@ atomic weight" from the IUPAC Periodic Table is used. Available online at https://iupac.org/wp-content/uploads/2018/12/IUPAC_Periodic_Table-01Dec18.pdf + Values for deuterium and tritium are from: M. Wang et al. The AME2016 atomic + mass evaluation. Chinese Physics C. doi:10.1088/1674-1137/41/3/030003. + The electron mass is the 2018 CODATA value. If no value is given in either source, it is because no stable isotopes of @@ -22,7 +25,7 @@ - + The standard entropy (1/2 D2 gas) was taken from the NIST-JANAF @@ -31,7 +34,7 @@ - + There is no reference state thermodynamic data tabulated diff --git a/interfaces/cython/cantera/test/test_thermo.py b/interfaces/cython/cantera/test/test_thermo.py index 8619c514f..6647adcb7 100644 --- a/interfaces/cython/cantera/test/test_thermo.py +++ b/interfaces/cython/cantera/test/test_thermo.py @@ -1311,13 +1311,13 @@ class TestElement(utilities.CanteraTest): def test_get_isotope(self): d_sym = ct.Element('D') self.assertEqual(d_sym.atomic_number, 1) - self.assertNear(d_sym.weight, 2.014102) + self.assertNear(d_sym.weight, 2.0141017781) self.assertEqual(d_sym.name, 'deuterium') self.assertEqual(d_sym.symbol, 'D') d_name = ct.Element('deuterium') self.assertEqual(d_name.atomic_number, 1) - self.assertNear(d_name.weight, 2.014102) + self.assertNear(d_name.weight, 2.0141017781) self.assertEqual(d_name.name, 'deuterium') self.assertEqual(d_name.symbol, 'D') diff --git a/src/thermo/Elements.cpp b/src/thermo/Elements.cpp index dfb3d1d26..55694e861 100644 --- a/src/thermo/Elements.cpp +++ b/src/thermo/Elements.cpp @@ -197,15 +197,10 @@ static struct atomicWeightData atomicWeightTable[] = { * The size of the table is given by the initial instantiation. */ static struct isotopeWeightData isotopeWeightTable[] = { - // National Center for Biotechnology Information. PubChem Database. - // Deuterium, CID=24523, https://pubchem.ncbi.nlm.nih.gov/compound/Deuterium - // (accessed on Aug. 7, 2019) - {"D", "deuterium", 2.014102, 1}, - - // National Center for Biotechnology Information. PubChem Database. - // Tritium, CID=24824, https://pubchem.ncbi.nlm.nih.gov/compound/Tritium - // (accessed on Aug. 7, 2019) - {"Tr", "tritium", 3.0160495, 1}, + // M. Wang et al. The AME2016 atomic mass evaluation. Chinese Physics C. + // doi:10.1088/1674-1137/41/3/030003. + {"D", "deuterium", 2.0141017781, 1}, + {"Tr", "tritium", 3.0160492820, 1}, {"E", "electron", ElectronMass * Avogadro, 0}, };