Light quanta · §7 fluorescence & Stokes's rule
Fluorescence energy budget and Stokes's rule
What single-quantum energy conservation, hν₁ = hν₂ + Eother, allows a fluorescent body to emit, and where multi-quantum and thermal cases depart from it.
Static worked example
Model note
- Whether the energy budget allows the emission (
allowed), Maximum allowed emitted frequency (nu2Max), Absorbed quantum energy (e1Ev), Emitted quantum energy (e2Ev), Energy dissipated as heat, per quantum (eOtherEv) and Energy deficit (energyDeficitEv): Host calculation, by the site's own reference code. Computed inphotoelectric.fluorescenceBudget. - Quanta absorbed each second (
absorbedRate), Quanta emitted each second (emittedRate), Power emitted as light (emittedPowerWatts) and Power dissipated as heat (dissipatedHeatWatts): Host calculation, by the site's own reference code. Computed inphotoelectric.fluorescenceRates. - Computed from the settings last applied (settings revision 1, result 1).
- Not modeled: Detailed atomic or molecular energy level structures and transition dipoles.; Non-radiative decay kinetics and intermediate triplet states (phosphorescence timescales).; Spatial propagation, self-absorption, and re-emission geometry inside the bulk medium.; Coherent optical effects and laser amplification..
Absorbed: 850 THz, 353 nm (ultraviolet). Emitted: 850 THz, 353 nm (ultraviolet). Heat: the rest of the absorbed energy, dissipated in the medium. The dashed line is the largest emitted quantum allowed, ν₂,max = 850.0 THz.
Spectral bands and false-colour legend
Wavelength λ = c / νPredict before the numbers
One quantum of the exciting light is absorbed at a time. Can the emitted light have a higher frequency than the exciting light (ν₂ > ν₁)?
Predict before the numbers
As the exciting light becomes very weak, how does the rate of emitted light change?
The result appears when you choose, say you have one in mind, or skip.
Worked example: 850 THz in, 850 THz out. Allowed under Stokes's rule: the emitted quantum has no more energy than the absorbed one (ν₂ ≤ ν₁). 8.88 × 10¹¹ quanta leave each second.
Calculated energy ledger and transition quantities
| Quantity | Symbol | Value | Meaning |
|---|---|---|---|
| Budget verdict | Verdict | Allowed | Allowed under Stokes's rule: the emitted quantum has no more energy than the absorbed one (ν₂ ≤ ν₁). |
| Maximum allowed frequency | ν₂,max | 850.00 THz | Upper frequency bound for emitted light |
| Absorbed quantum energy | hν₁ | 3.5153 eV | Energy of one exciting light quantum |
| Emitted quantum energy | hν₂ | 3.5153 eV | Energy of candidate emitted light quantum |
| Non-optical dissipation (heat) | Eother | 0 eV | Energy transferred to thermal modes of medium |
| Energy deficit | ΔE | 0 eV | Zero (Conserved) |
When light makes a substance glow, the glow comes out at a lower frequency than the light that excites it, and the light-quantum picture says why: one absorbed quantum can pay for at most one emitted quantum of no greater energy. Einstein also named the conditions under which that rule could fail.
§7 applies the light quantum to photoluminescence. Suppose the exciting light of frequency ν₁ and the emitted light of frequency ν₂ both consist of quanta of energy (R/N)βν, hν in modern notation, and that each absorbed quantum, at least while the exciting quanta are sparse, gives rise on its own to one emitted quantum, possibly with other light or heat besides. Then energy requires hν₂ ≤ hν₁, so ν₂ ≤ ν₁, which is Stokes's rule. The instrument draws this energy ledger. At its defaults ν₁ = 850 THz, a quantum of 3.515 eV. Emitting at 850 THz uses all of it; emitting at 600 THz (2.481 eV) leaves 1.034 eV for heat; emitting at 900 THz would need 0.207 eV more than one quantum has, so the lab calls it disallowed and reports no emission. §7 also predicts that in weak light the emitted light is proportional to the exciting light, with no lower limit of intensity. With 1 μW absorbed and one emission for every two absorptions, 1.78 × 1012 quanta are absorbed and 8.88 × 1011 emitted each second, and a millionth of the power gives a millionth of each rate. Einstein named two cases in which the rule could fail: so many quanta converting at once that one emitted quantum draws on several absorbed ones, which the lab shows as a bound of kν₁; and exciting light unlike black radiation in the range of Wien's law, for which the lab derives no bound. A third setting, in which the body's own heat supplies the difference, is a modern allowance and is labelled as not in the paper.
Start with the energy of one quantum. In modern notation it is hν, with h = 6.626 × 10−34 J·s. For ν₁ = 850 THz = 8.50 × 1014 s−1 that is 5.632 × 10−19 J, and dividing by the electron's charge, 1.602 × 10−19 C, expresses it as 3.515 eV, the energy an electron gains across 3.515 volts. Now follow one absorbed quantum. Einstein's premise is that, while the exciting quanta are sparse, each one acts alone: its 3.515 eV must cover the emitted quantum and anything else produced, such as heat. Nothing else supplies energy, so the emitted quantum can carry at most 3.515 eV, and since its energy is h times its frequency, its frequency can be at most 850 THz. Try three emitted frequencies. At 850 THz the emitted quantum takes all 3.515 eV and nothing is left over. At 600 THz it takes h × 6.00 × 1014 s−1 = 2.481 eV, and the remaining 3.515 − 2.481 = 1.034 eV goes to heat. At 900 THz it would need 3.722 eV, which is 0.207 eV more than was absorbed, so this model forbids it. Now the rates. Power is energy per second, so 1 μW of absorbed light at 5.632 × 10−19 J per quantum is 10−6/(5.632 × 10−19) = 1.78 × 1012 quanta absorbed per second. If one absorption in two leads to an emission, 8.88 × 1011 quanta are emitted each second, carrying 0.5 μW at 850 THz, and the other 0.5 μW becomes heat. Halve the power and every rate halves; divide it by a million and every rate is divided by a million but never becomes zero, because each quantum acts independently of the others. That is §7's prediction of proportionality with no threshold. The deviation cases change the premises. If the quanta are so dense that k of them pool their energy into one emitted quantum, the budget becomes k × 3.515 eV, so with k = 2 the limit rises to 1700 THz, and the lab reports no rates, since emission is then not proportional to absorption. If the exciting light comes from a source so hot that Wien's law fails at 850 THz, for instance 50 000 K, where hν/kT = 0.82, the quantum description is not admitted and the lab gives no bound. Under the modern allowance the body contributes thermal energy, taken here as 10 kT = 0.2585 eV at 300 K, which raises the limit to 912.5 THz. At 900 THz, with every absorption leading to an emission, 1.059 μW comes out for 1 μW absorbed, and the other 0.059 μW is heat drawn from the body.
Modern qualifications
Stokes stated the rule in 1852 as an observation about fluorescent substances; §7 is Einstein's derivation of it from the light quantum and energy conservation, and its predictions, proportionality without a threshold in weak light and exceptions only in the two named cases, were offered for experiment rather than checked in the paper. Einstein wrote the quantum as (R/N)βν, with β from Wien's law; h is Planck's notation. Both deviation cases later became real physics under other names: absorption of two quanta at once was worked out by Göppert-Mayer in 1931 and seen with lasers in 1961, and Pringsheim proposed in 1929 that anti-Stokes emission fed by a body's heat could cool it, which Epstein and colleagues observed in a solid in 1995. The thermal allowance here is a simple modern estimate, not a model of any substance.
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.
fluorescenceBudget · src/physics/reference/photoelectric.ts · this site’s source, as built · sha256:11d71dbe93a9da3598599f4cc6cea5d332f7f441988613168aa553ff6c379002
This function computes the listed outputs when it runs.
In words
The bound is h times the emitted frequency no greater than h times the absorbed frequency, which is Stokes's rule with a reason attached rather than a rule of thumb. The function returns the verdict, both quantum energies in electronvolts, the largest emitted frequency the assumption allows, the energy left over for other channels when the emission is allowed, and the deficit when it is not. Measured at 600 THz in and 500 THz out: 2.4814 eV absorbed, 2.0678 eV emitted, 0.4136 eV left for heat.
Implementation
/**
* Energy budget evaluator for fluorescence (§7 of 1905 light-quanta paper, LQ-07).
* Evaluates whether an emitted quantum h*nu2 is energetically permissible under the
* single-quantum hypothesis h*nu1 = h*nu2 + E_other, or under Einstein's two named
* deviation cases, or under modern thermal anti-Stokes allowance.
*/
export function fluorescenceBudget(input: FluorescenceBudgetInput): FluorescenceBudgetResult {
const { nu1, nu2, channels = "light-plus-heat", set } = input;
let regime: FluorescenceRegime = input.regime ?? "standard-stokes";
if (input.assumptionState === "paper") regime = "standard-stokes";
else if (input.assumptionState === "deviation-high-density") regime = "deviation-multi-quantum";
else if (input.assumptionState === "deviation-non-wien") regime = "deviation-non-wien";
else if (input.assumptionState === "modern-thermal-allowance") regime = "modern-thermal";
const multiQuantumK = input.k ?? input.multiQuantumK ?? 1;
const sourceTemperatureK = input.sourceTemperature ?? input.sourceTemperatureK ?? 5800;
const bodyTemperatureK = input.allowance?.T ?? input.bodyTemperatureK ?? 300;
const bodyThermalDegreesN = input.allowance?.n ?? input.bodyThermalDegreesN ?? 10;
const epsilonW = input.epsilonW ?? 0.01;
if (!Number.isFinite(nu1) || !Number.isFinite(nu2)) {
return Object.freeze({
status: "outside-domain",
allowed: false,
regime,
nu1Hz: nu1,
nu2Hz: nu2,
nu2MaxHz: 0,
e1Joules: 0,
e1Ev: 0,
e2Joules: 0,
e2Ev: 0,
eOtherJoules: 0,
eOtherEv: 0,
energyDeficitJoules: 0,
energyDeficitEv: 0,
verdictReason: "Frequency must be a finite number.",
refusalCode: "nonfinite-frequency",
});
}
if (nu1 <= 0 || nu2 <= 0) {
return Object.freeze({
status: "outside-domain",
allowed: false,
regime,
nu1Hz: nu1,
nu2Hz: nu2,
nu2MaxHz: 0,
e1Joules: 0,
e1Ev: 0,
e2Joules: 0,
e2Ev: 0,
eOtherJoules: 0,
eOtherEv: 0,
energyDeficitJoules: 0,
energyDeficitEv: 0,
verdictReason: "Frequency must be a positive number.",
refusalCode: "nonpositive-frequency",
});
}
const h = getPlanckConstant(set);
const e = getElementaryCharge(set);
const kB = getBoltzmannConstant(set);
const e1J = h * nu1;
const e1Ev = e1J / e;
const e2J = h * nu2;
const e2Ev = e2J / e;
if (regime === "deviation-non-wien") {
const Tsrc = sourceTemperatureK > 0 ? sourceTemperatureK : 5800;
const x = (h * nu1) / (kB * Tsrc);
const expMinusX = Math.exp(-x);
// If e^-x > epsilonW, outside Wien domain
if (expMinusX > epsilonW) {
return Object.freeze({
status: "outside-domain",
allowed: false,
labelKind: "printed-deviation-case-2" as const,
nu1Hz: nu1,
nu2Hz: nu2,
nu2MaxHz: nu1,
e1Joules: e1J,
e1Ev,
e2Joules: e2J,
e2Ev,
eOtherJoules: 0,
eOtherEv: 0,
energyDeficitJoules: Math.max(0, e2J - e1J),
energyDeficitEv: Math.max(0, e2Ev - e1Ev),
wienParameterX: x,
wienDeviationExpMinusX: expMinusX,
verdictReason:
"The light-quantum description is admitted only where Wien's law holds, and §7 allows that other light may behave differently, so no bound is derived.",
refusalCode: "outside-wien-domain",
});
}
// Inside Wien domain: single-quantum bound applies
const allowed = nu2 <= nu1;
const deficitJ = Math.max(0, e2J - e1J);
const eOtherJ = allowed ? e1J - e2J : 0;
return Object.freeze({
status: "value",
allowed,
labelKind: "printed-deviation-case-2" as const,
nu1Hz: nu1,
nu2Hz: nu2,
nu2MaxHz: nu1,
e1Joules: e1J,
e1Ev,
e2Joules: e2J,
e2Ev,
eOtherJoules: eOtherJ,
eOtherEv: eOtherJ / e,
energyDeficitJoules: deficitJ,
energyDeficitEv: deficitJ / e,
wienParameterX: x,
wienDeviationExpMinusX: expMinusX,
verdictReason: allowed
? "Allowed: the exciting light is in the range where Wien's law holds, and ν₂ does not exceed ν₁."
: "Disallowed: the emitted frequency ν₂ exceeds the exciting frequency ν₁, and Wien's law holds.",
});
}
if (regime === "deviation-multi-quantum") {
const k = Math.max(1, Math.floor(multiQuantumK));
const totalInJ = k * e1J;
const totalInEv = totalInJ / e;
const nu2Max = k * nu1;
const allowed = nu2 <= nu2Max;
const deficitJ = Math.max(0, e2J - totalInJ);
const eOtherJ = allowed ? totalInJ - e2J : 0;
return Object.freeze({
status: "value",
allowed,
labelKind: "printed-deviation-case-1" as const,
nu1Hz: nu1,
nu2Hz: nu2,
nu2MaxHz: nu2Max,
e1Joules: e1J,
e1Ev,
e2Joules: e2J,
e2Ev,
eOtherJoules: eOtherJ,
eOtherEv: eOtherJ / e,
energyDeficitJoules: deficitJ,
energyDeficitEv: deficitJ / e,
verdictReason: allowed
? `Allowed under deviation case 1: ${k} absorbed quanta together supply ${totalInEv.toFixed(4)} eV, enough for emission up to ${k}ν₁.`
: `Disallowed: the emitted quantum needs ${(e2Ev - totalInEv).toFixed(4)} eV more than ${k} absorbed quanta supply (ν₂ above ${k}ν₁).`,
});
}
if (regime === "modern-thermal") {
const nDegrees = Math.max(1, bodyThermalDegreesN);
const Tbody = Math.max(0, bodyTemperatureK);
const extraJ = nDegrees * kB * Tbody;
const extraEv = extraJ / e;
const totalAvailableJ = e1J + extraJ;
const nu2Max = totalAvailableJ / h;
const allowed = nu2 <= nu2Max;
const deficitJ = Math.max(0, e2J - totalAvailableJ);
const eOtherJ = allowed ? totalAvailableJ - e2J : 0;
return Object.freeze({
status: "value",
allowed,
labelKind: "modern-allowance" as const,
nu1Hz: nu1,
nu2Hz: nu2,
nu2MaxHz: nu2Max,
e1Joules: e1J,
e1Ev,
e2Joules: e2J,
e2Ev,
eOtherJoules: eOtherJ,
eOtherEv: eOtherJ / e,
energyDeficitJoules: deficitJ,
energyDeficitEv: deficitJ / e,
thermalExtraJoules: extraJ,
thermalExtraEv: extraEv,
verdictReason: allowed
? `Allowed under a modern thermal allowance, not in the 1905 paper: the body can add ${extraEv.toFixed(4)} eV, so ν₂ may reach ${(nu2Max / 1e12).toFixed(2)} THz.`
: `Disallowed: ν₂ exceeds even the modern thermal bound of ${(nu2Max / 1e12).toFixed(2)} THz.`,
});
}
// Standard Stokes regime (§7 as printed)
const nu2Max = nu1;
let allowed = nu2 <= nu1;
let reason = allowed
? "Allowed under Stokes's rule: the emitted quantum has no more energy than the absorbed one (ν₂ ≤ ν₁)."
: "Disallowed under the paper's single-quantum assumption: the emitted quantum would need more energy than the absorbed one supplies (ν₂ > ν₁).";
if (channels === "light-only") {
if (nu2 < nu1) {
allowed = false;
reason =
"Disallowed under the light-only assumption: the absorbed quantum has energy left over and no other channel to take it.";
} else if (nu2 > nu1) {
allowed = false;
reason =
"Disallowed: the emitted light would carry more energy than was absorbed, with nothing to supply the difference.";
} else {
allowed = true;
reason = "Allowed: resonance fluorescence, with no energy lost to other channels.";
}
}
const deficitJ = Math.max(0, e2J - e1J);
const eOtherJ = allowed && channels === "light-plus-heat" ? e1J - e2J : 0;
return Object.freeze({
status: "value",
allowed,
labelKind: "paper-assumption" as const,
nu1Hz: nu1,
nu2Hz: nu2,
nu2MaxHz: nu2Max,
e1Joules: e1J,
e1Ev,
e2Joules: e2J,
e2Ev,
eOtherJoules: eOtherJ,
eOtherEv: eOtherJ / e,
energyDeficitJoules: deficitJ,
energyDeficitEv: deficitJ / e,
verdictReason: reason,
});
}