diff --git a/README.md b/README.md index f00c1b6..96e67e6 100644 --- a/README.md +++ b/README.md @@ -80,8 +80,7 @@ julia> elements[1:4] A nice interactive visualization of the periodic table, based on PeriodicTable.jl, can be found [here](https://github.com/lancebeet/julia-scripts#periodictabletoyjl). ### Data by -The data used for this package has been pulled up in parts from [here](https://github.com/Bowserinator/Periodic-Table-JSON). -Some information has been (and will be) added over time. +The data used for this package has been pulled up in parts from [here](https://github.com/Bowserinator/Periodic-Table-JSON). Atomic weights are from the [IUPAC 2021 tabulation](https://iupac.qmul.ac.uk/AtWt/) ### Related packages [Mendeleev](https://github.com/Eben60/Mendeleev.jl) is [API compatible](https://eben60.github.io/Mendeleev.jl/#Compatibility-Issues) with the `PeriodicTable` and contains much broader range of data on chemical elements. [IsotopeTable](https://github.com/Gregstrq/IsotopeTable.jl), also inspired by `PeriodicTable`, provides data on various isotopes. diff --git a/src/elements.jl b/src/elements.jl index e296bb1..1bd533f 100644 --- a/src/elements.jl +++ b/src/elements.jl @@ -49,7 +49,7 @@ const _elements_data = [ ypos=1), Element(name="Helium", appearance="colorless gas, exhibiting a red-orange glow when placed in a high-voltage electric field", - atomic_mass=4.0026022u, + atomic_mass=4.002602u, boil=4.222K, category="noble gas", cpk_hex="#d9ffff", @@ -89,7 +89,7 @@ const _elements_data = [ ypos=2), Element(name="Beryllium", appearance="white-gray metallic", - atomic_mass=9.01218315u, + atomic_mass=9.0121831u, boil=2742.0K, category="alkaline earth metal", cpk_hex="#c2ff00", @@ -187,7 +187,7 @@ const _elements_data = [ xpos=16, ypos=2), Element(name="Fluorine", - atomic_mass=18.9984031636u, + atomic_mass=18.998403163u, boil=85.03K, category="diatomic nonmetal", cpk_hex="#90e050", @@ -207,7 +207,7 @@ const _elements_data = [ ypos=2), Element(name="Neon", appearance="colorless gas exhibiting an orange-red glow when placed in a high voltage electric field", - atomic_mass=20.17976u, + atomic_mass=20.1797u, boil=27.104K, category="noble gas", cpk_hex="#b3e3f5", @@ -227,7 +227,7 @@ const _elements_data = [ ypos=2), Element(name="Sodium", appearance="silvery white metallic", - atomic_mass=22.989769282u, + atomic_mass=22.98976928u, boil=1156.09K, category="alkali metal", cpk_hex="#ab5cf2", @@ -269,7 +269,7 @@ const _elements_data = [ ypos=3), Element(name="Aluminium", appearance="silvery gray metallic", - atomic_mass=26.98153857u, + atomic_mass=26.9815384u, boil=2743.0K, category="post-transition metal", cpk_hex="#bfa6a6", @@ -311,7 +311,7 @@ const _elements_data = [ ypos=3), Element(name="Phosphorus", appearance="colourless, waxy white, yellow, scarlet, red, violet, black", - atomic_mass=30.9737619985u, + atomic_mass=30.973761998u, category="polyatomic nonmetal", cpk_hex="#ff8000", density=1.82g/cm^3, @@ -370,7 +370,7 @@ const _elements_data = [ ypos=3), Element(name="Argon", appearance="colorless gas exhibiting a lilac/violet glow when placed in a high voltage electric field", - atomic_mass=39.9481u, + atomic_mass=39.95u, boil=87.302K, category="noble gas", cpk_hex="#80d1e3", @@ -390,7 +390,7 @@ const _elements_data = [ ypos=3), Element(name="Potassium", appearance="silvery gray", - atomic_mass=39.09831u, + atomic_mass=39.0983u, boil=1032.0K, category="alkali metal", cpk_hex="#8f40d4", @@ -410,7 +410,7 @@ const _elements_data = [ xpos=1, ypos=4), Element(name="Calcium", - atomic_mass=40.0784u, + atomic_mass=40.078u, boil=1757.0K, category="alkaline earth metal", cpk_hex="#3dff00", @@ -431,7 +431,7 @@ const _elements_data = [ ypos=4), Element(name="Scandium", appearance="silvery white", - atomic_mass=44.9559085u, + atomic_mass=44.955907u, boil=3109.0K, category="transition metal", cpk_hex="#e6e6e6", @@ -451,7 +451,7 @@ const _elements_data = [ ypos=4), Element(name="Titanium", appearance="silvery grey-white metallic", - atomic_mass=47.8671u, + atomic_mass=47.867u, boil=3560.0K, category="transition metal", cpk_hex="#bfc2c7", @@ -472,7 +472,7 @@ const _elements_data = [ ypos=4), Element(name="Vanadium", appearance="blue-silver-grey metal", - atomic_mass=50.94151u, + atomic_mass=50.9415u, boil=3680.0K, category="transition metal", cpk_hex="#a6a6ab", @@ -493,7 +493,7 @@ const _elements_data = [ ypos=4), Element(name="Chromium", appearance="silvery metallic", - atomic_mass=51.99616u, + atomic_mass=51.9961u, boil=2944.0K, category="transition metal", cpk_hex="#8a99c7", @@ -513,7 +513,7 @@ const _elements_data = [ ypos=4), Element(name="Manganese", appearance="silvery metallic", - atomic_mass=54.9380443u, + atomic_mass=54.938043u, boil=2334.0K, category="transition metal", cpk_hex="#9c7ac7", @@ -533,7 +533,7 @@ const _elements_data = [ ypos=4), Element(name="Iron", appearance="lustrous metallic with a grayish tinge", - atomic_mass=55.8452u, + atomic_mass=55.845u, boil=3134.0K, category="transition metal", cpk_hex="#e06633", @@ -554,7 +554,7 @@ const _elements_data = [ ypos=4), Element(name="Cobalt", appearance="hard lustrous gray metal", - atomic_mass=58.9331944u, + atomic_mass=58.933194u, boil=3200.0K, category="transition metal", color="metallic gray", @@ -575,7 +575,7 @@ const _elements_data = [ ypos=4), Element(name="Nickel", appearance="lustrous, metallic, and silver with a gold tinge", - atomic_mass=58.69344u, + atomic_mass=58.6934u, boil=3003.0K, category="transition metal", cpk_hex="#50d050", @@ -595,7 +595,7 @@ const _elements_data = [ ypos=4), Element(name="Copper", appearance="red-orange metallic luster", - atomic_mass=63.5463u, + atomic_mass=63.546u, boil=2835.0K, category="transition metal", cpk_hex="#c88033", @@ -615,7 +615,7 @@ const _elements_data = [ ypos=4), Element(name="Zinc", appearance="silver-gray", - atomic_mass=65.382u, + atomic_mass=65.38u, boil=1180.0K, category="transition metal", cpk_hex="#7d80b0", @@ -635,7 +635,7 @@ const _elements_data = [ ypos=4), Element(name="Gallium", appearance="silver-white", - atomic_mass=69.7231u, + atomic_mass=69.723u, boil=2673.0K, category="post-transition metal", cpk_hex="#c28f8f", @@ -655,7 +655,7 @@ const _elements_data = [ ypos=4), Element(name="Germanium", appearance="grayish-white", - atomic_mass=72.6308u, + atomic_mass=72.630u, boil=3106.0K, category="metalloid", cpk_hex="#668f8f", @@ -675,7 +675,7 @@ const _elements_data = [ ypos=4), Element(name="Arsenic", appearance="metallic grey", - atomic_mass=74.9215956u, + atomic_mass=74.921595u, category="metalloid", cpk_hex="#bd80e3", density=5.727g/cm^3, @@ -693,7 +693,7 @@ const _elements_data = [ ypos=4), Element(name="Selenium", appearance="black, red, and gray (not pictured) allotropes", - atomic_mass=78.9718u, + atomic_mass=78.971u, boil=958.0K, category="polyatomic nonmetal", cpk_hex="#ffa100", @@ -731,7 +731,7 @@ const _elements_data = [ ypos=4), Element(name="Krypton", appearance="colorless gas, exhibiting a whitish glow in a high electric field", - atomic_mass=83.7982u, + atomic_mass=83.798u, boil=119.93K, category="noble gas", cpk_hex="#5cb8d1", @@ -751,7 +751,7 @@ const _elements_data = [ ypos=4), Element(name="Rubidium", appearance="grey white", - atomic_mass=85.46783u, + atomic_mass=85.4678u, boil=961.0K, category="alkali metal", cpk_hex="#702eb0", @@ -770,7 +770,7 @@ const _elements_data = [ xpos=1, ypos=5), Element(name="Strontium", - atomic_mass=87.621u, + atomic_mass=87.62u, boil=1650.0K, category="alkaline earth metal", cpk_hex="#00ff00", @@ -790,7 +790,7 @@ const _elements_data = [ ypos=5), Element(name="Yttrium", appearance="silvery white", - atomic_mass=88.905842u, + atomic_mass=88.905838u, boil=3203.0K, category="transition metal", cpk_hex="#94ffff", @@ -810,7 +810,7 @@ const _elements_data = [ ypos=5), Element(name="Zirconium", appearance="silvery white", - atomic_mass=91.2242u, + atomic_mass=91.224u, boil=4650.0K, category="transition metal", cpk_hex="#94e0e0", @@ -830,7 +830,7 @@ const _elements_data = [ ypos=5), Element(name="Niobium", appearance="gray metallic, bluish when oxidized", - atomic_mass=92.906372u, + atomic_mass=92.90637u, boil=5017.0K, category="transition metal", cpk_hex="#73c2c9", @@ -850,7 +850,7 @@ const _elements_data = [ ypos=5), Element(name="Molybdenum", appearance="gray metallic", - atomic_mass=95.951u, + atomic_mass=95.95u, boil=4912.0K, category="transition metal", cpk_hex="#54b5b5", @@ -870,7 +870,7 @@ const _elements_data = [ ypos=5), Element(name="Technetium", appearance="shiny gray metal", - atomic_mass=98.0u, + atomic_mass=97.0u, boil=4538.0K, category="transition metal", cpk_hex="#3b9e9e", @@ -890,7 +890,7 @@ const _elements_data = [ ypos=5), Element(name="Ruthenium", appearance="silvery white metallic", - atomic_mass=101.072u, + atomic_mass=101.07u, boil=4423.0K, category="transition metal", cpk_hex="#248f8f", @@ -910,7 +910,7 @@ const _elements_data = [ ypos=5), Element(name="Rhodium", appearance="silvery white metallic", - atomic_mass=102.905502u, + atomic_mass=102.90549u, boil=3968.0K, category="transition metal", cpk_hex="#0a7d8c", @@ -930,7 +930,7 @@ const _elements_data = [ ypos=5), Element(name="Palladium", appearance="silvery white", - atomic_mass=106.421u, + atomic_mass=106.42u, boil=3236.0K, category="transition metal", cpk_hex="#006985", @@ -950,7 +950,7 @@ const _elements_data = [ ypos=5), Element(name="Silver", appearance="lustrous white metal", - atomic_mass=107.86822u, + atomic_mass=107.8682u, boil=2435.0K, category="transition metal", cpk_hex="#c0c0c0", @@ -970,7 +970,7 @@ const _elements_data = [ ypos=5), Element(name="Cadmium", appearance="silvery bluish-gray metallic", - atomic_mass=112.4144u, + atomic_mass=112.414u, boil=1040.0K, category="transition metal", cpk_hex="#ffd98f", @@ -991,7 +991,7 @@ const _elements_data = [ ypos=5), Element(name="Indium", appearance="silvery lustrous gray", - atomic_mass=114.8181u, + atomic_mass=114.818u, boil=2345.0K, category="post-transition metal", cpk_hex="#a67573", @@ -1011,7 +1011,7 @@ const _elements_data = [ ypos=5), Element(name="Tin", appearance="silvery-white (beta, β) or gray (alpha, α)", - atomic_mass=118.7107u, + atomic_mass=118.710u, boil=2875.0K, category="post-transition metal", cpk_hex="#668080", @@ -1031,7 +1031,7 @@ const _elements_data = [ ypos=5), Element(name="Antimony", appearance="silvery lustrous gray", - atomic_mass=121.7601u, + atomic_mass=121.760u, boil=1908.0K, category="metalloid", cpk_hex="#9e63b5", @@ -1050,7 +1050,7 @@ const _elements_data = [ xpos=15, ypos=5), Element(name="Tellurium", - atomic_mass=127.603u, + atomic_mass=127.60u, boil=1261.0K, category="metalloid", cpk_hex="#d47a00", @@ -1070,7 +1070,7 @@ const _elements_data = [ ypos=5), Element(name="Iodine", appearance="lustrous metallic gray, violet as a gas", - atomic_mass=126.904473u, + atomic_mass=126.90447u, boil=457.4K, category="diatomic nonmetal", cpk_hex="#940094", @@ -1089,7 +1089,7 @@ const _elements_data = [ ypos=5), Element(name="Xenon", appearance="colorless gas, exhibiting a blue glow when placed in a high voltage electric field", - atomic_mass=131.2936u, + atomic_mass=131.293u, boil=165.051K, category="noble gas", cpk_hex="#429eb0", @@ -1109,7 +1109,7 @@ const _elements_data = [ ypos=5), Element(name="Cesium", appearance="silvery gold", - atomic_mass=132.905451966u, + atomic_mass=132.90545196u, boil=944.0K, category="alkali metal", cpk_hex="#57178f", @@ -1128,7 +1128,7 @@ const _elements_data = [ xpos=1, ypos=6), Element(name="Barium", - atomic_mass=137.3277u, + atomic_mass=137.327u, boil=2118.0K, category="alkaline earth metal", cpk_hex="#00c900", @@ -1148,7 +1148,7 @@ const _elements_data = [ ypos=6), Element(name="Lanthanum", appearance="silvery white", - atomic_mass=138.905477u, + atomic_mass=138.90547u, boil=3737.0K, category="lanthanide", cpk_hex="#70d4ff", @@ -1168,7 +1168,7 @@ const _elements_data = [ ypos=9), Element(name="Cerium", appearance="silvery white", - atomic_mass=140.1161u, + atomic_mass=140.116u, boil=3716.0K, category="lanthanide", cpk_hex="#ffffc7", @@ -1188,7 +1188,7 @@ const _elements_data = [ ypos=9), Element(name="Praseodymium", appearance="grayish white", - atomic_mass=140.907662u, + atomic_mass=140.90766u, boil=3403.0K, category="lanthanide", cpk_hex="#d9ffc7", @@ -1208,7 +1208,7 @@ const _elements_data = [ ypos=9), Element(name="Neodymium", appearance="silvery white", - atomic_mass=144.2423u, + atomic_mass=144.242u, boil=3347.0K, category="lanthanide", cpk_hex="#c7ffc7", @@ -1248,7 +1248,7 @@ const _elements_data = [ ypos=9), Element(name="Samarium", appearance="silvery white", - atomic_mass=150.362u, + atomic_mass=150.36u, boil=2173.0K, category="lanthanide", cpk_hex="#8fffc7", @@ -1267,7 +1267,7 @@ const _elements_data = [ xpos=8, ypos=9), Element(name="Europium", - atomic_mass=151.9641u, + atomic_mass=151.964u, boil=1802.0K, category="lanthanide", cpk_hex="#61ffc7", @@ -1287,7 +1287,7 @@ const _elements_data = [ ypos=9), Element(name="Gadolinium", appearance="silvery white", - atomic_mass=157.253u, + atomic_mass=157.25u, boil=3273.0K, category="lanthanide", cpk_hex="#45ffc7", @@ -1307,7 +1307,7 @@ const _elements_data = [ ypos=9), Element(name="Terbium", appearance="silvery white", - atomic_mass=158.925352u, + atomic_mass=158.925354u, boil=3396.0K, category="lanthanide", cpk_hex="#30ffc7", @@ -1327,7 +1327,7 @@ const _elements_data = [ ypos=9), Element(name="Dysprosium", appearance="silvery white", - atomic_mass=162.5001u, + atomic_mass=162.500u, boil=2840.0K, category="lanthanide", cpk_hex="#1fffc7", @@ -1347,7 +1347,7 @@ const _elements_data = [ ypos=9), Element(name="Holmium", appearance="silvery white", - atomic_mass=164.930332u, + atomic_mass=164.930329u, boil=2873.0K, category="lanthanide", cpk_hex="#00ff9c", @@ -1367,7 +1367,7 @@ const _elements_data = [ ypos=9), Element(name="Erbium", appearance="silvery white", - atomic_mass=167.2593u, + atomic_mass=167.259u, boil=3141.0K, category="lanthanide", cpk_hex="#00e675", @@ -1387,7 +1387,7 @@ const _elements_data = [ ypos=9), Element(name="Thulium", appearance="silvery gray", - atomic_mass=168.934222u, + atomic_mass=168.934219u, boil=2223.0K, category="lanthanide", cpk_hex="#00d452", @@ -1406,7 +1406,7 @@ const _elements_data = [ xpos=15, ypos=9), Element(name="Ytterbium", - atomic_mass=173.0451u, + atomic_mass=173.045u, boil=1469.0K, category="lanthanide", cpk_hex="#00bf38", @@ -1426,7 +1426,7 @@ const _elements_data = [ ypos=9), Element(name="Lutetium", appearance="silvery white", - atomic_mass=174.96681u, + atomic_mass=174.9668u, boil=3675.0K, category="lanthanide", cpk_hex="#00ab24", @@ -1446,7 +1446,7 @@ const _elements_data = [ ypos=9), Element(name="Hafnium", appearance="steel gray", - atomic_mass=178.492u, + atomic_mass=178.486u, boil=4876.0K, category="transition metal", cpk_hex="#4dc2ff", @@ -1467,7 +1467,7 @@ const _elements_data = [ ypos=6), Element(name="Tantalum", appearance="gray blue", - atomic_mass=180.947882u, + atomic_mass=180.94788u, boil=5731.0K, category="transition metal", cpk_hex="#4da6ff", @@ -1488,7 +1488,7 @@ const _elements_data = [ ypos=6), Element(name="Tungsten", appearance="grayish white, lustrous", - atomic_mass=183.841u, + atomic_mass=183.84u, boil=6203.0K, category="transition metal", cpk_hex="#2194d6", @@ -1508,7 +1508,7 @@ const _elements_data = [ ypos=6), Element(name="Rhenium", appearance="silvery-grayish", - atomic_mass=186.2071u, + atomic_mass=186.207u, boil=5869.0K, category="transition metal", cpk_hex="#267dab", @@ -1529,7 +1529,7 @@ const _elements_data = [ ypos=6), Element(name="Osmium", appearance="silvery, blue cast", - atomic_mass=190.233u, + atomic_mass=190.23u, boil=5285.0K, category="transition metal", cpk_hex="#266696", @@ -1549,7 +1549,7 @@ const _elements_data = [ ypos=6), Element(name="Iridium", appearance="silvery white", - atomic_mass=192.2173u, + atomic_mass=192.217u, boil=4403.0K, category="transition metal", cpk_hex="#175487", @@ -1569,7 +1569,7 @@ const _elements_data = [ ypos=6), Element(name="Platinum", appearance="silvery white", - atomic_mass=195.0849u, + atomic_mass=195.084u, boil=4098.0K, category="transition metal", cpk_hex="#d0d0e0", @@ -1589,7 +1589,7 @@ const _elements_data = [ ypos=6), Element(name="Gold", appearance="metallic yellow", - atomic_mass=196.9665695u, + atomic_mass=196.966570u, boil=3243.0K, category="transition metal", cpk_hex="#ffd123", @@ -1609,7 +1609,7 @@ const _elements_data = [ ypos=6), Element(name="Mercury", appearance="silvery", - atomic_mass=200.5923u, + atomic_mass=200.592u, boil=629.88K, category="transition metal", cpk_hex="#b8b8d0", @@ -1649,7 +1649,7 @@ const _elements_data = [ ypos=6), Element(name="Lead", appearance="metallic gray", - atomic_mass=207.21u, + atomic_mass=207.2u, boil=2022.0K, category="post-transition metal", cpk_hex="#575961", @@ -1669,7 +1669,7 @@ const _elements_data = [ ypos=6), Element(name="Bismuth", appearance="lustrous silver", - atomic_mass=208.980401u, + atomic_mass=208.98040u, boil=1837.0K, category="post-transition metal", cpk_hex="#9e4fb5", @@ -1804,7 +1804,7 @@ const _elements_data = [ ypos=10), Element(name="Thorium", appearance="silvery, often with black tarnish", - atomic_mass=232.03774u, + atomic_mass=232.0377u, boil=5061.0K, category="actinide", cpk_hex="#00baff", @@ -1824,7 +1824,7 @@ const _elements_data = [ ypos=10), Element(name="Protactinium", appearance="bright, silvery metallic luster", - atomic_mass=231.035882u, + atomic_mass=231.03588u, boil=4300.0K, category="actinide", cpk_hex="#00a1ff", @@ -1843,7 +1843,7 @@ const _elements_data = [ xpos=5, ypos=10), Element(name="Uranium", - atomic_mass=238.028913u, + atomic_mass=238.02891u, boil=4404.0K, category="actinide", cpk_hex="#008fff", @@ -2047,7 +2047,7 @@ const _elements_data = [ xpos=16, ypos=10), Element(name="Lawrencium", - atomic_mass=266.0u, + atomic_mass=262.0u, category="actinide", cpk_hex="#c70066", discovered_by="Lawrence Berkeley National Laboratory", @@ -2081,7 +2081,7 @@ const _elements_data = [ xpos=4, ypos=7), Element(name="Dubnium", - atomic_mass=268.0u, + atomic_mass=270.0u, category="transition metal", cpk_hex="#d1004f", density=29.3g/cm^3, @@ -2129,7 +2129,7 @@ const _elements_data = [ xpos=7, ypos=7), Element(name="Hassium", - atomic_mass=269.0u, + atomic_mass=270.0u, category="transition metal", cpk_hex="#e6002e", density=40.7g/cm^3, @@ -2177,7 +2177,7 @@ const _elements_data = [ xpos=10, ypos=7), Element(name="Roentgenium", - atomic_mass=282.0u, + atomic_mass=281.0u, category="unknown, probably transition metal", density=28.7g/cm^3, discovered_by="Gesellschaft für Schwerionenforschung", @@ -2276,7 +2276,7 @@ const _elements_data = [ xpos=16, ypos=7), Element(name="Tennessine", - atomic_mass=294.0u, + atomic_mass=293.0u, boil=883.0K, category="unknown, probably metalloid", density=7.17g/cm^3, diff --git a/test/runtests.jl b/test/runtests.jl index 4e65c80..d5c6394 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -86,3 +86,16 @@ end for g in [e for e in elements if e.phase=="Gas"] @test 5e-5u"g/cm^3" < g.density < 5e-2u"g/cm^3" end + +# Check atomic_mass against values from https://iupac.qmul.ac.uk/AtWt/ +a = [ 1.008, 4.002602, 6.94, 9.0121831, 10.81, 12.011, 14.007, 15.999, 18.998403163, 20.1797, 22.98976928, 24.305, + 26.9815384, 28.085, 30.973761998, 32.06, 35.45, 39.95, 39.0983, 40.078, 44.955907, 47.867, 50.9415, 51.9961, + 54.938043, 55.845, 58.933194, 58.6934, 63.546, 65.38, 69.723, 72.63, 74.921595, 78.971, 79.904, 83.798, + 85.4678, 87.62, 88.905838, 91.224, 92.90637, 95.95, 97.0, 101.07, 102.90549, 106.42, 107.8682, 112.414, + 114.818, 118.71, 121.76, 127.6, 126.90447, 131.293, 132.90545196, 137.327, 138.90547, 140.116, 140.90766, + 144.242, 145.0, 150.36, 151.964, 157.25, 158.925354, 162.5, 164.930329, 167.259, 168.934219, 173.045, 174.9668, + 178.486, 180.94788, 183.84, 186.207, 190.23, 192.217, 195.084, 196.96657, 200.592, 204.38, 207.2, 208.9804, + 209.0, 210.0, 222.0, 223.0, 226.0, 227.0, 232.0377, 231.03588, 238.02891, 237.0, 244.0, 243.0, 247.0, 247.0, + 251.0, 252.0, 257.0, 258.0, 259.0, 262.0, 267.0, 270.0, 269.0, 270.0, 270.0, 278.0, 281.0, 281.0, 285.0, + 286.0, 289.0, 289.0, 293.0, 293.0, 294.0 ] +@test all(map(z->isequal(ustrip(elements[z].atomic_mass), a[z]), eachindex(a))) \ No newline at end of file