#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ElementCategory {
Nonmetal,
NobleGas,
AlkaliMetal,
AlkalineEarthMetal,
Metalloid,
Halogen,
TransitionMetal,
PostTransitionMetal,
Lanthanide,
Actinide,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum StandardState {
Solid,
Liquid,
Gas,
Unknown,
}
#[derive(Debug, Clone)]
pub struct Element {
pub atomic_number: u32,
pub symbol: &'static str,
pub name: &'static str,
pub atomic_mass: f64,
pub density: f64,
pub melting_point: f64,
pub boiling_point: f64,
pub specific_heat: f64,
pub thermal_conductivity: f64,
pub electronegativity: f64,
pub ionization_energy: f64,
pub electron_affinity: f64,
pub atomic_radius: f64,
pub category: ElementCategory,
pub standard_state: StandardState,
pub electron_configuration: &'static str,
pub oxidation_states: &'static str,
}
static ELEMENTS: [Element; 118] = [
Element {
atomic_number: 1,
symbol: "H",
name: "Hydrogen",
atomic_mass: 1.008,
density: 0.08988,
melting_point: 13.81,
boiling_point: 20.28,
specific_heat: 14304.0,
thermal_conductivity: 0.1805,
electronegativity: 2.2,
ionization_energy: 13.598,
electron_affinity: 0.754,
atomic_radius: 120.0,
category: ElementCategory::Nonmetal,
standard_state: StandardState::Gas,
electron_configuration: "1s1",
oxidation_states: "+1,-1",
},
Element {
atomic_number: 2,
symbol: "He",
name: "Helium",
atomic_mass: 4.0026,
density: 0.1785,
melting_point: 1.15,
boiling_point: 4.22,
specific_heat: 5193.0,
thermal_conductivity: 0.1513,
electronegativity: 0.0,
ionization_energy: 24.587,
electron_affinity: 0.0,
atomic_radius: 140.0,
category: ElementCategory::NobleGas,
standard_state: StandardState::Gas,
electron_configuration: "1s2",
oxidation_states: "0",
},
Element {
atomic_number: 3,
symbol: "Li",
name: "Lithium",
atomic_mass: 7.0,
density: 534.0,
melting_point: 453.65,
boiling_point: 1615.0,
specific_heat: 3582.0,
thermal_conductivity: 84.8,
electronegativity: 0.98,
ionization_energy: 5.392,
electron_affinity: 0.618,
atomic_radius: 182.0,
category: ElementCategory::AlkaliMetal,
standard_state: StandardState::Solid,
electron_configuration: "[He]2s1",
oxidation_states: "+1",
},
Element {
atomic_number: 4,
symbol: "Be",
name: "Beryllium",
atomic_mass: 9.012,
density: 1850.0,
melting_point: 1560.0,
boiling_point: 2744.0,
specific_heat: 1825.0,
thermal_conductivity: 200.0,
electronegativity: 1.57,
ionization_energy: 9.323,
electron_affinity: 0.0,
atomic_radius: 153.0,
category: ElementCategory::AlkalineEarthMetal,
standard_state: StandardState::Solid,
electron_configuration: "[He]2s2",
oxidation_states: "+2",
},
Element {
atomic_number: 5,
symbol: "B",
name: "Boron",
atomic_mass: 10.81,
density: 2370.0,
melting_point: 2348.0,
boiling_point: 4273.0,
specific_heat: 1026.0,
thermal_conductivity: 27.4,
electronegativity: 2.04,
ionization_energy: 8.298,
electron_affinity: 0.277,
atomic_radius: 192.0,
category: ElementCategory::Metalloid,
standard_state: StandardState::Solid,
electron_configuration: "[He]2s2 2p1",
oxidation_states: "+3",
},
Element {
atomic_number: 6,
symbol: "C",
name: "Carbon",
atomic_mass: 12.011,
density: 2267.0,
melting_point: 3823.0,
boiling_point: 4098.0,
specific_heat: 709.0,
thermal_conductivity: 119.0,
electronegativity: 2.55,
ionization_energy: 11.26,
electron_affinity: 1.263,
atomic_radius: 170.0,
category: ElementCategory::Nonmetal,
standard_state: StandardState::Solid,
electron_configuration: "[He]2s2 2p2",
oxidation_states: "+4,+2,-4",
},
Element {
atomic_number: 7,
symbol: "N",
name: "Nitrogen",
atomic_mass: 14.007,
density: 1.2506,
melting_point: 63.15,
boiling_point: 77.36,
specific_heat: 1040.0,
thermal_conductivity: 0.02583,
electronegativity: 3.04,
ionization_energy: 14.534,
electron_affinity: 0.0,
atomic_radius: 155.0,
category: ElementCategory::Nonmetal,
standard_state: StandardState::Gas,
electron_configuration: "[He]2s2 2p3",
oxidation_states: "+5,+4,+3,+2,+1,-1,-2,-3",
},
Element {
atomic_number: 8,
symbol: "O",
name: "Oxygen",
atomic_mass: 15.999,
density: 1.429,
melting_point: 54.36,
boiling_point: 90.2,
specific_heat: 918.0,
thermal_conductivity: 0.02658,
electronegativity: 3.44,
ionization_energy: 13.618,
electron_affinity: 1.461,
atomic_radius: 152.0,
category: ElementCategory::Nonmetal,
standard_state: StandardState::Gas,
electron_configuration: "[He]2s2 2p4",
oxidation_states: "-2",
},
Element {
atomic_number: 9,
symbol: "F",
name: "Fluorine",
atomic_mass: 18.998,
density: 1.696,
melting_point: 53.53,
boiling_point: 85.03,
specific_heat: 824.0,
thermal_conductivity: 0.0277,
electronegativity: 3.98,
ionization_energy: 17.423,
electron_affinity: 3.339,
atomic_radius: 135.0,
category: ElementCategory::Halogen,
standard_state: StandardState::Gas,
electron_configuration: "[He]2s2 2p5",
oxidation_states: "-1",
},
Element {
atomic_number: 10,
symbol: "Ne",
name: "Neon",
atomic_mass: 20.18,
density: 0.8999,
melting_point: 24.56,
boiling_point: 27.07,
specific_heat: 1030.0,
thermal_conductivity: 0.0491,
electronegativity: 0.0,
ionization_energy: 21.565,
electron_affinity: 0.0,
atomic_radius: 154.0,
category: ElementCategory::NobleGas,
standard_state: StandardState::Gas,
electron_configuration: "[He]2s2 2p6",
oxidation_states: "0",
},
Element {
atomic_number: 11,
symbol: "Na",
name: "Sodium",
atomic_mass: 22.99,
density: 970.0,
melting_point: 370.95,
boiling_point: 1156.0,
specific_heat: 1228.0,
thermal_conductivity: 142.0,
electronegativity: 0.93,
ionization_energy: 5.139,
electron_affinity: 0.548,
atomic_radius: 227.0,
category: ElementCategory::AlkaliMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ne]3s1",
oxidation_states: "+1",
},
Element {
atomic_number: 12,
symbol: "Mg",
name: "Magnesium",
atomic_mass: 24.305,
density: 1740.0,
melting_point: 923.0,
boiling_point: 1363.0,
specific_heat: 1023.0,
thermal_conductivity: 156.0,
electronegativity: 1.31,
ionization_energy: 7.646,
electron_affinity: 0.0,
atomic_radius: 173.0,
category: ElementCategory::AlkalineEarthMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ne]3s2",
oxidation_states: "+2",
},
Element {
atomic_number: 13,
symbol: "Al",
name: "Aluminum",
atomic_mass: 26.982,
density: 2700.0,
melting_point: 933.44,
boiling_point: 2792.0,
specific_heat: 897.0,
thermal_conductivity: 237.0,
electronegativity: 1.61,
ionization_energy: 5.986,
electron_affinity: 0.441,
atomic_radius: 184.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ne]3s2 3p1",
oxidation_states: "+3",
},
Element {
atomic_number: 14,
symbol: "Si",
name: "Silicon",
atomic_mass: 28.085,
density: 2330.0,
melting_point: 1687.0,
boiling_point: 3538.0,
specific_heat: 705.0,
thermal_conductivity: 149.0,
electronegativity: 1.9,
ionization_energy: 8.152,
electron_affinity: 1.385,
atomic_radius: 210.0,
category: ElementCategory::Metalloid,
standard_state: StandardState::Solid,
electron_configuration: "[Ne]3s2 3p2",
oxidation_states: "+4,+2,-4",
},
Element {
atomic_number: 15,
symbol: "P",
name: "Phosphorus",
atomic_mass: 30.974,
density: 1820.0,
melting_point: 317.3,
boiling_point: 553.65,
specific_heat: 769.0,
thermal_conductivity: 0.236,
electronegativity: 2.19,
ionization_energy: 10.487,
electron_affinity: 0.746,
atomic_radius: 180.0,
category: ElementCategory::Nonmetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ne]3s2 3p3",
oxidation_states: "+5,+3,-3",
},
Element {
atomic_number: 16,
symbol: "S",
name: "Sulfur",
atomic_mass: 32.07,
density: 2067.0,
melting_point: 388.36,
boiling_point: 717.75,
specific_heat: 710.0,
thermal_conductivity: 0.205,
electronegativity: 2.58,
ionization_energy: 10.36,
electron_affinity: 2.077,
atomic_radius: 180.0,
category: ElementCategory::Nonmetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ne]3s2 3p4",
oxidation_states: "+6,+4,-2",
},
Element {
atomic_number: 17,
symbol: "Cl",
name: "Chlorine",
atomic_mass: 35.45,
density: 3.214,
melting_point: 171.65,
boiling_point: 239.11,
specific_heat: 479.0,
thermal_conductivity: 0.0089,
electronegativity: 3.16,
ionization_energy: 12.968,
electron_affinity: 3.617,
atomic_radius: 175.0,
category: ElementCategory::Halogen,
standard_state: StandardState::Gas,
electron_configuration: "[Ne]3s2 3p5",
oxidation_states: "+7,+5,+1,-1",
},
Element {
atomic_number: 18,
symbol: "Ar",
name: "Argon",
atomic_mass: 39.9,
density: 1.784,
melting_point: 83.8,
boiling_point: 87.3,
specific_heat: 520.0,
thermal_conductivity: 0.01772,
electronegativity: 0.0,
ionization_energy: 15.76,
electron_affinity: 0.0,
atomic_radius: 188.0,
category: ElementCategory::NobleGas,
standard_state: StandardState::Gas,
electron_configuration: "[Ne]3s2 3p6",
oxidation_states: "0",
},
Element {
atomic_number: 19,
symbol: "K",
name: "Potassium",
atomic_mass: 39.098,
density: 890.0,
melting_point: 336.53,
boiling_point: 1032.0,
specific_heat: 757.0,
thermal_conductivity: 102.5,
electronegativity: 0.82,
ionization_energy: 4.341,
electron_affinity: 0.501,
atomic_radius: 275.0,
category: ElementCategory::AlkaliMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s1",
oxidation_states: "+1",
},
Element {
atomic_number: 20,
symbol: "Ca",
name: "Calcium",
atomic_mass: 40.08,
density: 1540.0,
melting_point: 1115.0,
boiling_point: 1757.0,
specific_heat: 647.0,
thermal_conductivity: 201.0,
electronegativity: 1.0,
ionization_energy: 6.113,
electron_affinity: 0.0,
atomic_radius: 231.0,
category: ElementCategory::AlkalineEarthMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2",
oxidation_states: "+2",
},
Element {
atomic_number: 21,
symbol: "Sc",
name: "Scandium",
atomic_mass: 44.956,
density: 2990.0,
melting_point: 1814.0,
boiling_point: 3109.0,
specific_heat: 568.0,
thermal_conductivity: 15.8,
electronegativity: 1.36,
ionization_energy: 6.561,
electron_affinity: 0.188,
atomic_radius: 211.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d1",
oxidation_states: "+3",
},
Element {
atomic_number: 22,
symbol: "Ti",
name: "Titanium",
atomic_mass: 47.867,
density: 4500.0,
melting_point: 1941.0,
boiling_point: 3560.0,
specific_heat: 523.0,
thermal_conductivity: 21.9,
electronegativity: 1.54,
ionization_energy: 6.828,
electron_affinity: 0.079,
atomic_radius: 187.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d2",
oxidation_states: "+4,+3,+2",
},
Element {
atomic_number: 23,
symbol: "V",
name: "Vanadium",
atomic_mass: 50.942,
density: 6000.0,
melting_point: 2183.0,
boiling_point: 3680.0,
specific_heat: 489.0,
thermal_conductivity: 30.7,
electronegativity: 1.63,
ionization_energy: 6.746,
electron_affinity: 0.525,
atomic_radius: 179.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d3",
oxidation_states: "+5,+4,+3,+2",
},
Element {
atomic_number: 24,
symbol: "Cr",
name: "Chromium",
atomic_mass: 51.996,
density: 7150.0,
melting_point: 2180.0,
boiling_point: 2944.0,
specific_heat: 449.0,
thermal_conductivity: 93.9,
electronegativity: 1.66,
ionization_energy: 6.767,
electron_affinity: 0.666,
atomic_radius: 189.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]3d5 4s1",
oxidation_states: "+6,+3,+2",
},
Element {
atomic_number: 25,
symbol: "Mn",
name: "Manganese",
atomic_mass: 54.938,
density: 7300.0,
melting_point: 1519.0,
boiling_point: 2334.0,
specific_heat: 479.0,
thermal_conductivity: 7.81,
electronegativity: 1.55,
ionization_energy: 7.434,
electron_affinity: 0.0,
atomic_radius: 197.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d5",
oxidation_states: "+7,+4,+3,+2",
},
Element {
atomic_number: 26,
symbol: "Fe",
name: "Iron",
atomic_mass: 55.845,
density: 7874.0,
melting_point: 1811.0,
boiling_point: 3134.0,
specific_heat: 449.0,
thermal_conductivity: 80.4,
electronegativity: 1.83,
ionization_energy: 7.902,
electron_affinity: 0.163,
atomic_radius: 194.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d6",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 27,
symbol: "Co",
name: "Cobalt",
atomic_mass: 58.933,
density: 8860.0,
melting_point: 1768.0,
boiling_point: 3200.0,
specific_heat: 421.0,
thermal_conductivity: 100.0,
electronegativity: 1.88,
ionization_energy: 7.881,
electron_affinity: 0.661,
atomic_radius: 192.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d7",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 28,
symbol: "Ni",
name: "Nickel",
atomic_mass: 58.693,
density: 8912.0,
melting_point: 1728.0,
boiling_point: 3186.0,
specific_heat: 444.0,
thermal_conductivity: 90.9,
electronegativity: 1.91,
ionization_energy: 7.64,
electron_affinity: 1.156,
atomic_radius: 163.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d8",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 29,
symbol: "Cu",
name: "Copper",
atomic_mass: 63.55,
density: 8933.0,
melting_point: 1357.77,
boiling_point: 2835.0,
specific_heat: 385.0,
thermal_conductivity: 401.0,
electronegativity: 1.9,
ionization_energy: 7.726,
electron_affinity: 1.228,
atomic_radius: 140.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s1 3d10",
oxidation_states: "+2,+1",
},
Element {
atomic_number: 30,
symbol: "Zn",
name: "Zinc",
atomic_mass: 65.4,
density: 7134.0,
melting_point: 692.68,
boiling_point: 1180.0,
specific_heat: 388.0,
thermal_conductivity: 116.0,
electronegativity: 1.65,
ionization_energy: 9.394,
electron_affinity: 0.0,
atomic_radius: 139.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d10",
oxidation_states: "+2",
},
Element {
atomic_number: 31,
symbol: "Ga",
name: "Gallium",
atomic_mass: 69.723,
density: 5910.0,
melting_point: 302.91,
boiling_point: 2477.0,
specific_heat: 371.0,
thermal_conductivity: 40.6,
electronegativity: 1.81,
ionization_energy: 5.999,
electron_affinity: 0.3,
atomic_radius: 187.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d10 4p1",
oxidation_states: "+3",
},
Element {
atomic_number: 32,
symbol: "Ge",
name: "Germanium",
atomic_mass: 72.63,
density: 5323.0,
melting_point: 1211.4,
boiling_point: 3106.0,
specific_heat: 320.0,
thermal_conductivity: 60.2,
electronegativity: 2.01,
ionization_energy: 7.9,
electron_affinity: 1.35,
atomic_radius: 211.0,
category: ElementCategory::Metalloid,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d10 4p2",
oxidation_states: "+4,+2",
},
Element {
atomic_number: 33,
symbol: "As",
name: "Arsenic",
atomic_mass: 74.922,
density: 5776.0,
melting_point: 887.0,
boiling_point: 1090.0,
specific_heat: 329.0,
thermal_conductivity: 50.2,
electronegativity: 2.18,
ionization_energy: 9.815,
electron_affinity: 0.81,
atomic_radius: 185.0,
category: ElementCategory::Metalloid,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d10 4p3",
oxidation_states: "+5,+3,-3",
},
Element {
atomic_number: 34,
symbol: "Se",
name: "Selenium",
atomic_mass: 78.97,
density: 4809.0,
melting_point: 493.65,
boiling_point: 958.0,
specific_heat: 321.0,
thermal_conductivity: 0.519,
electronegativity: 2.55,
ionization_energy: 9.752,
electron_affinity: 2.021,
atomic_radius: 190.0,
category: ElementCategory::Nonmetal,
standard_state: StandardState::Solid,
electron_configuration: "[Ar]4s2 3d10 4p4",
oxidation_states: "+6,+4,-2",
},
Element {
atomic_number: 35,
symbol: "Br",
name: "Bromine",
atomic_mass: 79.9,
density: 3110.0,
melting_point: 265.95,
boiling_point: 331.95,
specific_heat: 474.0,
thermal_conductivity: 0.122,
electronegativity: 2.96,
ionization_energy: 11.814,
electron_affinity: 3.365,
atomic_radius: 183.0,
category: ElementCategory::Halogen,
standard_state: StandardState::Liquid,
electron_configuration: "[Ar]4s2 3d10 4p5",
oxidation_states: "+5,+1,-1",
},
Element {
atomic_number: 36,
symbol: "Kr",
name: "Krypton",
atomic_mass: 83.8,
density: 3.733,
melting_point: 115.79,
boiling_point: 119.93,
specific_heat: 248.0,
thermal_conductivity: 0.00943,
electronegativity: 3.0,
ionization_energy: 14.0,
electron_affinity: 0.0,
atomic_radius: 202.0,
category: ElementCategory::NobleGas,
standard_state: StandardState::Gas,
electron_configuration: "[Ar]4s2 3d10 4p6",
oxidation_states: "0",
},
Element {
atomic_number: 37,
symbol: "Rb",
name: "Rubidium",
atomic_mass: 85.468,
density: 1532.0,
melting_point: 312.46,
boiling_point: 961.0,
specific_heat: 364.0,
thermal_conductivity: 58.2,
electronegativity: 0.82,
ionization_energy: 4.177,
electron_affinity: 0.486,
atomic_radius: 303.0,
category: ElementCategory::AlkaliMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s1",
oxidation_states: "+1",
},
Element {
atomic_number: 38,
symbol: "Sr",
name: "Strontium",
atomic_mass: 87.62,
density: 2640.0,
melting_point: 1050.0,
boiling_point: 1655.0,
specific_heat: 301.0,
thermal_conductivity: 35.4,
electronegativity: 0.95,
ionization_energy: 5.695,
electron_affinity: 0.0,
atomic_radius: 249.0,
category: ElementCategory::AlkalineEarthMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2",
oxidation_states: "+2",
},
Element {
atomic_number: 39,
symbol: "Y",
name: "Yttrium",
atomic_mass: 88.906,
density: 4469.0,
melting_point: 1799.0,
boiling_point: 3609.0,
specific_heat: 298.0,
thermal_conductivity: 17.2,
electronegativity: 1.22,
ionization_energy: 6.217,
electron_affinity: 0.307,
atomic_radius: 219.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d1",
oxidation_states: "+3",
},
Element {
atomic_number: 40,
symbol: "Zr",
name: "Zirconium",
atomic_mass: 91.224,
density: 6506.0,
melting_point: 2128.0,
boiling_point: 4682.0,
specific_heat: 278.0,
thermal_conductivity: 22.6,
electronegativity: 1.33,
ionization_energy: 6.634,
electron_affinity: 0.426,
atomic_radius: 186.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d2",
oxidation_states: "+4",
},
Element {
atomic_number: 41,
symbol: "Nb",
name: "Niobium",
atomic_mass: 92.906,
density: 8570.0,
melting_point: 2750.0,
boiling_point: 5017.0,
specific_heat: 265.0,
thermal_conductivity: 53.7,
electronegativity: 1.6,
ionization_energy: 6.759,
electron_affinity: 0.893,
atomic_radius: 207.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s1 4d4",
oxidation_states: "+5,+3",
},
Element {
atomic_number: 42,
symbol: "Mo",
name: "Molybdenum",
atomic_mass: 95.95,
density: 10220.0,
melting_point: 2896.0,
boiling_point: 4912.0,
specific_heat: 251.0,
thermal_conductivity: 138.0,
electronegativity: 2.16,
ionization_energy: 7.092,
electron_affinity: 0.746,
atomic_radius: 209.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s1 4d5",
oxidation_states: "+6",
},
Element {
atomic_number: 43,
symbol: "Tc",
name: "Technetium",
atomic_mass: 98.0,
density: 11000.0,
melting_point: 2430.0,
boiling_point: 4538.0,
specific_heat: 210.0,
thermal_conductivity: 50.6,
electronegativity: 1.9,
ionization_energy: 7.28,
electron_affinity: 0.55,
atomic_radius: 209.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d5",
oxidation_states: "+7,+4",
},
Element {
atomic_number: 44,
symbol: "Ru",
name: "Ruthenium",
atomic_mass: 101.07,
density: 12370.0,
melting_point: 2607.0,
boiling_point: 4423.0,
specific_heat: 238.0,
thermal_conductivity: 117.0,
electronegativity: 2.2,
ionization_energy: 7.361,
electron_affinity: 1.05,
atomic_radius: 207.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s1 4d7",
oxidation_states: "+3",
},
Element {
atomic_number: 45,
symbol: "Rh",
name: "Rhodium",
atomic_mass: 102.91,
density: 12410.0,
melting_point: 2237.0,
boiling_point: 3968.0,
specific_heat: 243.0,
thermal_conductivity: 150.0,
electronegativity: 2.28,
ionization_energy: 7.459,
electron_affinity: 1.137,
atomic_radius: 195.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s1 4d8",
oxidation_states: "+3",
},
Element {
atomic_number: 46,
symbol: "Pd",
name: "Palladium",
atomic_mass: 106.42,
density: 12020.0,
melting_point: 1828.05,
boiling_point: 3236.0,
specific_heat: 244.0,
thermal_conductivity: 71.8,
electronegativity: 2.2,
ionization_energy: 8.337,
electron_affinity: 0.562,
atomic_radius: 202.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]4d10",
oxidation_states: "+2,+4",
},
Element {
atomic_number: 47,
symbol: "Ag",
name: "Silver",
atomic_mass: 107.87,
density: 10501.0,
melting_point: 1234.93,
boiling_point: 2435.0,
specific_heat: 235.0,
thermal_conductivity: 429.0,
electronegativity: 1.93,
ionization_energy: 7.576,
electron_affinity: 1.302,
atomic_radius: 172.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s1 4d10",
oxidation_states: "+1",
},
Element {
atomic_number: 48,
symbol: "Cd",
name: "Cadmium",
atomic_mass: 112.41,
density: 8690.0,
melting_point: 594.22,
boiling_point: 1040.0,
specific_heat: 232.0,
thermal_conductivity: 96.6,
electronegativity: 1.69,
ionization_energy: 8.994,
electron_affinity: 0.0,
atomic_radius: 158.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d10",
oxidation_states: "+2",
},
Element {
atomic_number: 49,
symbol: "In",
name: "Indium",
atomic_mass: 114.82,
density: 7310.0,
melting_point: 429.75,
boiling_point: 2345.0,
specific_heat: 233.0,
thermal_conductivity: 81.8,
electronegativity: 1.78,
ionization_energy: 5.786,
electron_affinity: 0.3,
atomic_radius: 193.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d10 5p1",
oxidation_states: "+3",
},
Element {
atomic_number: 50,
symbol: "Sn",
name: "Tin",
atomic_mass: 118.71,
density: 7287.0,
melting_point: 505.08,
boiling_point: 2875.0,
specific_heat: 228.0,
thermal_conductivity: 66.8,
electronegativity: 1.96,
ionization_energy: 7.344,
electron_affinity: 1.112,
atomic_radius: 217.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d10 5p2",
oxidation_states: "+4,+2",
},
Element {
atomic_number: 51,
symbol: "Sb",
name: "Antimony",
atomic_mass: 121.76,
density: 6685.0,
melting_point: 903.78,
boiling_point: 1860.0,
specific_heat: 207.0,
thermal_conductivity: 24.4,
electronegativity: 2.05,
ionization_energy: 8.64,
electron_affinity: 1.047,
atomic_radius: 206.0,
category: ElementCategory::Metalloid,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d10 5p3",
oxidation_states: "+5,+3,-3",
},
Element {
atomic_number: 52,
symbol: "Te",
name: "Tellurium",
atomic_mass: 127.6,
density: 6232.0,
melting_point: 722.66,
boiling_point: 1261.0,
specific_heat: 202.0,
thermal_conductivity: 2.35,
electronegativity: 2.1,
ionization_energy: 9.01,
electron_affinity: 1.971,
atomic_radius: 206.0,
category: ElementCategory::Metalloid,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d10 5p4",
oxidation_states: "+6,+4,-2",
},
Element {
atomic_number: 53,
symbol: "I",
name: "Iodine",
atomic_mass: 126.9,
density: 4930.0,
melting_point: 386.85,
boiling_point: 457.4,
specific_heat: 214.0,
thermal_conductivity: 0.449,
electronegativity: 2.66,
ionization_energy: 10.451,
electron_affinity: 3.059,
atomic_radius: 198.0,
category: ElementCategory::Halogen,
standard_state: StandardState::Solid,
electron_configuration: "[Kr]5s2 4d10 5p5",
oxidation_states: "+7,+5,+1,-1",
},
Element {
atomic_number: 54,
symbol: "Xe",
name: "Xenon",
atomic_mass: 131.29,
density: 5.887,
melting_point: 161.4,
boiling_point: 165.03,
specific_heat: 158.0,
thermal_conductivity: 0.00569,
electronegativity: 0.0,
ionization_energy: 12.13,
electron_affinity: 0.0,
atomic_radius: 216.0,
category: ElementCategory::NobleGas,
standard_state: StandardState::Gas,
electron_configuration: "[Kr]5s2 4d10 5p6",
oxidation_states: "0",
},
Element {
atomic_number: 55,
symbol: "Cs",
name: "Cesium",
atomic_mass: 132.91,
density: 1873.0,
melting_point: 301.59,
boiling_point: 944.0,
specific_heat: 242.0,
thermal_conductivity: 35.9,
electronegativity: 0.79,
ionization_energy: 3.894,
electron_affinity: 0.472,
atomic_radius: 343.0,
category: ElementCategory::AlkaliMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s1",
oxidation_states: "+1",
},
Element {
atomic_number: 56,
symbol: "Ba",
name: "Barium",
atomic_mass: 137.33,
density: 3620.0,
melting_point: 1000.0,
boiling_point: 2170.0,
specific_heat: 204.0,
thermal_conductivity: 18.4,
electronegativity: 0.89,
ionization_energy: 5.212,
electron_affinity: 0.145,
atomic_radius: 268.0,
category: ElementCategory::AlkalineEarthMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2",
oxidation_states: "+2",
},
Element {
atomic_number: 57,
symbol: "La",
name: "Lanthanum",
atomic_mass: 138.91,
density: 6145.0,
melting_point: 1193.0,
boiling_point: 3737.0,
specific_heat: 195.0,
thermal_conductivity: 13.4,
electronegativity: 1.1,
ionization_energy: 5.577,
electron_affinity: 0.5,
atomic_radius: 240.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 5d1",
oxidation_states: "+3",
},
Element {
atomic_number: 58,
symbol: "Ce",
name: "Cerium",
atomic_mass: 140.12,
density: 6770.0,
melting_point: 1068.0,
boiling_point: 3716.0,
specific_heat: 192.0,
thermal_conductivity: 11.3,
electronegativity: 1.12,
ionization_energy: 5.539,
electron_affinity: 0.5,
atomic_radius: 235.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f1 5d1",
oxidation_states: "+4,+3",
},
Element {
atomic_number: 59,
symbol: "Pr",
name: "Praseodymium",
atomic_mass: 140.91,
density: 6773.0,
melting_point: 1208.0,
boiling_point: 3793.0,
specific_heat: 193.0,
thermal_conductivity: 12.5,
electronegativity: 1.13,
ionization_energy: 5.473,
electron_affinity: 0.5,
atomic_radius: 239.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f3",
oxidation_states: "+3",
},
Element {
atomic_number: 60,
symbol: "Nd",
name: "Neodymium",
atomic_mass: 144.24,
density: 7007.0,
melting_point: 1297.0,
boiling_point: 3347.0,
specific_heat: 190.0,
thermal_conductivity: 16.5,
electronegativity: 1.14,
ionization_energy: 5.525,
electron_affinity: 0.5,
atomic_radius: 229.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f4",
oxidation_states: "+3",
},
Element {
atomic_number: 61,
symbol: "Pm",
name: "Promethium",
atomic_mass: 145.0,
density: 7260.0,
melting_point: 1315.0,
boiling_point: 3273.0,
specific_heat: 0.0,
thermal_conductivity: 17.9,
electronegativity: 1.13,
ionization_energy: 5.582,
electron_affinity: 0.5,
atomic_radius: 236.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f5",
oxidation_states: "+3",
},
Element {
atomic_number: 62,
symbol: "Sm",
name: "Samarium",
atomic_mass: 150.36,
density: 7520.0,
melting_point: 1345.0,
boiling_point: 2067.0,
specific_heat: 197.0,
thermal_conductivity: 13.3,
electronegativity: 1.17,
ionization_energy: 5.644,
electron_affinity: 0.5,
atomic_radius: 229.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f6",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 63,
symbol: "Eu",
name: "Europium",
atomic_mass: 151.96,
density: 5243.0,
melting_point: 1099.0,
boiling_point: 1802.0,
specific_heat: 182.0,
thermal_conductivity: 13.9,
electronegativity: 1.2,
ionization_energy: 5.67,
electron_affinity: 0.5,
atomic_radius: 233.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f7",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 64,
symbol: "Gd",
name: "Gadolinium",
atomic_mass: 157.25,
density: 7895.0,
melting_point: 1585.0,
boiling_point: 3546.0,
specific_heat: 236.0,
thermal_conductivity: 10.6,
electronegativity: 1.2,
ionization_energy: 6.15,
electron_affinity: 0.5,
atomic_radius: 237.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f7 5d1",
oxidation_states: "+3",
},
Element {
atomic_number: 65,
symbol: "Tb",
name: "Terbium",
atomic_mass: 158.93,
density: 8229.0,
melting_point: 1629.0,
boiling_point: 3503.0,
specific_heat: 182.0,
thermal_conductivity: 11.1,
electronegativity: 1.2,
ionization_energy: 5.864,
electron_affinity: 0.5,
atomic_radius: 221.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f9",
oxidation_states: "+3",
},
Element {
atomic_number: 66,
symbol: "Dy",
name: "Dysprosium",
atomic_mass: 162.5,
density: 8550.0,
melting_point: 1680.0,
boiling_point: 2840.0,
specific_heat: 170.0,
thermal_conductivity: 10.7,
electronegativity: 1.22,
ionization_energy: 5.939,
electron_affinity: 0.5,
atomic_radius: 229.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f10",
oxidation_states: "+3",
},
Element {
atomic_number: 67,
symbol: "Ho",
name: "Holmium",
atomic_mass: 164.93,
density: 8795.0,
melting_point: 1734.0,
boiling_point: 2993.0,
specific_heat: 165.0,
thermal_conductivity: 16.2,
electronegativity: 1.23,
ionization_energy: 6.022,
electron_affinity: 0.5,
atomic_radius: 216.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f11",
oxidation_states: "+3",
},
Element {
atomic_number: 68,
symbol: "Er",
name: "Erbium",
atomic_mass: 167.26,
density: 9066.0,
melting_point: 1802.0,
boiling_point: 3141.0,
specific_heat: 168.0,
thermal_conductivity: 14.5,
electronegativity: 1.24,
ionization_energy: 6.108,
electron_affinity: 0.5,
atomic_radius: 235.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f12",
oxidation_states: "+3",
},
Element {
atomic_number: 69,
symbol: "Tm",
name: "Thulium",
atomic_mass: 168.93,
density: 9321.0,
melting_point: 1818.0,
boiling_point: 2223.0,
specific_heat: 160.0,
thermal_conductivity: 16.9,
electronegativity: 1.25,
ionization_energy: 6.184,
electron_affinity: 0.5,
atomic_radius: 227.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f13",
oxidation_states: "+3",
},
Element {
atomic_number: 70,
symbol: "Yb",
name: "Ytterbium",
atomic_mass: 173.05,
density: 6965.0,
melting_point: 1097.0,
boiling_point: 1469.0,
specific_heat: 155.0,
thermal_conductivity: 38.5,
electronegativity: 1.1,
ionization_energy: 6.254,
electron_affinity: 0.5,
atomic_radius: 242.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 71,
symbol: "Lu",
name: "Lutetium",
atomic_mass: 174.97,
density: 9840.0,
melting_point: 1925.0,
boiling_point: 3675.0,
specific_heat: 154.0,
thermal_conductivity: 16.4,
electronegativity: 1.27,
ionization_energy: 5.426,
electron_affinity: 0.5,
atomic_radius: 221.0,
category: ElementCategory::Lanthanide,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d1",
oxidation_states: "+3",
},
Element {
atomic_number: 72,
symbol: "Hf",
name: "Hafnium",
atomic_mass: 178.49,
density: 13310.0,
melting_point: 2506.0,
boiling_point: 4876.0,
specific_heat: 144.0,
thermal_conductivity: 23.0,
electronegativity: 1.3,
ionization_energy: 6.825,
electron_affinity: 0.0,
atomic_radius: 212.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d2",
oxidation_states: "+4",
},
Element {
atomic_number: 73,
symbol: "Ta",
name: "Tantalum",
atomic_mass: 180.95,
density: 16654.0,
melting_point: 3290.0,
boiling_point: 5731.0,
specific_heat: 140.0,
thermal_conductivity: 57.5,
electronegativity: 1.5,
ionization_energy: 7.55,
electron_affinity: 0.322,
atomic_radius: 217.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d3",
oxidation_states: "+5",
},
Element {
atomic_number: 74,
symbol: "W",
name: "Tungsten",
atomic_mass: 183.84,
density: 19250.0,
melting_point: 3695.0,
boiling_point: 5828.0,
specific_heat: 132.0,
thermal_conductivity: 173.0,
electronegativity: 2.36,
ionization_energy: 7.864,
electron_affinity: 0.816,
atomic_radius: 210.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d4",
oxidation_states: "+6",
},
Element {
atomic_number: 75,
symbol: "Re",
name: "Rhenium",
atomic_mass: 186.21,
density: 21020.0,
melting_point: 3459.0,
boiling_point: 5869.0,
specific_heat: 137.0,
thermal_conductivity: 48.0,
electronegativity: 1.9,
ionization_energy: 7.833,
electron_affinity: 0.15,
atomic_radius: 217.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d5",
oxidation_states: "+7,+4",
},
Element {
atomic_number: 76,
symbol: "Os",
name: "Osmium",
atomic_mass: 190.23,
density: 22590.0,
melting_point: 3306.0,
boiling_point: 5285.0,
specific_heat: 130.0,
thermal_conductivity: 87.6,
electronegativity: 2.2,
ionization_energy: 8.438,
electron_affinity: 1.1,
atomic_radius: 216.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d6",
oxidation_states: "+4,+3",
},
Element {
atomic_number: 77,
symbol: "Ir",
name: "Iridium",
atomic_mass: 192.22,
density: 22560.0,
melting_point: 2719.0,
boiling_point: 4701.0,
specific_heat: 131.0,
thermal_conductivity: 147.0,
electronegativity: 2.2,
ionization_energy: 8.967,
electron_affinity: 1.565,
atomic_radius: 202.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d7",
oxidation_states: "+4,+3",
},
Element {
atomic_number: 78,
symbol: "Pt",
name: "Platinum",
atomic_mass: 195.08,
density: 21460.0,
melting_point: 2041.4,
boiling_point: 4098.0,
specific_heat: 133.0,
thermal_conductivity: 71.6,
electronegativity: 2.28,
ionization_energy: 8.959,
electron_affinity: 2.128,
atomic_radius: 209.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s1 4f14 5d9",
oxidation_states: "+4,+2",
},
Element {
atomic_number: 79,
symbol: "Au",
name: "Gold",
atomic_mass: 196.97,
density: 19282.0,
melting_point: 1337.33,
boiling_point: 3129.0,
specific_heat: 129.0,
thermal_conductivity: 318.0,
electronegativity: 2.54,
ionization_energy: 9.226,
electron_affinity: 2.309,
atomic_radius: 166.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s1 4f14 5d10",
oxidation_states: "+3,+1",
},
Element {
atomic_number: 80,
symbol: "Hg",
name: "Mercury",
atomic_mass: 200.59,
density: 13533.6,
melting_point: 234.32,
boiling_point: 629.88,
specific_heat: 140.0,
thermal_conductivity: 8.3,
electronegativity: 2.0,
ionization_energy: 10.438,
electron_affinity: 0.0,
atomic_radius: 209.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Liquid,
electron_configuration: "[Xe]6s2 4f14 5d10",
oxidation_states: "+2,+1",
},
Element {
atomic_number: 81,
symbol: "Tl",
name: "Thallium",
atomic_mass: 204.38,
density: 11850.0,
melting_point: 577.0,
boiling_point: 1746.0,
specific_heat: 129.0,
thermal_conductivity: 46.1,
electronegativity: 1.62,
ionization_energy: 6.108,
electron_affinity: 0.2,
atomic_radius: 196.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d10 6p1",
oxidation_states: "+3,+1",
},
Element {
atomic_number: 82,
symbol: "Pb",
name: "Lead",
atomic_mass: 207.2,
density: 11342.0,
melting_point: 600.61,
boiling_point: 2022.0,
specific_heat: 129.0,
thermal_conductivity: 35.3,
electronegativity: 1.87,
ionization_energy: 7.417,
electron_affinity: 0.364,
atomic_radius: 202.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d10 6p2",
oxidation_states: "+4,+2",
},
Element {
atomic_number: 83,
symbol: "Bi",
name: "Bismuth",
atomic_mass: 208.98,
density: 9807.0,
melting_point: 544.55,
boiling_point: 1837.0,
specific_heat: 122.0,
thermal_conductivity: 7.97,
electronegativity: 2.02,
ionization_energy: 7.286,
electron_affinity: 0.946,
atomic_radius: 207.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d10 6p3",
oxidation_states: "+5,+3",
},
Element {
atomic_number: 84,
symbol: "Po",
name: "Polonium",
atomic_mass: 209.0,
density: 9320.0,
melting_point: 527.0,
boiling_point: 1235.0,
specific_heat: 0.0,
thermal_conductivity: 20.0,
electronegativity: 2.0,
ionization_energy: 8.414,
electron_affinity: 1.9,
atomic_radius: 197.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d10 6p4",
oxidation_states: "+4,+2",
},
Element {
atomic_number: 85,
symbol: "At",
name: "Astatine",
atomic_mass: 210.0,
density: 7000.0,
melting_point: 575.0,
boiling_point: 610.0,
specific_heat: 0.0,
thermal_conductivity: 1.7,
electronegativity: 2.2,
ionization_energy: 9.318,
electron_affinity: 2.8,
atomic_radius: 202.0,
category: ElementCategory::Halogen,
standard_state: StandardState::Solid,
electron_configuration: "[Xe]6s2 4f14 5d10 6p5",
oxidation_states: "+7,+5,+1,-1",
},
Element {
atomic_number: 86,
symbol: "Rn",
name: "Radon",
atomic_mass: 222.0,
density: 9.73,
melting_point: 202.0,
boiling_point: 211.3,
specific_heat: 94.0,
thermal_conductivity: 0.00361,
electronegativity: 0.0,
ionization_energy: 10.749,
electron_affinity: 0.0,
atomic_radius: 220.0,
category: ElementCategory::NobleGas,
standard_state: StandardState::Gas,
electron_configuration: "[Xe]6s2 4f14 5d10 6p6",
oxidation_states: "0",
},
Element {
atomic_number: 87,
symbol: "Fr",
name: "Francium",
atomic_mass: 223.0,
density: 1870.0,
melting_point: 300.0,
boiling_point: 950.0,
specific_heat: 0.0,
thermal_conductivity: 15.0,
electronegativity: 0.7,
ionization_energy: 4.073,
electron_affinity: 0.0,
atomic_radius: 348.0,
category: ElementCategory::AlkaliMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s1",
oxidation_states: "+1",
},
Element {
atomic_number: 88,
symbol: "Ra",
name: "Radium",
atomic_mass: 226.0,
density: 5500.0,
melting_point: 973.0,
boiling_point: 2010.0,
specific_heat: 92.0,
thermal_conductivity: 18.6,
electronegativity: 0.9,
ionization_energy: 5.278,
electron_affinity: 0.0,
atomic_radius: 283.0,
category: ElementCategory::AlkalineEarthMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2",
oxidation_states: "+2",
},
Element {
atomic_number: 89,
symbol: "Ac",
name: "Actinium",
atomic_mass: 227.0,
density: 10070.0,
melting_point: 1323.0,
boiling_point: 3471.0,
specific_heat: 120.0,
thermal_conductivity: 12.0,
electronegativity: 1.1,
ionization_energy: 5.17,
electron_affinity: 0.0,
atomic_radius: 260.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 6d1",
oxidation_states: "+3",
},
Element {
atomic_number: 90,
symbol: "Th",
name: "Thorium",
atomic_mass: 232.04,
density: 11720.0,
melting_point: 2023.0,
boiling_point: 5061.0,
specific_heat: 113.0,
thermal_conductivity: 54.0,
electronegativity: 1.3,
ionization_energy: 6.307,
electron_affinity: 0.0,
atomic_radius: 237.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 6d2",
oxidation_states: "+4",
},
Element {
atomic_number: 91,
symbol: "Pa",
name: "Protactinium",
atomic_mass: 231.04,
density: 15370.0,
melting_point: 1841.0,
boiling_point: 4300.0,
specific_heat: 99.1,
thermal_conductivity: 47.0,
electronegativity: 1.5,
ionization_energy: 5.89,
electron_affinity: 0.0,
atomic_radius: 243.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f2 6d1",
oxidation_states: "+5,+4",
},
Element {
atomic_number: 92,
symbol: "U",
name: "Uranium",
atomic_mass: 238.029,
density: 18950.0,
melting_point: 1405.3,
boiling_point: 4404.0,
specific_heat: 116.0,
thermal_conductivity: 27.5,
electronegativity: 1.38,
ionization_energy: 6.194,
electron_affinity: 0.0,
atomic_radius: 240.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f3 6d1",
oxidation_states: "+6,+4,+3",
},
Element {
atomic_number: 93,
symbol: "Np",
name: "Neptunium",
atomic_mass: 237.0,
density: 20450.0,
melting_point: 917.0,
boiling_point: 4175.0,
specific_heat: 0.0,
thermal_conductivity: 6.3,
electronegativity: 1.36,
ionization_energy: 6.266,
electron_affinity: 0.0,
atomic_radius: 221.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f4 6d1",
oxidation_states: "+5,+4,+3",
},
Element {
atomic_number: 94,
symbol: "Pu",
name: "Plutonium",
atomic_mass: 244.0,
density: 19816.0,
melting_point: 912.5,
boiling_point: 3501.0,
specific_heat: 0.0,
thermal_conductivity: 6.74,
electronegativity: 1.28,
ionization_energy: 6.026,
electron_affinity: 0.0,
atomic_radius: 243.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f6",
oxidation_states: "+4,+3",
},
Element {
atomic_number: 95,
symbol: "Am",
name: "Americium",
atomic_mass: 243.0,
density: 13690.0,
melting_point: 1449.0,
boiling_point: 2880.0,
specific_heat: 0.0,
thermal_conductivity: 10.0,
electronegativity: 1.13,
ionization_energy: 5.974,
electron_affinity: 0.0,
atomic_radius: 244.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f7",
oxidation_states: "+3",
},
Element {
atomic_number: 96,
symbol: "Cm",
name: "Curium",
atomic_mass: 247.0,
density: 13510.0,
melting_point: 1613.0,
boiling_point: 3383.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 1.28,
ionization_energy: 5.991,
electron_affinity: 0.0,
atomic_radius: 245.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f7 6d1",
oxidation_states: "+3",
},
Element {
atomic_number: 97,
symbol: "Bk",
name: "Berkelium",
atomic_mass: 247.0,
density: 14790.0,
melting_point: 1259.0,
boiling_point: 2900.0,
specific_heat: 0.0,
thermal_conductivity: 10.0,
electronegativity: 1.3,
ionization_energy: 6.198,
electron_affinity: 0.0,
atomic_radius: 244.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f9",
oxidation_states: "+3",
},
Element {
atomic_number: 98,
symbol: "Cf",
name: "Californium",
atomic_mass: 251.0,
density: 15100.0,
melting_point: 1173.0,
boiling_point: 1743.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 1.3,
ionization_energy: 6.282,
electron_affinity: 0.0,
atomic_radius: 245.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f10",
oxidation_states: "+3",
},
Element {
atomic_number: 99,
symbol: "Es",
name: "Einsteinium",
atomic_mass: 252.0,
density: 8840.0,
melting_point: 1133.0,
boiling_point: 1269.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 1.3,
ionization_energy: 6.42,
electron_affinity: 0.0,
atomic_radius: 245.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f11",
oxidation_states: "+3",
},
Element {
atomic_number: 100,
symbol: "Fm",
name: "Fermium",
atomic_mass: 257.0,
density: 0.0,
melting_point: 1800.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 1.3,
ionization_energy: 6.5,
electron_affinity: 0.0,
atomic_radius: 245.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f12",
oxidation_states: "+3",
},
Element {
atomic_number: 101,
symbol: "Md",
name: "Mendelevium",
atomic_mass: 258.0,
density: 0.0,
melting_point: 1100.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 1.3,
ionization_energy: 6.58,
electron_affinity: 0.0,
atomic_radius: 246.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f13",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 102,
symbol: "No",
name: "Nobelium",
atomic_mass: 259.0,
density: 0.0,
melting_point: 1100.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 1.3,
ionization_energy: 6.65,
electron_affinity: 0.0,
atomic_radius: 246.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f14",
oxidation_states: "+3,+2",
},
Element {
atomic_number: 103,
symbol: "Lr",
name: "Lawrencium",
atomic_mass: 266.0,
density: 0.0,
melting_point: 1900.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 1.3,
ionization_energy: 4.9,
electron_affinity: 0.0,
atomic_radius: 246.0,
category: ElementCategory::Actinide,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f14 6d1",
oxidation_states: "+3",
},
Element {
atomic_number: 104,
symbol: "Rf",
name: "Rutherfordium",
atomic_mass: 267.0,
density: 0.0,
melting_point: 2400.0,
boiling_point: 5800.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 6.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f14 6d2",
oxidation_states: "+4",
},
Element {
atomic_number: 105,
symbol: "Db",
name: "Dubnium",
atomic_mass: 268.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f14 6d3",
oxidation_states: "+5",
},
Element {
atomic_number: 106,
symbol: "Sg",
name: "Seaborgium",
atomic_mass: 269.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Solid,
electron_configuration: "[Rn]7s2 5f14 6d4",
oxidation_states: "+6",
},
Element {
atomic_number: 107,
symbol: "Bh",
name: "Bohrium",
atomic_mass: 270.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d5",
oxidation_states: "+7",
},
Element {
atomic_number: 108,
symbol: "Hs",
name: "Hassium",
atomic_mass: 277.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d6",
oxidation_states: "+8",
},
Element {
atomic_number: 109,
symbol: "Mt",
name: "Meitnerium",
atomic_mass: 278.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d7",
oxidation_states: "+3,+4",
},
Element {
atomic_number: 110,
symbol: "Ds",
name: "Darmstadtium",
atomic_mass: 281.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d8",
oxidation_states: "+6",
},
Element {
atomic_number: 111,
symbol: "Rg",
name: "Roentgenium",
atomic_mass: 282.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 0.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d9",
oxidation_states: "+3",
},
Element {
atomic_number: 112,
symbol: "Cn",
name: "Copernicium",
atomic_mass: 285.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 357.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::TransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d10",
oxidation_states: "+2",
},
Element {
atomic_number: 113,
symbol: "Nh",
name: "Nihonium",
atomic_mass: 286.0,
density: 0.0,
melting_point: 700.0,
boiling_point: 1400.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d10 7p1",
oxidation_states: "+1",
},
Element {
atomic_number: 114,
symbol: "Fl",
name: "Flerovium",
atomic_mass: 289.0,
density: 0.0,
melting_point: 340.0,
boiling_point: 420.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d10 7p2",
oxidation_states: "+2",
},
Element {
atomic_number: 115,
symbol: "Mc",
name: "Moscovium",
atomic_mass: 290.0,
density: 0.0,
melting_point: 670.0,
boiling_point: 1400.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d10 7p3",
oxidation_states: "+1,+3",
},
Element {
atomic_number: 116,
symbol: "Lv",
name: "Livermorium",
atomic_mass: 293.0,
density: 0.0,
melting_point: 709.0,
boiling_point: 1085.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::PostTransitionMetal,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d10 7p4",
oxidation_states: "+2,+4",
},
Element {
atomic_number: 117,
symbol: "Ts",
name: "Tennessine",
atomic_mass: 294.0,
density: 0.0,
melting_point: 723.0,
boiling_point: 883.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::Halogen,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d10 7p5",
oxidation_states: "+1,+3,+5",
},
Element {
atomic_number: 118,
symbol: "Og",
name: "Oganesson",
atomic_mass: 294.0,
density: 0.0,
melting_point: 0.0,
boiling_point: 350.0,
specific_heat: 0.0,
thermal_conductivity: 0.0,
electronegativity: 0.0,
ionization_energy: 0.0,
electron_affinity: 0.0,
atomic_radius: 0.0,
category: ElementCategory::NobleGas,
standard_state: StandardState::Unknown,
electron_configuration: "[Rn]7s2 5f14 6d10 7p6",
oxidation_states: "0",
},
];
pub fn by_atomic_number(z: u32) -> Option<&'static Element> {
if z >= 1 && z <= 118 {
Some(&ELEMENTS[(z - 1) as usize])
} else {
None
}
}
pub fn by_symbol(symbol: &str) -> Option<&'static Element> {
ELEMENTS.iter().find(|e| e.symbol == symbol)
}
pub fn by_symbol_static(symbol: &str) -> Option<&'static Element> {
let index: Option<usize> = match symbol {
"H" => Some(0),
"He" => Some(1),
"Li" => Some(2),
"Be" => Some(3),
"B" => Some(4),
"C" => Some(5),
"N" => Some(6),
"O" => Some(7),
"F" => Some(8),
"Ne" => Some(9),
"Na" => Some(10),
"Mg" => Some(11),
"Al" => Some(12),
"Si" => Some(13),
"P" => Some(14),
"S" => Some(15),
"Cl" => Some(16),
"Ar" => Some(17),
"K" => Some(18),
"Ca" => Some(19),
"Fe" => Some(25),
"Cu" => Some(28),
"Zn" => Some(29),
"Ag" => Some(46),
"Au" => Some(78),
"Pb" => Some(81),
"U" => Some(91),
_ => None,
};
match index {
Some(i) => Some(&ELEMENTS[i]),
None => by_symbol(symbol),
}
}
pub fn by_name(name: &str) -> Option<&'static Element> {
ELEMENTS.iter().find(|e| e.name.eq_ignore_ascii_case(name))
}
pub fn all() -> &'static [Element] {
&ELEMENTS
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn all_118_elements_present() {
assert_eq!(all().len(), 118);
}
#[test]
fn hydrogen_is_element_1() {
let h = by_atomic_number(1).unwrap();
assert_eq!(h.symbol, "H");
assert_eq!(h.name, "Hydrogen");
assert!((h.atomic_mass - 1.008).abs() < 0.001);
}
#[test]
fn oganesson_is_element_118() {
let og = by_atomic_number(118).unwrap();
assert_eq!(og.symbol, "Og");
assert_eq!(og.name, "Oganesson");
}
#[test]
fn copper_lookup_by_symbol_number_and_name() {
let cu_sym = by_symbol("Cu").expect("Cu should exist");
let cu_num = by_atomic_number(29).expect("Z=29 should exist");
let cu_name = by_name("Copper").expect("Copper should exist");
assert_eq!(cu_sym.atomic_number, 29);
assert_eq!(cu_num.symbol, "Cu");
assert_eq!(cu_name.symbol, "Cu");
assert_eq!(cu_sym.symbol, cu_num.symbol);
assert_eq!(cu_sym.symbol, cu_name.symbol);
}
#[test]
fn gold_density() {
let au = by_symbol("Au").unwrap();
assert!((au.density - 19282.0).abs() < 1.0);
}
#[test]
fn iron_melting_point() {
let fe = by_symbol("Fe").unwrap();
assert!((fe.melting_point - 1811.0).abs() < 1.0);
}
#[test]
fn noble_gases_no_electronegativity() {
let noble_symbols = ["He", "Ne", "Ar", "Xe", "Rn", "Og"];
for sym in &noble_symbols {
let elem = by_symbol(sym).unwrap();
assert!(
elem.electronegativity == 0.0,
"{} should have electronegativity 0.0, got {}",
sym,
elem.electronegativity,
);
assert_eq!(elem.category, ElementCategory::NobleGas);
}
}
#[test]
fn carbon_atomic_mass() {
let c = by_symbol("C").unwrap();
assert!((c.atomic_mass - 12.011).abs() < 0.001);
}
#[test]
fn all_elements_have_correct_index() {
for (i, elem) in ELEMENTS.iter().enumerate() {
assert_eq!(elem.atomic_number, (i + 1) as u32);
}
}
#[test]
fn by_name_is_case_insensitive() {
assert!(by_name("copper").is_some());
assert!(by_name("COPPER").is_some());
assert!(by_name("Copper").is_some());
}
#[test]
fn out_of_range_returns_none() {
assert!(by_atomic_number(0).is_none());
assert!(by_atomic_number(119).is_none());
assert!(by_symbol("Unobtanium").is_none());
assert!(by_name("Unobtanium").is_none());
}
#[test]
fn bromine_is_liquid() {
let br = by_symbol("Br").unwrap();
assert_eq!(br.standard_state, StandardState::Liquid);
}
#[test]
fn mercury_is_liquid() {
let hg = by_symbol("Hg").unwrap();
assert_eq!(hg.standard_state, StandardState::Liquid);
}
#[test]
fn by_symbol_static_matches_by_symbol() {
let common_symbols = [
"H", "He", "Li", "Be", "B", "C", "N", "O", "F", "Ne",
"Na", "Mg", "Al", "Si", "P", "S", "Cl", "Ar", "K", "Ca",
"Fe", "Cu", "Zn", "Ag", "Au", "Pb", "U",
];
for sym in &common_symbols {
let fast = by_symbol_static(sym).expect("symbol missing from static");
let slow = by_symbol(sym).unwrap();
assert_eq!(fast.atomic_number, slow.atomic_number,
"Mismatch for {sym}: static Z={}, scan Z={}", fast.atomic_number, slow.atomic_number);
}
}
#[test]
fn by_symbol_static_fallback_works() {
let ti = by_symbol_static("Ti").expect("Ti should fall back to linear scan");
assert_eq!(ti.name, "Titanium");
}
#[test]
fn by_symbol_static_nonexistent_returns_none() {
assert!(by_symbol_static("Xx").is_none());
}
}