# Boiling point ## Microsim ### Live player <div class="microsim-player"> <iframe src="https://editor.p5js.org/sciencenibber/full/VziF3HN-Lb" width="100%" height="620" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe> </div> <div class="microsim-fallback"> <img src="Microsims/thumbs/Boiling_point.png" alt="Boiling_point microsim poster" style="width:100%;border:1px solid #4445;border-radius:6px;"> <p><em>Live microsim (desktop) · <a href="https://editor.p5js.org/sciencenibber/sketches/VziF3HN-Lb">open sketch in the p5.js editor</a></em></p> </div> **Editor URL:** https://editor.p5js.org/sciencenibber/sketches/VziF3HN-Lb **Description (100 words):** A two-panel block-diagram microsim that decomposes boiling into a five-stage process chain on top -- Heater, Liquid Pool, Nucleation, Bubble Growth, Vapor Plume -- with animated tokens whose speed and color encode the active regime. Below, the canonical Nukiyama log-log boiling curve plots heat flux against wall superheat dT = T_w - T_sat, with the four named regimes shaded distinctly and the critical heat flux and Leidenfrost point labelled. A yellow operating-point marker is draggable along the curve. A heat-flux slider, a pressure slider that shifts T_sat by Clausius-Clapeyron, and a substance selector for water, nitrogen, or helium-4 drive the panel. ```js // ===================================================================== // Boiling_point.js -- Wikitube microsim // Article: Boiling_point en.wikitube.io/wiki/Boiling_point // Room: Helium Pattern: G (block diagram, system flow, // process chain) // --------------------------------------------------------------------- // Idea: a two-panel block-diagram microsim that decomposes boiling into // its canonical process chain on the left and plots the Nukiyama // boiling curve on the right. The reader drives two sliders: // // * heat flux q [kW/m^2] -- the operating point along the curve // * ambient pressure P -- shifts the saturation temperature T_sat // via the Clausius-Clapeyron relation // // ...and a 3-way selector picks the working fluid: water (T_b = 373 K), // liquid nitrogen (T_b = 77 K), or liquid helium-4 (T_b = 4.222 K). // The block diagram animates token particles flowing through the chain // Heater -> Liquid Pool -> Nucleation Site -> Bubble Growth -> Departure // -> Vapor Plume -> Condenser, with token density and color encoding // the active regime. The Nukiyama plot below shows the four named // regimes -- natural convection, nucleate boiling, transition boiling, // film boiling -- separated by the critical heat flux (CHF) and the // Leidenfrost point. A draggable yellow marker is the current // operating point. // // The canonical equations behind the diagram: // // Clausius-Clapeyron: dP/dT = L / (T * dV) // Antoine (integrated): log10(P) = A - B / (T + C) // Nukiyama (heuristic): q ~ C * (T_w - T_sat)^n per regime // // Substance landmarks at 1 atm: // // * water T_b = 373.15 K, L = 2257 kJ/kg // * nitrogen T_b = 77.36 K, L = 199 kJ/kg // * helium-4 T_b = 4.222 K, L = 20.7 kJ/kg <-- lowest of any element // * helium-3 T_b = 3.19 K // // Visual layout (720 x 520 canvas): // * top: HUD title + en.wikitube.io/wiki/Boiling_point subtitle // * upper-left: process-chain block diagram with animated tokens // * upper-right: live readout panel (substance, T_sat, q, dT, regime, L) // * lower: Nukiyama boiling curve (log q vs log dT) with the // four regime bands, CHF, Leidenfrost point, and // draggable operating marker // * bottom-left: heat-flux + pressure sliders, substance selector // * bottom-right: canonical Clausius-Clapeyron equation // // Conventions (Wikitube Betterfire Standard v0): // * single ARTICLE constant at the top, single quotes // * p5.disableFriendlyErrors = true to keep the editor console clean // * every text() string literal is ASCII; non-ASCII lives in // comments only (the editor preview pipeline mangles non-ASCII // inside strings) // * Energy-room palette (P5_JS_EDITOR section 4): BG dark, HOT warm, // COLD cool, STRUCT grey, TRAJ accent yellow, plus GAUGE green for // the live readout // * all sliders explicitly positioned and sized -- no floating defaults // ===================================================================== const ARTICLE = 'Boiling_point'; const TITLE = ARTICLE.replace(/_/g, ' '); p5.disableFriendlyErrors = true; // ----- Energy room palette (P5_JS_EDITOR section 4) ------------------ const BG = 18; const FG = 240; const DIM = [240, 240, 240, 140]; const HOT = [220, 110, 60]; // film boiling / hot wall const WARM = [240, 170, 80]; // transition boiling const COLD = [60, 130, 220]; // nucleate boiling / cool wall const COLDER = [40, 80, 180]; // natural convection const STRUCT = [120, 130, 150]; // structural grey const TRAJ = [240, 220, 80]; // operating-point marker const GAUGE = [120, 220, 140]; // green readout const SCRATCH = [120, 120, 120, 90]; // grid lines const ACCENT = [200, 100, 220]; // CHF and Leidenfrost callouts // ----- Substance landmarks at 1 atm ---------------------------------- // Each entry: name, T_b (K), L (kJ/kg), Antoine constants (A,B,C) // fitted near T_b for the linear log10(P)=A-B/(T+C) form. The Antoine // constants are used only to back out dT_sat / dP at the slider; the // curve shape on the Nukiyama plot is regime-heuristic, not Antoine. const SUBSTANCES = [ { name: 'water', T_b: 373.15, L: 2257, A: 8.07131, B: 1730.63, C: 233.426 }, { name: 'nitrogen', T_b: 77.36, L: 199, A: 3.7362, B: 264.65, C: -6.788 }, { name: 'helium-4', T_b: 4.222, L: 20.7, A: 1.5687, B: 8.51, C: -1.870 } ]; // ----- Nukiyama regime boundaries (in dT = T_w - T_sat space) ------- // These are pedagogical canonical break points for water at 1 atm; // they shift with substance and pressure, but the shape is universal. const DT_REGIME_AB = 5.0; // natural convection -> nucleate (K) const DT_REGIME_BC = 30.0; // nucleate -> transition (CHF) (K) const DT_REGIME_CD = 120.0; // transition -> film (Leidenfrost) (K) const DT_MIN_LOG = 0; // log10(dT) axis min -> 1 K const DT_MAX_LOG = 3; // log10(dT) axis max -> 1000 K const Q_MIN_LOG = 2; // log10(q ) axis min -> 100 W/m^2 const Q_MAX_LOG = 7; // log10(q ) axis max -> 10 MW/m^2 // ----- Plot + diagram rectangles (in canvas pixels) ------------------ let diagX, diagY, diagW, diagH; // process-chain panel let readX, readY, readW, readH; // live-readout panel let plotX, plotY, plotW, plotH; // Nukiyama log-log curve // ----- Controls ------------------------------------------------------ let qSlider, pSlider, subSelect; let dragging = false; // ----- Operating point ---------------------------------------------- // dT is the wall superheat; q is the heat flux. The reader sets q via // slider OR drags the marker on the Nukiyama plot, which updates dT. let op = { dT: 10.0, q: 5e4 }; // start in nucleate boiling // ----- Token animation through the process chain -------------------- const NUM_TOKENS = 60; let tokens = []; function setup() { createCanvas(720, 520); pixelDensity(2); textFont('system-ui'); // Layout: 720 x 520, with HUD (30px) + diagram/readout band (170px) + // Nukiyama plot band (220px) + slider band (100px). diagX = 14; diagY = 50; diagW = 420; diagH = 170; readX = 444; readY = 50; readW = 262; readH = 170; plotX = 80; plotY = 240; plotW = 600; plotH = 200; // Sliders -- explicitly positioned and sized per Betterfire Standard. qSlider = createSlider(2, 7, 4.7, 0.01); // log10(q) [W/m^2] qSlider.position(14, 470).size(260); pSlider = createSlider(0.01, 5.0, 1.0, 0.01); // P / P_atm pSlider.position(14, 498).size(260); subSelect = createSelect(); subSelect.option('water'); subSelect.option('nitrogen'); subSelect.option('helium-4'); subSelect.selected('water'); subSelect.position(310, 470); // Initialize token positions along the chain. for (let i = 0; i < NUM_TOKENS; i++) { tokens.push({ s: random(0, 1), v: 0.0 }); } } function draw() { background(BG); // Read controls once per frame. const subName = subSelect.value(); const subst = SUBSTANCES.find(s => s.name === subName); const qLog = qSlider.value(); const Pratm = pSlider.value(); op.q = pow(10, qLog); // Clausius-Clapeyron-shifted saturation temperature. // dT_sat/dP = T_b * (R*T_b) / (L * P) for ideal gas vapor, with // L in J/kg and R_specific = R_univ / M. We use the integrated // Clausius-Clapeyron form: 1/T = 1/T_b - (R/L) * ln(P/P_0). // For pedagogical clarity here, use a simple linear approximation: // T_sat = T_b * (1 + 0.05 * log(Pratm)) so the slider has visible // effect across the displayed range. const T_sat = subst.T_b * (1 + 0.05 * log(Pratm)); // Operating dT comes from q via the Nukiyama heuristic, OR the user // is dragging the marker -- handled in mouseDragged. if (!dragging) { op.dT = invertNukiyama(op.q); } // ----- HUD ---------------------------------------------------------- drawHUD(); // ----- Block diagram (Pattern G) ----------------------------------- drawProcessChain(diagX, diagY, diagW, diagH, op, subst); // ----- Live readout panel ------------------------------------------ drawReadout(readX, readY, readW, readH, op, subst, T_sat, regimeOf(op.dT)); // ----- Nukiyama boiling curve -------------------------------------- drawNukiyamaPlot(plotX, plotY, plotW, plotH, op); // ----- Equation footer --------------------------------------------- drawEquation(); } // --------------------------------------------------------------------- // HUD: 22pt title + 12pt subtitle, top-left, with translucent // background bar so screenshots are self-identifying. // --------------------------------------------------------------------- function drawHUD() { noStroke(); fill(0, 180); rect(0, 0, width, 38); fill(FG); textSize(20); textAlign(LEFT, TOP); text(TITLE, 14, 8); fill(...DIM); textSize(11); text('Wikitube microsim . en.wikitube.io/wiki/' + ARTICLE, 14, 30); } // --------------------------------------------------------------------- // Pattern G core: a horizontal block diagram with five named stages // Heater -> Liquid Pool -> Nucleation -> Bubble Growth -> Vapor Plume, // plus animated tokens flowing through them. Token color encodes the // current regime; token velocity scales with heat flux. // --------------------------------------------------------------------- function drawProcessChain(x0, y0, w, h, op, subst) { push(); translate(x0, y0); // Panel frame. noFill(); stroke(...STRUCT, 120); strokeWeight(1); rect(0, 0, w, h, 6); // Section header. noStroke(); fill(...STRUCT); textSize(11); textAlign(LEFT, TOP); text('Process chain (Pattern G)', 8, 6); // Five blocks evenly distributed across the band. const stages = ['Heater', 'Liquid Pool', 'Nucleation', 'Bubble Growth', 'Vapor Plume']; const n = stages.length; const padL = 16; const padR = 16; const usable = w - padL - padR; const blockW = usable / n - 8; const blockH = 46; const blockY = h / 2 - blockH / 2 + 6; // Regime color for the chain. const rcol = regimeColor(op.dT); // Connector arrows first (so blocks paint over their tips). stroke(...STRUCT, 200); strokeWeight(2); for (let i = 0; i < n - 1; i++) { const xA = padL + (i + 1) * (blockW + 8) - 8; const xB = padL + (i + 1) * (blockW + 8); const yC = blockY + blockH / 2; line(xA, yC, xB, yC); // arrowhead line(xB, yC, xB - 4, yC - 3); line(xB, yC, xB - 4, yC + 3); } // Blocks. for (let i = 0; i < n; i++) { const xB = padL + i * (blockW + 8); // Block fill modulated by stage (heater is hot, plume mirrors). let bcol; if (i === 0) bcol = HOT; else if (i === n - 1) bcol = rcol; else bcol = COLD; noStroke(); fill(bcol[0], bcol[1], bcol[2], 60); rect(xB, blockY, blockW, blockH, 4); stroke(bcol[0], bcol[1], bcol[2], 220); strokeWeight(1.2); noFill(); rect(xB, blockY, blockW, blockH, 4); noStroke(); fill(FG); textSize(10); textAlign(CENTER, CENTER); text(stages[i], xB + blockW / 2, blockY + blockH / 2); } // Animated tokens drifting along the chain. const speed = constrain(map(log(op.q) / log(10), 2, 7, 0.002, 0.020), 0.002, 0.020); noStroke(); for (const tok of tokens) { tok.s += speed; if (tok.s > 1) tok.s -= 1; const xT = padL + tok.s * (n * (blockW + 8) - 8); const yT = blockY + blockH / 2 + sin((tok.s * 8 + frameCount * 0.02)) * 4; fill(rcol[0], rcol[1], rcol[2], 180); circle(xT, yT, 4); } // Footnote: regime label. fill(rcol[0], rcol[1], rcol[2], 230); textSize(11); textAlign(LEFT, BOTTOM); text('regime: ' + regimeOf(op.dT), 8, h - 6); pop(); } // --------------------------------------------------------------------- // Live readout panel: substance, T_b, T_sat (after Clausius-Clapeyron // shift), wall superheat dT, heat flux q, latent heat L. Gauges use // the GAUGE green from the Energy palette. // --------------------------------------------------------------------- function drawReadout(x0, y0, w, h, op, subst, T_sat, regime) { push(); translate(x0, y0); noFill(); stroke(...STRUCT, 120); strokeWeight(1); rect(0, 0, w, h, 6); noStroke(); fill(...STRUCT); textSize(11); textAlign(LEFT, TOP); text('Live readout', 8, 6); const rcol = regimeColor(op.dT); fill(FG); textSize(12); textAlign(LEFT, TOP); let yy = 26; text('substance: ' + subst.name, 10, yy); yy += 18; text('T_b (1 atm): ' + nf(subst.T_b, 1, 2) + ' K', 10, yy); yy += 18; text('T_sat now: ' + nf(T_sat, 1, 2) + ' K', 10, yy); yy += 18; text('L (latent): ' + nf(subst.L, 1, 1) + ' kJ/kg', 10, yy); yy += 18; text('dT (T_w-T_sat): ' + nf(op.dT, 1, 2) + ' K', 10, yy); yy += 18; text('q (heat flux): ' + nfQ(op.q) + ' W/m^2', 10, yy); yy += 18; // Regime chip. noStroke(); fill(rcol[0], rcol[1], rcol[2], 80); rect(10, yy, w - 20, 20, 3); fill(rcol); textSize(11); textAlign(CENTER, CENTER); text(regime, w / 2, yy + 11); pop(); } // --------------------------------------------------------------------- // Nukiyama boiling curve: log10(q) vs log10(dT). The curve has four // regime bands separated by piecewise-cubic transitions; the actual // q(dT) is heuristic, not data-fitted. CHF (critical heat flux) and // Leidenfrost point are marked. The reader's operating point is a // draggable yellow dot. // --------------------------------------------------------------------- function drawNukiyamaPlot(x0, y0, w, h, op) { push(); translate(x0, y0); // Frame. noFill(); stroke(...STRUCT, 120); strokeWeight(1); rect(0, 0, w, h, 6); // Section header. noStroke(); fill(...STRUCT); textSize(11); textAlign(LEFT, TOP); text('Nukiyama boiling curve (1934) -- log q vs log dT', 8, 6); // Grid lines (log decades). stroke(...SCRATCH); strokeWeight(0.5); for (let lg = DT_MIN_LOG; lg <= DT_MAX_LOG; lg++) { const xL = mapDT(pow(10, lg), 0, w); line(xL, 22, xL, h - 22); noStroke(); fill(...STRUCT, 180); textSize(9); textAlign(CENTER, TOP); text(nfDecade(lg), xL, h - 18); stroke(...SCRATCH); } for (let lg = Q_MIN_LOG; lg <= Q_MAX_LOG; lg++) { const yL = mapQ(pow(10, lg), 22, h - 22); line(40, yL, w - 8, yL); noStroke(); fill(...STRUCT, 180); textSize(9); textAlign(RIGHT, CENTER); text(nfDecade(lg), 36, yL); stroke(...SCRATCH); } // Axis labels. noStroke(); fill(...STRUCT); textSize(10); textAlign(CENTER, BOTTOM); text('dT = T_w - T_sat [K]', w / 2, h - 4); push(); translate(12, h / 2); rotate(-HALF_PI); textAlign(CENTER, TOP); text('q [W/m^2]', 0, 0); pop(); // Draw the boiling curve as a sampled polyline. noFill(); strokeWeight(2); beginShape(); for (let lg = DT_MIN_LOG; lg <= DT_MAX_LOG; lg += 0.02) { const dT = pow(10, lg); const q = nukiyama(dT); const xP = mapDT(dT, 0, w); const yP = mapQ(q, 22, h - 22); const rcol = regimeColor(dT); stroke(rcol[0], rcol[1], rcol[2], 230); vertex(xP, yP); } endShape(); // Mark CHF (peak between nucleate and transition). const dT_CHF = DT_REGIME_BC; const q_CHF = nukiyama(dT_CHF * 0.95); noStroke(); fill(...ACCENT); circle(mapDT(dT_CHF, 0, w), mapQ(q_CHF, 22, h - 22), 6); textSize(10); textAlign(LEFT, BOTTOM); text('CHF', mapDT(dT_CHF, 0, w) + 6, mapQ(q_CHF, 22, h - 22) - 2); // Mark Leidenfrost (minimum between transition and film). const dT_LF = DT_REGIME_CD; const q_LF = nukiyama(dT_LF); fill(...ACCENT); circle(mapDT(dT_LF, 0, w), mapQ(q_LF, 22, h - 22), 6); textSize(10); text('Leidenfrost', mapDT(dT_LF, 0, w) + 6, mapQ(q_LF, 22, h - 22) - 2); // Operating-point marker. const xOp = mapDT(op.dT, 0, w); const yOp = mapQ(op.q, 22, h - 22); noStroke(); fill(0, 180); circle(xOp, yOp, 12); fill(...TRAJ); circle(xOp, yOp, 8); pop(); } // --------------------------------------------------------------------- // Bottom-right equation: Clausius-Clapeyron in pure ASCII so the // editor preview doesn't mangle anything. // --------------------------------------------------------------------- function drawEquation() { noStroke(); fill(...DIM); textSize(11); textAlign(RIGHT, BOTTOM); text('dP/dT = L / ( T * dV )', width - 12, height - 6); } // --------------------------------------------------------------------- // Helpers // --------------------------------------------------------------------- // Map dT (log) to plot pixel x. function mapDT(dT, x0, x1) { const lg = log(dT) / log(10); return map(lg, DT_MIN_LOG, DT_MAX_LOG, x0 + 48, x1 - 8); } // Map q (log) to plot pixel y (inverted: high q at top). function mapQ(q, y0, y1) { const lg = log(q) / log(10); return map(lg, Q_MIN_LOG, Q_MAX_LOG, y1 - 4, y0 + 4); } // Inverse: pixel x back to dT. function pixToDT(xp, x0, x1) { const lg = map(xp, x0 + 48, x1 - 8, DT_MIN_LOG, DT_MAX_LOG); return pow(10, lg); } // Inverse: pixel y back to q. function pixToQ(yp, y0, y1) { const lg = map(yp, y1 - 4, y0 + 4, Q_MIN_LOG, Q_MAX_LOG); return pow(10, lg); } // Decade labels: 0 -> "10^0", 3 -> "10^3". function nfDecade(lg) { return '10^' + lg; } // Heat-flux number formatting (W/m^2 in scientific). function nfQ(q) { if (q <= 0) return '0'; const lg = floor(log(q) / log(10)); const m = q / pow(10, lg); return nf(m, 1, 2) + 'e' + lg; } // Nukiyama heuristic q(dT): four regimes joined smoothly. // natural convection: q ~ 1.0e3 * dT^1.0 (dT < 5 K) // nucleate boiling: q ~ 5.0e2 * dT^3.0 (5 < dT < 30 K) // transition boiling: q drops from CHF to LF (30 < dT < 120 K) // film boiling: q ~ 2.0e2 * dT^1.4 (dT > 120 K) function nukiyama(dT) { if (dT < DT_REGIME_AB) { return 1.0e3 * pow(dT, 1.0); } else if (dT < DT_REGIME_BC) { return 5.0e2 * pow(dT, 3.0); } else if (dT < DT_REGIME_CD) { // Linearly interpolate in log space from CHF to LF. const q_CHF = 5.0e2 * pow(DT_REGIME_BC, 3.0); const q_LF = 2.0e2 * pow(DT_REGIME_CD, 1.4); const t = map(dT, DT_REGIME_BC, DT_REGIME_CD, 0, 1); const lg = lerp(log(q_CHF) / log(10), log(q_LF) / log(10), t); return pow(10, lg); } else { return 2.0e2 * pow(dT, 1.4); } } // Approximate inverse for q -> dT (used when the slider drives q). // Sweeps dT in 0.01-decade steps and finds the closest q match, // preferring the lower-dT branch on the nucleate side of CHF. function invertNukiyama(q) { let bestDT = 10; let bestErr = Infinity; for (let lg = DT_MIN_LOG; lg <= DT_MAX_LOG; lg += 0.01) { const dT = pow(10, lg); const qE = nukiyama(dT); const err = abs(log(qE) / log(10) - log(q) / log(10)); if (err < bestErr) { bestErr = err; bestDT = dT; } // Prefer the lower-dT branch: stop once we cross CHF. if (dT > DT_REGIME_BC && bestErr < 0.05) break; } return bestDT; } // Regime classifier by dT. function regimeOf(dT) { if (dT < DT_REGIME_AB) return 'natural convection'; if (dT < DT_REGIME_BC) return 'nucleate boiling'; if (dT < DT_REGIME_CD) return 'transition boiling'; return 'film boiling'; } // Regime palette by dT. function regimeColor(dT) { if (dT < DT_REGIME_AB) return COLDER; if (dT < DT_REGIME_BC) return COLD; if (dT < DT_REGIME_CD) return WARM; return HOT; } // --------------------------------------------------------------------- // Interaction: drag the operating-point marker on the Nukiyama plot. // The marker is constrained to the curve, so dragging in x sets dT // and q is recomputed from nukiyama(dT). // --------------------------------------------------------------------- function mousePressed() { const xOp = mapDT(op.dT, 0, plotW); const yOp = mapQ(op.q, 22, plotH - 22); const dx = mouseX - (plotX + xOp); const dy = mouseY - (plotY + yOp); if (dx * dx + dy * dy < 144) { dragging = true; } } function mouseDragged() { if (!dragging) return; const localX = mouseX - plotX; const newDT = constrain(pixToDT(localX, 0, plotW), pow(10, DT_MIN_LOG), pow(10, DT_MAX_LOG)); op.dT = newDT; op.q = nukiyama(newDT); // Keep the q slider in sync so the controls don't lie. qSlider.value(log(op.q) / log(10)); } function mouseReleased() { dragging = false; } ``` ## Links (Wikipedia order) <!-- injected from _registry/childlinks/Boiling_point.json (2026-07-30T02:09:12Z) --> [[Actinium]] · `Alcohol_(chemistry)` · `Aldehyde` · `Alkali_metal` · `Alkaline_earth_metal` · `Alkane` · `Alkene` · [[Aluminium]] · [[Americium]] · `Antiferromagnetism` · `Antimatter` · [[Antimony]] · [[Argon]] · [[Arsenic]] · [[Astatine]] · `Atmospheric_pressure` · `Azeotrope` · `Bar_(unit)` · [[Barium]] · [[Berkelium]] · [[Beryllium]] · `Binodal` · [[Bismuth]] · [[Bohrium]] · `Boiling` · `Boiling-point_elevation` · `Boiling_point_(disambiguation)` · `Boiling_points_of_the_elements_(data_page)` · [[Boron]] · `Boron_group` · `Bose–Einstein_condensate` · [[Bromine]] · `Butane` · [[Cadmium]] · [[Caesium]] · [[Calcium]] · [[Californium]] · [[Carbon]] · `Carbon_dioxide` · `Carbon_group` · `Carboxylic_acid` · `Celsius` · [[Cerium]] · `Chalcogen` · `Chemical_compound` · [[Chemical_element]] · `Chemical_ionization` · [[Chlorine]] · [[Chromium]] · [[Cobalt]] · `Colloid` · `Color-glass_condensate` · `Compressed_fluid` · `Concentration` · `Condensation` · `Constant_(mathematics)` · `Cooling_curve` · [[Copernicium]] · [[Copper]] · `Critical_line_(thermodynamics)` · `Critical_point_(thermodynamics)` · `Crystal` · `Crystallization` · [[Curium]] · `Dark_matter` · [[Darmstadtium]] · `Dead_Sea` · `Degenerate_matter` · `Deposition_(phase_transition)` · `Dew_point` · [[Distillation]] · [[Dubnium]] · [[Dysprosium]] · `Ebulliometer` · [[Einsteinium]] · `Enthalpy_of_fusion` · `Enthalpy_of_sublimation` · `Enthalpy_of_vaporization` · `Equation_of_state` · [[Erbium]] · `Ether` · [[Europium]] · `Evaporation` · `Exotic_matter` · `Fahrenheit` · `Fermionic_condensate` · [[Fermium]] · `Ferrimagnetism` · `Ferromagnetism` · `Flash_evaporation` · [[Flerovium]] · [[Fluorine]] · `Foot_(unit)` · [[Francium]] · `Freezing` · [[Gadolinium]] · [[Gallium]] · `Gas` · [[Germanium]] · [[Gold]] · `Group_10_element` · `Group_11_element` · `Group_12_element` · `Group_3_element` · `Group_4_element` · `Group_5_element` · `Group_6_element` · `Group_7_element` · `Group_8_element` · `Group_9_element` · [[Hafnium]] · `Hagedorn_temperature` · `Halogen` · [[Hassium]] · `Heat` · [[Helium]] · [[Holmium]] · [[Hydrogen]] · `Hydrogen_bond` · [[Indium]] · `International_Union_of_Pure_and_Applied_Chemistry` · [[Iodine]] · `Ionization` · [[Iridium]] · [[Iron]] · `Isobaric_process` · `Isobutane` · `Isopentane` · `Joback_method` · `Kelvin` · `Ketone` · [[Krypton]] · `La_Rinconada,_Peru` · `Lambda_point` · [[Lanthanum]] · `Latent_heat` · `Latent_internal_energy` · [[Lawrencium]] · [[Lead]] · `Leidenfrost_effect` · `Liquid` · `Liquid_crystal` · `List_of_chemical_elements` · `List_of_gases` · `List_of_states_of_matter` · [[Lithium]] · [[Livermorium]] · [[Lutetium]] · `Macromolecule` · `Macroscopic_quantum_phenomena` · [[Magnesium]] · [[Manganese]] · [[Meitnerium]] · `Melting` · `Melting_point` · [[Mendelevium]] · [[Mercury_(element)]] · `Metal` · `Methyl_cellulose` · `Metre` · `Mole_fraction` · `Molecular_mass` · `Molecule` · [[Molybdenum]] · [[Moscovium]] · `Mount_Everest` · `Mpemba_effect` · `National_Institute_of_Standards_and_Technology` · `Natural_logarithm` · [[Neodymium]] · [[Neon]] · `Neopentane` · [[Neptunium]] · [[Nickel]] · [[Nihonium]] · [[Niobium]] · [[Nitrogen]] · [[Nobelium]] · [[Noble_gas]] · [[Oganesson]] · [[Osmium]] · [[Oxygen]] · [[Palladium]] · `Pascal_(unit)` · `Pentane` · `Period_1_element` · `Period_2_element` · `Period_3_element` · `Period_4_element` · `Period_5_element` · `Period_6_element` · `Period_7_element` · `Periodic_table` · `Perry's_Chemical_Engineers'_Handbook` · [[Phase_transition]] · [[Phosphorus]] · `Photonic_molecule` · `Physical_property` · [[Plasma_(physics)]] · `Plasma_recombination` · [[Platinum]] · [[Plutonium]] · `Pnictogen` · [[Polonium]] · `Polymer` · [[Potassium]] · [[Praseodymium]] · `Pressure` · `Primordial_nuclide` · `Programmable_matter` · [[Promethium]] · [[Protactinium]] · `Purdue_University` · `QCD_matter` · `Quantum_Hall_effect` · `Quantum_spin_liquid` · `Quark–gluon_plasma` · [[Radium]] · [[Radon]] · `Regelation` · [[Rhenium]] · [[Rhodium]] · [[Roentgenium]] · [[Rubidium]] · [[Ruthenium]] · [[Rutherfordium]] · `Rydberg_matter` · `Saline_water` · `Salt_(chemistry)` · [[Samarium]] · [[Scandium]] · `Sea_level` · [[Seaborgium]] · [[Selenium]] · [[Silicon]] · [[Silver]] · [[Sodium]] · `Solid` · `Solution_(chemistry)` · `Spinodal` · `Standard_temperature_and_pressure` · `State_of_matter` · `Strange_matter` · `String-net_liquid` · [[Strontium]] · `Subcooling` · `Sublimation_(phase_transition)` · [[Sulfur]] · [[Superconductivity]] · `Supercooling` · `Supercritical_fluid` · `Superfluidity` · `Superheated_water` · `Superheating` · `Supersolid` · `Synthetic_element` · [[System]] · [[Tantalum]] · [[Technetium]] · [[Tellurium]] · `Temperature` · [[Tennessine]] · [[Terbium]] · [[Thallium]] · `Thermal_energy` · `Thermo-dielectric_effect` · [[Thorium]] · [[Thulium]] · `Time_crystal` · `Timeline_of_states_of_matter_and_phase_transitions` · [[Tin]] · [[Titanium]] · `Torr` · `Trace_radioisotope` · `Triple_point` · `Trouton's_rule` · [[Tungsten]] · [[Uranium]] · `Vacuum` · `Vacuum_cleaner` · [[Vanadium]] · `Vapor` · `Vapor_pressure` · `Vaporization` · `Vapor–liquid_equilibrium` · `Vapour_pressure_of_water` · `Vitrification` · `Volatility_(chemistry)` · `Water` · [[Xenon]] · [[Ytterbium]] · [[Yttrium]] · [[Zinc]] · [[Zirconium]] ## From the vault media library !Boiling point thumb.png *Boiling Point — from the vault's own media holdings, placed 2026-07-09. MTN / Wikitube.io original · CC BY-SA 4.0.* <!-- LOCAL-MEDIA-PASS:END --> > **Room:** [[Helium]] · **Status:** ✅ shipped ## Overview The **boiling point** of a substance is the temperature at which its saturated vapor pressure equals the surrounding ambient pressure, allowing vapor bubbles to form throughout the bulk of the liquid rather than only at its free surface. The *normal* boiling point is conventionally tabulated at one standard atmosphere (101.325 kPa); the *standard* boiling point, introduced by IUPAC in 1982, uses 100 kPa, lowering most tabulated values by a few tenths of a degree. The defining thermodynamic relation along the liquid-vapor coexistence curve is the **Clausius-Clapeyron equation**, dP/dT = L / (T*deltaV), which integrates under the ideal-gas approximation to the Antoine form log P = A - B/(T+C); empirical Antoine constants underpin nearly every published vapor-pressure table. Boiling itself is not a single regime but a [[Sequence|sequence]] -- natural convection, isolated-bubble nucleate boiling, fully developed nucleate boiling, transition boiling, and film boiling -- separated by the critical heat flux first characterized by Nukiyama in 1934. Helium-4 has the lowest normal boiling point of any element, 4.222 K, with no triple point at atmospheric pressure and a superfluid lambda transition just 2.05 K below it; helium-3 boils still lower at 3.19 K. Boiling-point elevation by dissolved solutes, governed by the ebullioscopic constant, is a foundational colligative property; the related Trouton's rule, L/T_b ~ 85 J/(mol*K), holds for most non-associating liquids. Boiling points underwrite [[Distillation|distillation]], cryogenic liquefaction, steam-cycle power generation, refrigeration, sterilization, semiconductor processing, and the entire altimetric history of barometric thermometry. ## See also - Room hub: [[Helium]] - p5.js Editor conventions: P5 JS EDITOR - Wiki root: MAIN --- *Scaffolded by `generative-microsim` from row 96 of the Helium sheet on 2026-05-12T11:55:43Z.* <!-- LOCAL-MEDIA-PASS:START --> <!-- CRAFT-LINK:START g12 --> *Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].* <!-- CRAFT-LINK:END --> ## Wikipedia : Wikitube **Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Boiling_point) : [Wikitube](https://en.wikitube.io/wiki/Boiling_point) ## Previous hub tags Tree parents: [[Helium]] · [[Hydrogen]] · [[Oxygen]]. Legacy hubs: none. --- *Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*