1use super::Element;
2use crate::Kelvin;
3
4#[cfg(feature = "ranges")]
5pub const BOILING_POINT_RANGE: core::ops::RangeInclusive<Kelvin> = Kelvin(4.222)..=Kelvin(5863.15);
17
18macro_rules! kel {
19 ($value:literal) => {
20 Some(Kelvin($value))
21 };
22}
23
24impl Element {
25 pub const fn boiling_point(&self) -> Option<Kelvin> {
40 use Element as E;
41 match self {
42 E::H => kel!(20.271),
43 E::He => kel!(4.222),
44 E::Li => kel!(1615.15),
45 E::Be => kel!(2741.15),
46 E::B => kel!(4273.15),
47 E::C => kel!(4098.15), E::N => kel!(77.355),
49 E::O => kel!(90.188),
50 E::F => kel!(85.04),
51 E::Ne => kel!(27.104),
52 E::Na => kel!(1156.09),
53 E::Mg => kel!(1363.15),
54 E::Al => kel!(2792.15),
55 E::Si => kel!(3538.15),
56 E::P => kel!(553.65), E::S => kel!(717.76), E::Cl => kel!(239.11),
59 E::Ar => kel!(87.302),
60 E::K => kel!(1032.15),
61 E::Ca => kel!(1757.15),
62 E::Sc => kel!(3109.15),
63 E::Ti => kel!(3560.15),
64 E::V => kel!(3680.15),
65 E::Cr => kel!(2944.15),
66 E::Mn => kel!(2334.15),
67 E::Fe => kel!(3134.15),
68 E::Co => kel!(3200.15),
69 E::Ni => kel!(3186.15),
70 E::Cu => kel!(2833.15),
71 E::Zn => kel!(1180.15),
72 E::Ga => kel!(2502.15),
73 E::Ge => kel!(3106.15),
74 E::As => kel!(889.15), E::Se => kel!(958.15), E::Br => kel!(331.95),
77 E::Kr => kel!(119.735),
78 E::Rb => kel!(961.15),
79 E::Sr => kel!(1650.15),
80 E::Y => kel!(3618.15),
81 E::Zr => kel!(4679.15),
82 E::Nb => kel!(5014.15),
83 E::Mo => kel!(4912.15),
84 E::Tc => kel!(4535.15),
85 E::Ru => kel!(4420.15),
86 E::Rh => kel!(3968.15),
87 E::Pd => kel!(3236.15),
88 E::Ag => kel!(2435.15),
89 E::Cd => kel!(1040.15),
90 E::In => kel!(2300.15),
91 E::Sn => kel!(2859.15), E::Sb => kel!(1860.15), E::Te => kel!(1261.15),
94 E::I => kel!(457.55),
95 E::Xe => kel!(165.051),
96 E::Cs => kel!(944.15),
97 E::Ba => kel!(2118.15),
98 E::La => kel!(3737.15),
99 E::Ce => kel!(3716.15),
100 E::Pr => kel!(3793.15),
101 E::Nd => kel!(3347.15),
102 E::Pm => None,
103 E::Sm => kel!(2067.15),
104 E::Eu => kel!(1802.15),
105 E::Gd => kel!(3546.15),
106 E::Tb => kel!(3503.15),
107 E::Dy => kel!(2840.15),
108 E::Ho => kel!(2973.15),
109 E::Er => kel!(3141.15),
110 E::Tm => kel!(2223.15),
111 E::Yb => kel!(1469.15),
112 E::Lu => kel!(3675.15),
113 E::Hf => kel!(4873.15),
114 E::Ta => kel!(5728.15),
115 E::W => kel!(5828.15),
116 E::Re => kel!(5863.15),
117 E::Os => kel!(5281.15),
118 E::Ir => kel!(4701.15),
119 E::Pt => kel!(4098.15),
120 E::Au => kel!(3109.15),
121 E::Hg => kel!(629.769),
122 E::Tl => kel!(1746.15),
123 E::Pb => kel!(2022.15),
124 E::Bi => kel!(1837.15),
125 E::Po => kel!(1235.15),
126 E::At => None,
127 E::Rn => kel!(211.45),
128 E::Fr => None,
129 E::Ra => None,
130 E::Ac => kel!(3473.15),
131 E::Th => kel!(5058.15),
132 E::Pa => None,
133 E::U => kel!(4404.15),
134 E::Np => None,
135 E::Pu => kel!(3501.15),
136 E::Am => None,
137 E::Cm => None,
138 E::Bk => None,
139 E::Cf => None,
140 E::Es => None,
141 E::Fm => None,
142 E::Md => None,
143 E::No => None,
144 E::Lr => None,
145 E::Rf => None,
146 E::Db => None,
147 E::Sg => None,
148 E::Bh => None,
149 E::Hs => None,
150 E::Mt => None,
151 E::Ds => None,
152 E::Rg => None,
153 E::Cn => None,
154 E::Nh => None,
155 E::Fl => None,
156 E::Mc => None,
157 E::Lv => None,
158 E::Ts => None,
159 E::Og => None,
160 }
161 }
162}