Light quanta · Section 9

Threshold frequency sets the bound. Absorbed energy counts the ions.

How does single-quantum energy conservation set the threshold frequency for ionizing a gas, and why is the number of ionized molecules strictly bounded by the absorbed light quanta?

Gas ionization by light

Gas ionization bounds and counting model

Static worked example

Model note
  • Incident radiant power (incidentPower), Frequency (frequency), Ionization energy per molecule (ionizationEnergyPerMolecule), Share of the light absorbed (absorptionEfficiency) and Exposure time (duration): Host calculation, by the site's own reference code. Computed in lq09.acceptedInputs.
  • Absorbed light energy (absorbedLightEnergy), Incident quantum rate (quantumRate), Absorbed quantum rate (absorbedQuantumRate), Ionization event rate (ionizationRate), Molecules ionized during the exposure (ionizationCount) and Ionized gram-molecules (ionizedGramMolecules): Host calculation, by the site's own reference code. Computed in photoelectric.ionizationCount.
  • Quantum energy (quantumEnergy), Energy of one quantum, hν (quantumEnergyEv), Threshold frequency (thresholdFrequency), Threshold wavelength, below which one quantum can ionize (thresholdWavelengthNm), Energy left over, hν − J (negative when short) (excessEnergyEv) and Whether one quantum can ionize a molecule (singleQuantumAllowed): Host calculation, by the site's own reference code. Computed in photoelectric.ionizationBounds.
  • Computed from the settings last applied (settings revision 1, result 1).
  • Not modeled: Secondary ionization and cascade ionization by energetic photoelectrons in dense gases; Multi-photon ionization processes occurring at extreme optical field intensities; Molecular dissociation channels competing with direct ionization without charge separation; Collisional de-excitation and recombination kinetics over extended reaction times; Spatial beam divergence, gas column pressure gradients, and non-uniform absorption profiles; Detailed autoionization resonances and vibrational-electronic coupling manifolds.

Predict before the numbers

A quantum's energy hν is below the energy J needed to ionize one molecule. How many molecules does the light ionize, one quantum at a time?

Three relations the model could have

Predict before the numbers

Under the paper's assumption that all absorbed light ionizes, what happens to the number of ionized molecules if you double the radiant power?

Three relations the model could have

The result appears when you choose, say you have one in mind, or skip.

2901.59 THz: one quantum carries 12.00 eV

1.00 μW

Try
Experiment settings ionization energy, absorption, exposure, what absorbed light does

10.00 eV

Worked example: a quantum of 2901.6 THz light carries 12 eV, 2 eV more than the 10 eV ionization energy, so molecules are ionized at 2.6 × 10¹¹ per second.

Can one quantum ionize a molecule?

hν = 12.00 eV; ionization energy per molecule 10.00 eV ; threshold ν₀ = 2418.0 THz, λ₀ = 124.0 nm

0 eV10.0 eVhν = 12.00 eV2.00 eV to sparehν ≥ J: one quantum can ionize

Quanta in, molecules ionized, each second

Einstein’s hypothesis: every absorbed quantum ionizes one molecule.

Arriving5.20 × 1011​/sAbsorbed2.60 × 1011​/sIonizing2.60 × 1011​/sevents each second

Values at these settings

QuantityValue
Frequency ν2901.59 THz
Ionization energy per molecule, J10.00 eV
Energy of one quantum, hν12 eV
Energy left over, hν − J2 eV
Light energy absorbed, L5.000 × 10−7 J
Quanta absorbed each second2.601 × 1011
Molecules ionized each second2.601 × 1011
Gram-molecules ionized, j4.318 × 10−13 mol

Einstein’s 1905 checks in §9

Lenard, 1900: the longest wavelength that ionizes air. About 190 nm, so Rβν = ca. 6,4 · 1012 Erg per gram-equivalent, as printed. That is 6.65 volts per unit charge, a figure derived here, not printed. With modern constants, 190 nm is 6.53 eV per molecule.

Stark, 1902: the smallest measured ionization voltage for air, at platinum anodes, ca. 10 Volt, so λ₀ ≈ 126 nm; J = 9.6 × 1012 erg per gram-equivalent.

What this model leaves out

  • Secondary ionization and cascade ionization by energetic photoelectrons in dense gases
  • Multi-photon ionization processes occurring at extreme optical field intensities
  • Molecular dissociation channels competing with direct ionization without charge separation
  • Collisional de-excitation and recombination kinetics over extended reaction times
  • Spatial beam divergence, gas column pressure gradients, and non-uniform absorption profiles
  • Detailed autoionization resonances and vibrational-electronic coupling manifolds
The rule this laboratory evaluates

From src/physics/reference/photoelectric.ts, the audited TypeScript reference evaluator.

// Paper 1, §9: one quantum, one ionization.
// Threshold frequency: nu_0 = J / h
// If nu < nu_0: no single-quantum ionization; the count is not applicable.
// If nu >= nu_0:
//   every absorbed quantum ionizes:  j = L / (R*beta*nu), or N_ion = L / (h*nu)
//   a declared share a ionizes:      N_ion = a * L / (h*nu)
//   the share is unknown:            underdetermined, at most N_abs = L / (h*nu)

If ultraviolet light ionizes a gas one quantum at a time, each quantum must carry at least the work needed to ionize one molecule, and the number of molecules ionized should equal the number of quanta absorbed. Einstein proposed the second statement as a test worth making.

§9 assumes that in the ionization of a gas by ultraviolet light each absorbed light quantum ionizes one gas molecule. Two consequences follow. First, the ionization work per gram-equivalent, J, cannot exceed the energy of the absorbed quanta: Rβν ≥ J, or per molecule hν ≥ J. Second, absorbed light energy L ionizes j = L/(Rβν) gram-molecules, for any gas that shows no appreciable absorption without ionization at that frequency. The instrument works both at its defaults: J = 10 eV per molecule, light of 2901.59 THz whose quanta carry 12.0 eV, 2.0 eV more than needed, so the threshold is 2418 THz, a wavelength of 124 nm. With 1 μW of light, half of it absorbed, for 1 s, L = 5 × 10−7 J, and 2.60 × 1011 quanta are absorbed; if each ionizes one molecule, 2.60 × 1011 molecules are ionized, 4.32 × 10−13 gram-molecules. If only a declared share ionizes, the count is that share of the quanta, 7.80 × 1010 for a share of 0.3. If the share is unknown, the lab reports the count as not fixed, with the absorbed quanta as its upper limit, and never more ions than quanta. Below the threshold, at 2000 THz (8.27 eV), no single quantum can ionize, and the count is not applicable rather than zero. A named gas must come with a cited source for its ionization energy.

Modern qualifications

Einstein compared the first consequence with two measurements. Lenard's largest wavelength effective in ionizing air, about 1.9 × 10−5 cm, gives Rβν = 6.4 × 1012 erg per gram-equivalent, about 6.5 eV per molecule, as an upper limit for J; Stark's smallest ionization voltage for air, about 10 volts at platinum anodes, gives the upper limit 9.6 × 1012, which Einstein called nearly equal, while noting in a footnote that inside the gas the ionization voltage for negative ions is five times larger. The count j = L/(Rβν) was offered as the test he thought most important, not as a result. Modern first ionization energies of oxygen and nitrogen molecules, about 12.1 and 15.6 eV, exceed both limits, so what Lenard and Stark measured cannot have been the single-quantum ionization of those molecules that §9 assumed. The lab's default of 10 eV follows Stark's figure.

Show the code

The site’s own reference code for this law, in TypeScript. It computes the numbers above when the page runs it, and it is what the page uses wherever a FrankenSim result is not available.

ionizationCount · src/physics/reference/photoelectric.ts · this site’s source, as built · sha256:b9faf7cd99d516b3082ef66c3793b0bc08fdc6c5c1b8fe35cd73b2da43f238cb

This function computes the listed outputs when it runs.

In words

The evaluator behind this laboratory. It checks the frequency against the ionization energy, resolves the incident and absorbed powers through the absorption efficiency, multiplies the absorbed power by the duration to get the absorbed energy, divides that by h nu for the number of absorbed quanta, and then lets the absorption mode decide what may be said about ionization. Every number it returns carries its own status, so the quanta can be a value on a page where the ionization count is a refusal.

Implementation

/**
 * Ionization count and rate evaluator (Paper 1, §9, LQ-09).
 * Computes absorbed light energy L = P_abs * t, absorbed quanta rate dot_N_abs = P_abs / (h*nu),
 * and ionization counts/rates under the three epistemic absorption modes:
 * - "all-absorbed-ionizes": j = L / (R*beta*nu) or N_ion = L / (h*nu)
 * - "declared-fraction": N_ion = a * L / (h*nu)
 * - "unknown": underdetermined with N_abs as an upper bound.
 * Below threshold (h*nu < J_mol), ionization count and rate are strictly not-applicable.
 */
export function ionizationCount(input: IonizationCountInput): IonizationCountResult {
  const {
    nu,
    ionizationEnergyJoules,
    ionizationEnergyEv,
    absorbedPowerWatts: rawAbsPower,
    incidentPowerWatts: rawIncPower,
    absorptionEfficiency: rawEta,
    durationSeconds = 1.0,
    absorptionMode = "all-absorbed-ionizes",
    declaredFraction = 1.0,
    gasCitation,
    set,
  } = input;

  const bounds = ionizationBounds({
    nu,
    ionizationEnergyJoules,
    ionizationEnergyEv,
    gasCitation,
    set,
  });

  if (bounds.status === "outside-domain") {
    const refusal = outsideDomain(
      bounds.refusalCode ?? "outside-domain",
      "model",
      bounds.verdictReason,
    );
    return Object.freeze({
      status: "outside-domain",
      bounds,
      incidentPowerWatts: rawIncPower ?? 0,
      absorbedPowerWatts: rawAbsPower ?? 0,
      durationSeconds,
      absorbedLightEnergyJoules: 0,
      incidentQuantumRatePerSecond: refusal,
      absorbedQuantumRatePerSecond: refusal,
      absorbedQuantaCount: refusal,
      ionizationRatePerSecond: refusal,
      ionizationCountMolecules: refusal,
      ionizedGramMolecules: refusal,
      ionsPerAbsorbedQuantumUpperBound: 1.0,
      absorptionConditionLabel: "outside-domain",
      reason: bounds.verdictReason,
    });
  }

  // Resolve powers
  let pOpt = 0;
  let pAbs = 0;
  const eta = rawEta !== undefined ? rawEta : 1.0;

  if (rawAbsPower !== undefined) {
    pAbs = rawAbsPower;
    pOpt = rawIncPower !== undefined ? rawIncPower : eta > 0 ? pAbs / eta : pAbs;
  } else if (rawIncPower !== undefined) {
    pOpt = rawIncPower;
    pAbs = eta * pOpt;
  }

  if (pOpt < 0 || pAbs < 0 || !Number.isFinite(pOpt) || !Number.isFinite(pAbs)) {
    const refusal = outsideDomain(
      "negative-power",
      "physical",
      "Power values must be non-negative finite numbers.",
    );
    return Object.freeze({
      status: "outside-domain",
      bounds,
      incidentPowerWatts: pOpt,
      absorbedPowerWatts: pAbs,
      durationSeconds,
      absorbedLightEnergyJoules: 0,
      incidentQuantumRatePerSecond: refusal,
      absorbedQuantumRatePerSecond: refusal,
      absorbedQuantaCount: refusal,
      ionizationRatePerSecond: refusal,
      ionizationCountMolecules: refusal,
      ionizedGramMolecules: refusal,
      ionsPerAbsorbedQuantumUpperBound: 1.0,
      absorptionConditionLabel: "outside-domain",
      reason: "Power values must be non-negative finite numbers.",
    });
  }

  if (eta < 0 || eta > 1 || !Number.isFinite(eta)) {
    const refusal = outsideDomain(
      "invalid-absorption-efficiency",
      "model",
      "Absorption efficiency must lie in [0, 1].",
    );
    return Object.freeze({
      status: "outside-domain",
      bounds,
      incidentPowerWatts: pOpt,
      absorbedPowerWatts: pAbs,
      durationSeconds,
      absorbedLightEnergyJoules: 0,
      incidentQuantumRatePerSecond: refusal,
      absorbedQuantumRatePerSecond: refusal,
      absorbedQuantaCount: refusal,
      ionizationRatePerSecond: refusal,
      ionizationCountMolecules: refusal,
      ionizedGramMolecules: refusal,
      ionsPerAbsorbedQuantumUpperBound: 1.0,
      absorptionConditionLabel: "outside-domain",
      reason: "Absorption efficiency must lie in [0, 1].",
    });
  }

  if (durationSeconds < 0 || !Number.isFinite(durationSeconds)) {
    const refusal = outsideDomain(
      "negative-duration",
      "physical",
      "Duration must be non-negative.",
    );
    return Object.freeze({
      status: "outside-domain",
      bounds,
      incidentPowerWatts: pOpt,
      absorbedPowerWatts: pAbs,
      durationSeconds,
      absorbedLightEnergyJoules: 0,
      incidentQuantumRatePerSecond: refusal,
      absorbedQuantumRatePerSecond: refusal,
      absorbedQuantaCount: refusal,
      ionizationRatePerSecond: refusal,
      ionizationCountMolecules: refusal,
      ionizedGramMolecules: refusal,
      ionsPerAbsorbedQuantumUpperBound: 1.0,
      absorptionConditionLabel: "outside-domain",
      reason: "Duration must be non-negative.",
    });
  }

  const h = getPlanckConstant(set);
  const na = getAvogadroConstant(set);
  const eqJ = h * nu;

  const incQRate = eqJ > 0 ? pOpt / eqJ : 0;
  const absQRate = eqJ > 0 ? pAbs / eqJ : 0;
  const lAbs = pAbs * durationSeconds;
  const absQCount = eqJ > 0 ? lAbs / eqJ : 0;

  const incQRateRes = ok(incQRate, "s^-1");
  const absQRateRes = ok(absQRate, "s^-1");
  const absQCountRes = ok(absQCount);

  // Sub-threshold check
  if (!bounds.singleQuantumAllowed) {
    const notApp = notApplicable("no single-quantum ionization under this hypothesis");
    return Object.freeze({
      status: "not-applicable",
      bounds,
      incidentPowerWatts: pOpt,
      absorbedPowerWatts: pAbs,
      durationSeconds,
      absorbedLightEnergyJoules: lAbs,
      incidentQuantumRatePerSecond: incQRateRes,
      absorbedQuantumRatePerSecond: absQRateRes,
      absorbedQuantaCount: absQCountRes,
      ionizationRatePerSecond: notApp,
      ionizationCountMolecules: notApp,
      ionizedGramMolecules: notApp,
      ionsPerAbsorbedQuantumUpperBound: 1.0,
      absorptionConditionLabel: "below-threshold",
      reason: "Incident photon energy h*nu is below the ionization threshold J_mol.",
    });
  }

  // Supra-threshold regimes
  if (absorptionMode === "unknown") {
    const underdet = underdetermined("sub-quantum-efficiency", [
      "ionization-efficiency-fraction",
      "non-ionizing-absorption-channels",
    ]);
    return Object.freeze({
      status: "underdetermined",
      bounds,
      incidentPowerWatts: pOpt,
      absorbedPowerWatts: pAbs,
      durationSeconds,
      absorbedLightEnergyJoules: lAbs,
      incidentQuantumRatePerSecond: incQRateRes,
      absorbedQuantumRatePerSecond: absQRateRes,
      absorbedQuantaCount: absQCountRes,
      ionizationRatePerSecond: underdet,
      ionizationCountMolecules: underdet,
      ionizedGramMolecules: underdet,
      ionsPerAbsorbedQuantumUpperBound: 1.0,
      absorptionConditionLabel: "unknown-absorption",
      reason: `Unknown fraction of absorbed energy goes to non-ionizing channels; count is bounded above by absorbed quanta N_abs = ${absQCount.toExponential(4)}.`,
    });
  }

  if (absorptionMode === "declared-fraction") {
    if (declaredFraction < 0 || declaredFraction > 1 || !Number.isFinite(declaredFraction)) {
      const refusal = outsideDomain(
        "invalid-fraction",
        "model",
        "Declared ionization fraction must lie in [0, 1].",
      );
      return Object.freeze({
        status: "outside-domain",
        bounds,
        incidentPowerWatts: pOpt,
        absorbedPowerWatts: pAbs,
        durationSeconds,
        absorbedLightEnergyJoules: lAbs,
        incidentQuantumRatePerSecond: incQRateRes,
        absorbedQuantumRatePerSecond: absQRateRes,
        absorbedQuantaCount: absQCountRes,
        ionizationRatePerSecond: refusal,
        ionizationCountMolecules: refusal,
        ionizedGramMolecules: refusal,
        ionsPerAbsorbedQuantumUpperBound: 1.0,
        absorptionConditionLabel: "outside-domain",
        reason: "Declared ionization fraction must lie in [0, 1].",
      });
    }

    const ionRate = declaredFraction * absQRate;
    const ionCount = declaredFraction * absQCount;
    const jMol = na > 0 ? ionCount / na : 0;

    return Object.freeze({
      status: "value",
      bounds,
      incidentPowerWatts: pOpt,
      absorbedPowerWatts: pAbs,
      durationSeconds,
      absorbedLightEnergyJoules: lAbs,
      incidentQuantumRatePerSecond: incQRateRes,
      absorbedQuantumRatePerSecond: absQRateRes,
      absorbedQuantaCount: absQCountRes,
      ionizationRatePerSecond: ok(ionRate, "s^-1"),
      ionizationCountMolecules: ok(ionCount),
      ionizedGramMolecules: ok(jMol, "mol"),
      ionsPerAbsorbedQuantumUpperBound: 1.0,
      absorptionConditionLabel: "declared-fraction",
      reason: `Declared fraction a = ${declaredFraction.toFixed(4)} of absorbed light quanta produce ionization.`,
    });
  }

  // Primary paper hypothesis: all absorbed light ionizes
  const ionRate = absQRate;
  const ionCount = absQCount;
  const jMol = na > 0 ? ionCount / na : 0;

  return Object.freeze({
    status: "value",
    bounds,
    incidentPowerWatts: pOpt,
    absorbedPowerWatts: pAbs,
    durationSeconds,
    absorbedLightEnergyJoules: lAbs,
    incidentQuantumRatePerSecond: incQRateRes,
    absorbedQuantumRatePerSecond: absQRateRes,
    absorbedQuantaCount: absQCountRes,
    ionizationRatePerSecond: ok(ionRate, "s^-1"),
    ionizationCountMolecules: ok(ionCount),
    ionizedGramMolecules: ok(jMol, "mol"),
    ionsPerAbsorbedQuantumUpperBound: 1.0,
    absorptionConditionLabel: "all-absorbed-ionizes",
    reason:
      "Under Einstein's §9 hypothesis that every absorbed light quantum ionizes one molecule: j = L / (R*beta*nu).",
  });
}

The physical argument

The single-quantum ionization conservation law

In §9 of his 1905 paper, Einstein extends the light-quantum hypothesis from surface photoemission to the ionization of gases by light. If a molecule requires an energy JmolJ_{\text{mol}} to split into ions (or in gram-equivalent units, ionization work JJ), an absorbed light quantum must supply at least this amount of energy in a single elementary process:

Rβν≥J  ⟺  hν≥JmolR\beta\nu \ge J \quad \iff \quad h\nu \ge J_{\text{mol}}
Explain this equation

This gives a strict minimum threshold frequency ν0=Jmolh\nu_0 = \frac{J_{\text{mol}}}{h} and corresponding maximum wavelength λ0=cν0\lambda_0 = \frac{c}{\nu_0}.

The counting relation: proportionality to absorbed energy

Suppose light of frequency ν>ν0\nu > \nu_0 shines into a gas, and a total light energy LL is absorbed. Under Einstein's primary hypothesis that every absorbed quantum of energy Rβν/NR\beta\nu/N ionizes exactly one molecule, the number of ionized gram-molecules jj, each of NN molecules, is given by:

j=LRβνj = \frac{L}{R\beta\nu}
Explain this equation

In particle counts (where NAN_A is Avogadro's constant and NionN_{\text{ion}} is the number of ionized molecules):

Nion=LhνN_{\text{ion}} = \frac{L}{h\nu}

Three epistemic absorption conditions

  1. All absorption ionizes: When every absorbed quantum produces an ionization event, Nion=L/(hν)N_{\text{ion}} = L / (h\nu) holds as an exact equality.
  2. Declared fraction: If only a fraction a∈[0,1]a \in [0, 1] of absorbed quanta goes to ionization while the rest dissipates as heat or non-ionizing excitation, the yield is Nion=aLhνN_{\text{ion}} = a \frac{L}{h\nu}.
  3. Unknown non-ionizing channels: If the partition between ionizing and non-ionizing absorption is unknown, the count is underdetermined, with Nion≤LhνN_{\text{ion}} \le \frac{L}{h\nu} providing a rigorous single-quantum upper bound.

Einstein's 1905 historical checks

Einstein verified that the energy scale of light quanta matches gas ionization using two contemporary experimental datasets:

  • Philipp Lenard (1900): Observed that ultraviolet light from a spark source ionizes air when transmitted through quartz, for wavelengths λ≤1.9×10−5 cm\lambda \le 1.9\times 10^{-5}\text{ cm} (190 nm). Einstein calculated that for λ=1.9×10−5 cm\lambda = 1.9\times 10^{-5}\text{ cm}, the quantum energy per gram-equivalent is:
    Rβν=8,31⋅107×4,866⋅10−11×1,58⋅1015≈6,4⋅1012 Erg\begin{aligned}R\beta\nu &= 8{,}31\cdot 10^7 \\ &\quad \times 4{,}866\cdot 10^{-11} \\ &\quad \times 1{,}58\cdot 10^{15} \\ &\approx 6{,}4\cdot 10^{12}\text{ Erg}\end{aligned}
    Explain this equation
    Divided by the gram-equivalent charge E=9,6⋅103 emuE = 9{,}6\cdot 10^3\text{ emu}, this corresponds to a potential difference of V≈6,6 VoltsV \approx 6{,}6\text{ Volts}.
  • Johannes Stark (1902): Found that cathode rays in air require a minimum potential difference of about 10 Volts10\text{ Volts} to produce ionization, giving J=9,6⋅1012 ErgJ = 9{,}6\cdot 10^{12}\text{ Erg} per gram-equivalent and a threshold wavelength of λ0≈126 nm\lambda_0 \approx 126\text{ nm}.

Epistemic boundary

Below the ionization threshold frequency (ν<ν0\nu < \nu_0), the count and rate of single-quantum ionization are strictly not applicable (a typed non-value), never 0 presented as a measured rate. In real gases, secondary ionization by energetic electrons can produce additional ions, which is why the relations above describe direct single-quantum ionization under the paper's hypothesis.

Embed this laboratory on another page. It starts from its worked defaults, not your current settings.