Update atomic weights with 2018 IUPAC/CIAAW data

Use data from the periodic table at
http://www.ciaaw.org/atomic-weights.htm and
https://iupac.org/wp-content/uploads/2018/12/IUPAC_Periodic_Table-01Dec18.pdf
Elements without any atomic weight in either table do not have a stable
isotope. These are deleted from elements.xml and have their atomic
weight set to -1.0 in Elements.cpp. Add elements after plutonium that
were not previously listed. None of these elements have stable
isotopes.

These elements are retained/added so their symbols, names, and atomic
numbers can still be retrieved and the mapping of atomic number to
index - 1 in the struct is maintained.

Modify the element weight lookup functions to throw errors when an
element with no weight is requested (i.e., the weight is -1.0 in the
struct).
This commit is contained in:
Bryan W. Weber 2019-07-24 15:32:36 -04:00 committed by Ray Speth
parent 541fddb15e
commit dc96fb5fe8
2 changed files with 507 additions and 529 deletions

View file

@ -1,6 +1,17 @@
<ctml>
<elementData caseSensitive="no">
<element name="H" atomicWt = "1.00794" atomicNumber = "1">
<!-- Values are used from CIAAW. Atomic weights of the elements 2017
when a single value is given. Available online at
http://www.ciaaw.org/atomic-weights.htm
When a range of values is given in the CIAAW table, the "conventional
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
If no value is given in either source, it is because no stable isotopes of
that element are known. Therefore, that element is not included in this file.
-->
<element name="H" atomicWt = "1.008" atomicNumber = "1">
<entropy298 value = "65.340E3">
<source>
The standard entropy (1/2 H2gas) was taken from the NIST-JANAF
@ -18,7 +29,7 @@
</source>
</entropy298>
</element>
<element name="Tr" atomicWt = "3.016327" atomicNumber = "1" >
<element name="Tr" atomicWt = "3.0160495" atomicNumber = "1" >
<entropy298>
<source>
There is no reference state thermodynamic data tabulated
@ -26,7 +37,7 @@
</source>
</entropy298>
</element>
<element name="He" atomicWt = "4.00260" atomicNumber = "2" >
<element name="He" atomicWt = "4.002602" atomicNumber = "2" >
<entropy298 value = "126.152E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -35,7 +46,7 @@
</source>
</entropy298>
</element>
<element name="Li" atomicWt = "6.941" atomicNumber = "3" >
<element name="Li" atomicWt = "6.94" atomicNumber = "3" >
<entropy298 value = "29.085E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -44,7 +55,7 @@
</source>
</entropy298>
</element>
<element name="Be" atomicWt = "9.012182" atomicNumber = "4" >
<element name="Be" atomicWt = "9.0121831" atomicNumber = "4" >
<entropy298 value = "9.440E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -53,7 +64,7 @@
</source>
</entropy298>
</element>
<element name="B" atomicWt = "10.811" atomicNumber = "5" >
<element name="B" atomicWt = "10.81" atomicNumber = "5" >
<entropy298 value = "5.834E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -71,7 +82,7 @@
</source>
</entropy298>
</element>
<element name="N" atomicWt = "14.00674" atomicNumber = "7" >
<element name="N" atomicWt = "14.007" atomicNumber = "7" >
<entropy298 value = "95.8045E3">
<source>
The standard entropy (1/2 N2 gas) was taken from the NIST-JANAF
@ -80,7 +91,7 @@
</source>
</entropy298>
</element>
<element name="O" atomicWt = "15.9994" atomicNumber = "8" >
<element name="O" atomicWt = "15.999" atomicNumber = "8" >
<entropy298 value = "102.5735E3">
<source>
The standard entropy (1/2 O2 gas) was taken from the NIST-JANAF
@ -89,7 +100,7 @@
</source>
</entropy298>
</element>
<element name="F" atomicWt = "18.9984032" atomicNumber = "9" >
<element name="F" atomicWt = "18.998403163" atomicNumber = "9" >
<entropy298 value = "101.3945E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -107,7 +118,7 @@
</source>
</entropy298>
</element>
<element name="Na" atomicWt = "22.98977" atomicNumber = "11" >
<element name="Na" atomicWt = "22.98976928" atomicNumber = "11" >
<entropy298 value = "51.455E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -116,7 +127,7 @@
</source>
</entropy298>
</element>
<element name="Mg" atomicWt = "24.3050" atomicNumber = "12" >
<element name="Mg" atomicWt = "24.305" atomicNumber = "12" >
<entropy298 value = "32.671E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -125,7 +136,7 @@
</source>
</entropy298>
</element>
<element name="Al" atomicWt = "26.98154" atomicNumber = "13" >
<element name="Al" atomicWt = "26.9815384" atomicNumber = "13" >
<entropy298 value = "28.275E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -134,7 +145,7 @@
</source>
</entropy298>
</element>
<element name="Si" atomicWt = "28.0855" atomicNumber = "14">
<element name="Si" atomicWt = "28.085" atomicNumber = "14">
<entropy298 value = "18.820E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -143,7 +154,7 @@
</source>
</entropy298>
</element>
<element name="P" atomicWt = "30.97376" atomicNumber = "15" >
<element name="P" atomicWt = "30.973761998" atomicNumber = "15" >
<entropy298 value = "41.077E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -152,7 +163,7 @@
</source>
</entropy298>
</element>
<element name="S" atomicWt = "32.066" atomicNumber = "16" >
<element name="S" atomicWt = "32.06" atomicNumber = "16" >
<entropy298 value = "32.056E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -161,7 +172,7 @@
</source>
</entropy298>
</element>
<element name="Cl" atomicWt = "35.4527" atomicNumber = "17">
<element name="Cl" atomicWt = "35.45" atomicNumber = "17">
<entropy298 value = "111.535E3">
<source>
The standard entropy (1/2 Cl2 gas) was taken from the NIST-JANAF
@ -170,7 +181,7 @@
</source>
</entropy298>
</element>
<element name="Ar" atomicWt = "39.948" atomicNumber = "18" >
<element name="Ar" atomicWt = "39.95" atomicNumber = "18" >
<entropy298 value = "154.845E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -197,7 +208,7 @@
</source>
</entropy298>
</element>
<element name="Sc" atomicWt = "44.95591" atomicNumber = "21" >
<element name="Sc" atomicWt = "44.955908" atomicNumber = "21" >
<entropy298>
<source>
No reference state data for this element in the NIST-JANAF
@ -206,7 +217,7 @@
</source>
</entropy298>
</element>
<element name="Ti" atomicWt = "47.88" atomicNumber = "22" >
<element name="Ti" atomicWt = "47.867" atomicNumber = "22" >
<entropy298 value = "30.759E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -233,7 +244,7 @@
</source>
</entropy298>
</element>
<element name="Mn" atomicWt = "54.9381" atomicNumber = "25" >
<element name="Mn" atomicWt = "54.938043" atomicNumber = "25" >
<entropy298 value = "32.010E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -242,7 +253,7 @@
</source>
</entropy298>
</element>
<element name="Fe" atomicWt = "55.847" atomicNumber = "26" >
<element name="Fe" atomicWt = "55.845" atomicNumber = "26" >
<entropy298 value = "27.321E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -251,7 +262,7 @@
</source>
</entropy298>
</element>
<element name="Co" atomicWt = "58.9332" atomicNumber = "27" >
<element name="Co" atomicWt = "58.933194" atomicNumber = "27" >
<entropy298 value = "30.067E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -260,7 +271,7 @@
</source>
</entropy298>
</element>
<element name="Ni" atomicWt = "58.69" atomicNumber = "28" >
<element name="Ni" atomicWt = "58.6934" atomicNumber = "28" >
<entropy298 value = "29.870E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -296,7 +307,7 @@
</source>
</entropy298>
</element>
<element name="Ge" atomicWt = "72.61" atomicNumber = "32" >
<element name="Ge" atomicWt = "72.630" atomicNumber = "32" >
<entropy298 value = "31.09E3">
<source>
The standard entropy was taken from Robie and
@ -306,7 +317,7 @@
</source>
</entropy298>
</element>
<element name="As" atomicWt = "74.92159" atomicNumber = "33" >
<element name="As" atomicWt = "74.921595" atomicNumber = "33" >
<entropy298 value = "35.69E3">
<source>
The standard entropy was taken from Robie and
@ -316,7 +327,7 @@
</source>
</entropy298>
</element>
<element name="Se" atomicWt = "78.96" atomicNumber = "34" >
<element name="Se" atomicWt = "78.971" atomicNumber = "34" >
<entropy298 value = "42.27E3">
<source>
The standard entropy was taken from Robie and
@ -335,7 +346,7 @@
</source>
</entropy298>
</element>
<element name="Kr" atomicWt = "83.80" atomicNumber = "36" >
<element name="Kr" atomicWt = "83.798" atomicNumber = "36" >
<entropy298 value = "164.084E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -362,7 +373,7 @@
</source>
</entropy298>
</element>
<element name="Y" atomicWt = "88.90585" atomicNumber = "39" >
<element name="Y" atomicWt = "88.90584" atomicNumber = "39" >
<entropy298>
<source>
No reference state data found for Y.
@ -378,7 +389,7 @@
</source>
</entropy298>
</element>
<element name="Nb" atomicWt = "92.90638" atomicNumber = "41" >
<element name="Nb" atomicWt = "92.90637" atomicNumber = "41" >
<entropy298 value = "36.464E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -387,7 +398,7 @@
</source>
</entropy298>
</element>
<element name="Mo" atomicWt = "95.94 " atomicNumber = "42" >
<element name="Mo" atomicWt = "95.95" atomicNumber = "42" >
<entropy298 value = "28.605E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -396,35 +407,24 @@
</source>
</entropy298>
</element>
<element name="Tc" atomicWt = "97.9072" atomicNumber = "43" >
<entropy298 value = "32.506E3">
<source>
The standard entropy was taken from the OECD-NEA
handbook (Guillaumont et al., 2003) "UPDATE ON THE
CHEMICAL THERMODYNAMICS OF URANIUM, NEPTUNIUM,
PLUTONIUM, AMERICIUM AND TECHNETIUM", Table 7-1,
p. 127.
</source>
</entropy298>
</element>
<element name="Ru" atomicWt = "101.07" atomicNumber = "44" >
<entropy298 value = "28.53E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 92.
</source>
</entropy298>
</element>
<element name="Rh" atomicWt = "102.9055" atomicNumber = "45" >
<element name="Rh" atomicWt = "102.90549" atomicNumber = "45" >
<entropy298 value = "31.54E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 90.
</source>
</entropy298>
@ -435,7 +435,7 @@
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 84.
</source>
</entropy298>
@ -450,7 +450,7 @@
</source>
</entropy298>
</element>
<element name="Cd" atomicWt = "112.411" atomicNumber = "48" >
<element name="Cd" atomicWt = "112.414" atomicNumber = "48" >
<entropy298 value = "51.80E3">
<source>
The standard entropy was taken from Robie and
@ -460,13 +460,13 @@
</source>
</entropy298>
</element>
<element name="In" atomicWt = "114.82" atomicNumber = "49" >
<element name="In" atomicWt = "114.818" atomicNumber = "49" >
<entropy298 value = "57.84E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 64.
</source>
</entropy298>
@ -481,7 +481,7 @@
</source>
</entropy298>
</element>
<element name="Sb" atomicWt = "121.75" atomicNumber = "51" >
<element name="Sb" atomicWt = "121.760" atomicNumber = "51" >
<entropy298 value = "45.52E3">
<source>
The standard entropy was taken from Robie and
@ -491,7 +491,7 @@
</source>
</entropy298>
</element>
<element name="Te" atomicWt = "127.6" atomicNumber = "52" >
<element name="Te" atomicWt = "127.60" atomicNumber = "52" >
<entropy298 value = "49.71E3">
<source>
The standard entropy was taken from Robie and
@ -510,7 +510,7 @@
</source>
</entropy298>
</element>
<element name="Xe" atomicWt = "131.29" atomicNumber = "54" >
<element name="Xe" atomicWt = "131.293" atomicNumber = "54" >
<entropy298 value = "169.684E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -519,7 +519,7 @@
</source>
</entropy298>
</element>
<element name="Cs" atomicWt = "132.90543" atomicNumber = "55" >
<element name="Cs" atomicWt = "132.90545196" atomicNumber = "55" >
<entropy298 value = "85.147E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -537,18 +537,18 @@
</source>
</entropy298>
</element>
<element name="La" atomicWt = "138.9055" atomicNumber = "57" >
<element name="La" atomicWt = "138.90547" atomicNumber = "57" >
<entropy298 value = "56.90E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 68.
</source>
</entropy298>
</element>
<element name="Ce" atomicWt = "140.115" atomicNumber = "58" >
<element name="Ce" atomicWt = "140.116" atomicNumber = "58" >
<entropy298 value = "72.00E3">
<source>
The standard entropy was taken from Robie and
@ -558,63 +558,46 @@
</source>
</entropy298>
</element>
<element name="Pr" atomicWt = "140.90765" atomicNumber = "59" >
<element name="Pr" atomicWt = "140.90766" atomicNumber = "59" >
<entropy298 value = "73.93E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 85.
</source>
</entropy298>
</element>
<element name="Nd" atomicWt = "144.24" atomicNumber = "60" >
<element name="Nd" atomicWt = "144.242" atomicNumber = "60" >
<entropy298 value = "71.09E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 77.
</source>
</entropy298>
</element>
<element name="Pm" atomicWt = "144.9127" atomicNumber = "61" >
<entropy298>
<source>
There is no handbook standard state thermodynamic data for
this element. There are estimates for stability constants
of aqueous and solid species in Spahiu and Bruno (1995),
A Selected Thermodynamic Database for REE to be Used in
HLNW Performance Assessment Exercises. SKB Technical
Report 95-35. Stockholm, Sweden: Swedish Nuclear Fuel and
Waste Management Company. The compilation of Konings
et al. list an estimated standard entropy value for Pm
of 158.0 J/K/mol at 298.15 K but with a non-zero enthalpy of
formation which is not indicative of a reference state
form for this element.
</source>
</entropy298>
</element>
<element name="Sm" atomicWt = "150.36" atomicNumber = "62" >
<entropy298 value = "69.50E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 100.
</source>
</entropy298>
</element>
<element name="Eu" atomicWt = "151.965" atomicNumber = "63" >
<element name="Eu" atomicWt = "151.964" atomicNumber = "63" >
<entropy298 value = "80.79E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 52.
</source>
</entropy298>
@ -625,84 +608,84 @@
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 55.
</source>
</entropy298>
</element>
<element name="Tb" atomicWt = "158.92534" atomicNumber = "65" >
<element name="Tb" atomicWt = "158.925354" atomicNumber = "65" >
<entropy298 value = "73.30E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 104.
</source>
</entropy298>
</element>
<element name="Dy" atomicWt = "162.50" atomicNumber = "66" >
<element name="Dy" atomicWt = "162.500" atomicNumber = "66" >
<entropy298 value = "74.89E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 50.
</source>
</entropy298>
</element>
<element name="Ho" atomicWt = "164.93032" atomicNumber = "67" >
<element name="Ho" atomicWt = "164.930328" atomicNumber = "67" >
<entropy298 value = "75.02E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 62.
</source>
</entropy298>
</element>
<element name="Er" atomicWt = "167.26" atomicNumber = "68" >
<element name="Er" atomicWt = "167.259" atomicNumber = "68" >
<entropy298 value = "73.18E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 51.
</source>
</entropy298>
</element>
<element name="Tm" atomicWt = "168.93421" atomicNumber = "69" >
<element name="Tm" atomicWt = "168.934218" atomicNumber = "69" >
<entropy298 value = "74.01E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 109.
</source>
</entropy298>
</element>
<element name="Yb" atomicWt = "173.04" atomicNumber = "70" >
<element name="Yb" atomicWt = "173.045" atomicNumber = "70" >
<entropy298 value = "59.83E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 115.
</source>
</entropy298>
</element>
<element name="Lu" atomicWt = "174.967" atomicNumber = "71" >
<element name="Lu" atomicWt = "174.9668" atomicNumber = "71" >
<entropy298 value = "50.96E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 70.
</source>
</entropy298>
@ -716,7 +699,7 @@
</source>
</entropy298>
</element>
<element name="Ta" atomicWt = "180.9479" atomicNumber = "73" >
<element name="Ta" atomicWt = "180.94788" atomicNumber = "73" >
<entropy298 value = "41.471E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -725,7 +708,7 @@
</source>
</entropy298>
</element>
<element name="W" atomicWt = "183.85" atomicNumber = "74" >
<element name="W" atomicWt = "183.84" atomicNumber = "74" >
<entropy298 value = "32.660E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -740,34 +723,34 @@
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 89.
</source>
</entropy298>
</element>
<element name="Os" atomicWt = "190.2" atomicNumber = "76" >
<element name="Os" atomicWt = "190.23" atomicNumber = "76" >
<entropy298 value = "32.64E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 81.
</source>
</entropy298>
</element>
<element name="Ir" atomicWt = "192.22" atomicNumber = "77" >
<element name="Ir" atomicWt = "192.217" atomicNumber = "77" >
<entropy298 value = "35.48E3">
<source>
The standard entropy was taken from Robie and
Hemingway (1979), Thermodynamic Properties of
Minerals and Related Substances at 298.15 K
and 1 bar (10^5 Pascals) Pressure abd at Higher
and 1 bar (10^5 Pascals) Pressure and at Higher
Temperatures, USGS Bulletin 1452, p. 65.
</source>
</entropy298>
</element>
<element name="Pt" atomicWt = "195.08" atomicNumber = "78" >
<element name="Pt" atomicWt = "195.084" atomicNumber = "78" >
<entropy298 value = "41.63E3">
<source>
The standard entropy was taken from Robie and
@ -777,7 +760,7 @@
</source>
</entropy298>
</element>
<element name="Au" atomicWt = "196.96654" atomicNumber = "79" >
<element name="Au" atomicWt = "196.966570" atomicNumber = "79" >
<entropy298 value = "47.49E3">
<source>
The standard entropy was taken from Robie and
@ -787,7 +770,7 @@
</source>
</entropy298>
</element>
<element name="Hg" atomicWt = "200.59" atomicNumber = "80" >
<element name="Hg" atomicWt = "200.592" atomicNumber = "80" >
<entropy298 value = "76.028E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -796,7 +779,7 @@
</source>
</entropy298>
</element>
<element name="Ti" atomicWt = "204.3833" atomicNumber = "81" >
<element name="Ti" atomicWt = "204.38" atomicNumber = "81" >
<entropy298 value = "30.759E3">
<source>
The standard entropy was taken from the NIST-JANAF
@ -814,7 +797,7 @@
</source>
</entropy298>
</element>
<element name="Bi" atomicWt = "208.98037" atomicNumber = "83" >
<element name="Bi" atomicWt = "208.98040" atomicNumber = "83" >
<entropy298 value = "56.74E3">
<source>
The standard entropy was taken from Robie and
@ -824,51 +807,7 @@
</source>
</entropy298>
</element>
<element name="Po" atomicWt = "208.9824" atomicNumber = "84" >
<entropy298>
<source>
No standard state thermodynamic data for this element.
</source>
</entropy298>
</element>
<element name="At" atomicWt = "209.9871" atomicNumber = "85" >
<entropy298>
<source>
No standard state thermodynamic data for this element.
</source>
</entropy298>
</element>
<element name="Rn" atomicWt = "222.0176" atomicNumber = "86" >
<entropy298 value = "176.235E3">
<source>
The standard entropy was taken from the NIST-JANAF
Handbook (Chase 1998), Journal of Physical and
Chemical Reference Data, Monograph 9, p. 1857.
</source>
</entropy298>
</element>
<element name="Fr" atomicWt = "223.0197" atomicNumber = "87" >
<entropy298>
<source>
No standard state thermodynamic data for this element.
</source>
</entropy298>
</element>
<element name="Ra" atomicWt = "226.0254" atomicNumber = "88" >
<entropy298>
<source>
No standard state thermodynamic data for this element.
</source>
</entropy298>
</element>
<element name="Ac" atomicWt = "227.0279" atomicNumber = "89" >
<entropy298>
<source>
No standard state thermodynamic data for this element.
</source>
</entropy298>
</element>
<element name="Th" atomicWt = "232.0381" atomicNumber = "90" >
<element name="Th" atomicWt = "232.0377" atomicNumber = "90" >
<entropy298 value = "51.080E3">
<source>
The standard entropy was taken from the OECD-NEA
@ -886,7 +825,7 @@
</source>
</entropy298>
</element>
<element name="U" atomicWt = "238.0508" atomicNumber = "92" >
<element name="U" atomicWt = "238.02891" atomicNumber = "92" >
<entropy298 value = "50.20E3">
<source>
The standard entropy was taken from the OECD-NEA
@ -897,28 +836,6 @@
</source>
</entropy298>
</element>
<element name="Np" atomicWt = "237.0482" atomicNumber = "93" >
<entropy298 value = "50.460E3">
<source>
The standard entropy was taken from the OECD-NEA
handbook (Guillaumont et al., 2003) "UPDATE ON THE
CHEMICAL THERMODYNAMICS OF URANIUM, NEPTUNIUM,
PLUTONIUM, AMERICIUM AND TECHNETIUM", Table 4-1,
p. 81.
</source>
</entropy298>
</element>
<element name="Pu" atomicWt = "244.0482" atomicNumber = "94" >
<entropy298 value = "54.460E3">
<source>
The standard entropy was taken from the OECD-NEA
handbook (Guillaumont et al., 2003) "UPDATE ON THE
CHEMICAL THERMODYNAMICS OF URANIUM, NEPTUNIUM,
PLUTONIUM, AMERICIUM AND TECHNETIUM", Table 5-1,
p. 99.
</source>
</entropy298>
</element>
<element name="E" atomicWt = "0.000545" atomicNumber = "0" >
<entropy298 value = "0.0E3">
<source>

View file

@ -4,7 +4,7 @@
*/
// This file is part of Cantera. See License.txt in the top-level directory or
// at http://www.cantera.org/license.txt for license and copyright information.
// at https://cantera.org/license.txt for license and copyright information.
#include "cantera/thermo/Elements.h"
#include "cantera/base/ctml.h"
@ -16,7 +16,17 @@ namespace Cantera
{
/*! Database for atomic weights
* Values are taken from the 1989 Standard Atomic Weights, CRC
* Values are used from CIAAW. Atomic weights of the elements 2017
* when a single value is given. Available online at
* http://www.ciaaw.org/atomic-weights.htm
*
* When a range of values is given in the CIAAW table, the "conventional
* 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
*
* If no value is given in either source, it is because no stable isotopes of
* that element are known and the atomic weight of that element is listed here
* as -1.0
*
* units = kg / kg-mol (or equivalently gm / gm-mol)
*
@ -25,11 +35,16 @@ namespace Cantera
struct atomicWeightData {
string symbol; //!< Element symbol, first letter capitalized
string fullName; //!< Element full name, first letter lowercase
double atomicWeight; //!< Element atomic weight in kg / kg-mol
double atomicWeight; //!< Element atomic weight in kg / kg-mol, if known. -1 if no stable isotope
};
/*! Database for named isotopic weights
* Values are taken from the 1989 Standard Atomic Weights, CRC
* Values are used from
* Kim S, Chen J, Cheng T, Gindulyte A, He J, He S, Li Q, Shoemaker BA,
* Thiessen PA, Yu B, Zaslavsky L, Zhang J, Bolton EE. PubChem 2019
* update: improved access to chemical data. Nucleic Acids Res. 2019
* Jan 8; 47(D1):D1102-1109. doi:10.1093/nar/gky1033.
* [PubMed PMID:30371825]
*
* units = kg / kg-mol (or equivalently gm / gm-mol)
*
@ -46,106 +61,130 @@ struct isotopeWeightData {
* @var static struct atomicWeightData atomicWeightTable[]
* \brief atomicWeightTable is a vector containing the atomic weights database.
*
* atomicWeightTable[] is a static function with scope limited to this file.
* atomicWeightTable[] is a static variable with scope limited to this file.
* It can only be referenced via the functions in this file.
*
* The size of the table is given by the initial instantiation.
*/
static struct atomicWeightData atomicWeightTable[] = {
{"H", "hydrogen", 1.00794},
{"H", "hydrogen", 1.008},
{"He", "helium", 4.002602},
{"Li", "lithium", 6.941 },
{"Be", "beryllium", 9.012182},
{"B", "boron", 10.811 },
{"Li", "lithium", 6.94},
{"Be", "beryllium", 9.0121831},
{"B", "boron", 10.81},
{"C", "carbon", 12.011 },
{"N", "nitrogen", 14.00674},
{"O", "oxygen", 15.9994 },
{"F", "fluorine", 18.9984032},
{"N", "nitrogen", 14.007},
{"O", "oxygen", 15.999 },
{"F", "fluorine", 18.998403163},
{"Ne", "neon", 20.1797 },
{"Na", "sodium", 22.98977},
{"Mg", "magnesium", 24.3050 },
{"Al", "aluminum", 26.98154},
{"Si", "silicon", 28.0855 },
{"P", "phosphorus", 30.97376},
{"S", "sulfur", 32.066 },
{"Cl", "chlorine", 35.4527 },
{"Ar", "argon", 39.948 },
{"Na", "sodium", 22.98976928},
{"Mg", "magnesium", 24.305 },
{"Al", "aluminum", 26.9815384},
{"Si", "silicon", 28.085 },
{"P", "phosphorus", 30.973761998},
{"S", "sulfur", 32.06 },
{"Cl", "chlorine", 35.45 },
{"Ar", "argon", 39.95 },
{"K", "potassium", 39.0983 },
{"Ca", "calcium", 40.078 },
{"Sc", "scandium", 44.95591},
{"Ti", "titanium", 47.88 },
{"Sc", "scandium", 44.955908},
{"Ti", "titanium", 47.867 },
{"V", "vanadium", 50.9415 },
{"Cr", "chromium", 51.9961 },
{"Mn", "manganese", 54.9381 },
{"Fe", "iron", 55.847 },
{"Co", "cobalt", 58.9332 },
{"Ni", "nickel", 58.69 },
{"Mn", "manganese", 54.938043 },
{"Fe", "iron", 55.845 },
{"Co", "cobalt", 58.933194 },
{"Ni", "nickel", 58.6934 },
{"Cu", "copper", 63.546 },
{"Zn", "zinc", 65.39 },
{"Zn", "zinc", 65.38 },
{"Ga", "gallium", 69.723 },
{"Ge", "germanium", 72.61 },
{"As", "arsenic", 74.92159},
{"Se", "selenium", 78.96 },
{"Ge", "germanium", 72.630 },
{"As", "arsenic", 74.921595},
{"Se", "selenium", 78.971 },
{"Br", "bromine", 79.904 },
{"Kr", "krypton", 83.80 },
{"Kr", "krypton", 83.798 },
{"Rb", "rubidium", 85.4678 },
{"Sr", "strontium", 87.62 },
{"Y", "yttrium", 88.90585},
{"Y", "yttrium", 88.90584},
{"Zr", "zirconium", 91.224 },
{"Nb", "nobelium", 92.90638},
{"Mo", "molybdenum", 95.94 },
{"Tc", "technetium", 97.9072 },
{"Nb", "nobelium", 92.90637},
{"Mo", "molybdenum", 95.95 },
{"Tc", "technetium", -1.0 },
{"Ru", "ruthenium", 101.07 },
{"Rh", "rhodium", 102.9055 },
{"Rh", "rhodium", 102.90549 },
{"Pd", "palladium", 106.42 },
{"Ag", "silver", 107.8682 },
{"Cd", "cadmium", 112.411 },
{"In", "indium", 114.82 },
{"Cd", "cadmium", 112.414 },
{"In", "indium", 114.818 },
{"Sn", "tin", 118.710 },
{"Sb", "antimony", 121.75 },
{"Te", "tellurium", 127.6 },
{"Sb", "antimony", 121.760 },
{"Te", "tellurium", 127.60 },
{"I", "iodine", 126.90447},
{"Xe", "xenon", 131.29 },
{"Cs", "cesium", 132.90543},
{"Xe", "xenon", 131.293 },
{"Cs", "cesium", 132.90545196},
{"Ba", "barium", 137.327 },
{"La", "lanthanum", 138.9055 },
{"Ce", "cerium", 140.115 },
{"Pr", "praseodymium", 140.90765},
{"Nd", "neodymium", 144.24 },
{"Pm", "promethium", 144.9127 },
{"La", "lanthanum", 138.90547 },
{"Ce", "cerium", 140.116 },
{"Pr", "praseodymium", 140.90766},
{"Nd", "neodymium", 144.242 },
{"Pm", "promethium", -1.0 },
{"Sm", "samarium", 150.36 },
{"Eu", "europium", 151.965 },
{"Eu", "europium", 151.964 },
{"Gd", "gadolinium", 157.25 },
{"Tb", "terbium", 158.92534},
{"Dy", "dysprosium", 162.50 },
{"Ho", "holmium", 164.93032},
{"Er", "erbium", 167.26 },
{"Tm", "thulium", 168.93421},
{"Yb", "ytterbium", 173.04 },
{"Lu", "lutetium", 174.967 },
{"Tb", "terbium", 158.925354},
{"Dy", "dysprosium", 162.500 },
{"Ho", "holmium", 164.930328},
{"Er", "erbium", 167.259 },
{"Tm", "thulium", 168.934218},
{"Yb", "ytterbium", 173.045 },
{"Lu", "lutetium", 174.9668 },
{"Hf", "hafnium", 178.49 },
{"Ta", "tantalum", 180.9479 },
{"W", "tungsten", 183.85 },
{"Ta", "tantalum", 180.94788 },
{"W", "tungsten", 183.84 },
{"Re", "rhenium", 186.207 },
{"Os", "osmium", 190.2 },
{"Ir", "iridium", 192.22 },
{"Pt", "platinum", 195.08 },
{"Au", "gold", 196.96654},
{"Hg", "mercury", 200.59 },
{"Tl", "thallium", 204.3833 },
{"Os", "osmium", 190.23 },
{"Ir", "iridium", 192.217 },
{"Pt", "platinum", 195.084 },
{"Au", "gold", 196.966570},
{"Hg", "mercury", 200.592 },
{"Tl", "thallium", 204.38 },
{"Pb", "lead", 207.2 },
{"Bi", "bismuth", 208.98037},
{"Po", "polonium", 208.9824 },
{"At", "astatine", 209.9871 },
{"Rn", "radon", 222.0176 },
{"Fr", "francium", 223.0197 },
{"Ra", "radium", 226.0254 },
{"Ac", "actinium", 227.0279 },
{"Th", "thorium", 232.0381 },
{"Bi", "bismuth", 208.98040},
{"Po", "polonium", -1.0 },
{"At", "astatine", -1.0 },
{"Rn", "radon", -1.0 },
{"Fr", "francium", -1.0 },
{"Ra", "radium", -1.0 },
{"Ac", "actinium", -1.0 },
{"Th", "thorium", 232.0377 },
{"Pa", "protactinium", 231.03588},
{"U", "uranium", 238.0508 },
{"Np", "neptunium", 237.0482 },
{"Pu", "plutonium", 244.0482 },
{"U", "uranium", 238.02891 },
{"Np", "neptunium", -1.0 },
{"Pu", "plutonium", -1.0 },
{"Am", "americium", -1.0 },
{"Cm", "curium", -1.0 },
{"Bk", "berkelium", -1.0 },
{"Cf", "californium", -1.0 },
{"Es", "einstiunium", -1.0 },
{"Fm", "fermium", -1.0 },
{"Md", "mendelevium", -1.0 },
{"No", "nobelium", -1.0 },
{"Lr", "lawrencium", -1.0 },
{"Rf", "rutherfordium", -1.0 },
{"Db", "dubnium", -1.0 },
{"Sg", "seaborgium", -1.0 },
{"Bh", "bohrium", -1.0 },
{"Hs", "hassium", -1.0 },
{"Mt", "meitnerium", -1.0 },
{"Ds", "darmstadtium", -1.0 },
{"Rg", "roentgenium", -1.0 },
{"Cn", "copernicium", -1.0 },
{"Nh", "nihonium", -1.0 },
{"Gl", "flerovium", -1.0 },
{"Mc", "moscovium", -1.0 },
{"Lv", "livermorium", -1.0 },
{"Ts", "tennessine", -1.0 },
{"Og", "oganesson", -1.0 },
};
/*!
@ -158,8 +197,15 @@ static struct atomicWeightData atomicWeightTable[] = {
* The size of the table is given by the initial instantiation.
*/
static struct isotopeWeightData isotopeWeightTable[] = {
{"D", "deuterium", 2.0, 1},
{"Tr", "tritium", 3.0, 1},
// 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},
{"E", "electron", 0.000545, 0},
};
@ -167,15 +213,24 @@ double getElementWeight(const std::string& ename)
{
int numElements = numElementsDefined();
int numIsotopes = numIsotopesDefined();
double elementWeight = 0.0;
string symbol = trimCopy(ename);
string name = toLowerCopy(symbol);
for (int i = 0; i < numElements; i++) {
if (symbol == atomicWeightTable[i].symbol) {
return atomicWeightTable[i].atomicWeight;
elementWeight = atomicWeightTable[i].atomicWeight;
break;
} else if (name == atomicWeightTable[i].fullName) {
return atomicWeightTable[i].atomicWeight;
elementWeight = atomicWeightTable[i].atomicWeight;
break;
}
}
if (elementWeight > 0.0) {
return elementWeight;
} else if (elementWeight < 0.0) {
throw CanteraError("getElementWeight",
"element has no stable isotopes: " + ename);
}
for (int i = 0; i < numIsotopes; i++) {
if (symbol == isotopeWeightTable[i].symbol) {
return isotopeWeightTable[i].atomicWeight;
@ -192,7 +247,13 @@ double getElementWeight(int atomicNumber)
if (atomicNumber > num || atomicNumber < 1) {
throw IndexError("getElementWeight", "atomicWeightTable", atomicNumber, num);
}
return atomicWeightTable[atomicNumber - 1].atomicWeight;
double elementWeight = atomicWeightTable[atomicNumber - 1].atomicWeight;
if (elementWeight < 0.0) {
string ename = getElementName(atomicNumber);
throw CanteraError("getElementWeight",
"element has no stable isotopes: " + ename);
}
return elementWeight;
}
string getElementSymbol(const std::string& ename)