Light quanta · Introduction

Continuous waves explain purely optical phenomena.

What does a continuous wave description of light explain well, and what exactly does its intensity measure?

An executable model

Wave description and energy spreading laboratory

Static worked example

What to look at

Predict before the numbers

Two equal waves meet at the centre of the screen. What happens to the intensity there when the phase difference goes from 0 to π?

Three relations the model could have

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

0.00π rad, 0°

What the detector records
Try
Experiment settings amplitudes, source spacing, probe position
Probe position on the screen

Worked example: two waves of amplitude 1 and 1, 0° apart in phase: the centre of the screen has intensity 4, where one wave of amplitude 1 alone gives 1, and the fringes have visibility 1.

Brightness across the screen, ⟨I(y)⟩

Averaged over many cycles

Two coherent point sources, added as waves. At the centre 4; fringe visibility 1; bright fringes 33.3 λ apart.

420y = 0, centrecentre: 4.00 (Δr = 0.00λ)Position on the screen, y

Wave crests from the two sources

d = 3.0 λ · δ = 0.00π

Circles of crests spread from the coherent sources S₁ and S₂.

S₁S₂ScreenI₀ = 4.0

Values at these settings

Intensities are given in units of one wave of amplitude 1 on its own.

QuantityValue
Intensity at the centre, averaged4
Intensity at the centre, this instant8
Intensity at the probe4
Path difference at the probe0 λ
Fringe visibility (1 is full contrast)1
Distance between bright fringes33.33 λ
Intensity across the screenA curve of 101 points, drawn above

Treat light as a continuous wave and two sources make bright and dark stripes, while the light of one source spreads ever thinner over larger and larger spheres. Einstein granted that this picture explains everything purely optical, and asked whether it could still fail where light is produced or absorbed.

The light paper opens by setting the wave theory beside the atomic picture of matter. In Maxwell's theory the energy of light is a continuous function of space: from a point source it spreads over an ever larger volume, while the energy of a body is a sum over a finite number of atoms and electrons. Einstein wrote that the wave theory, working with continuous functions of space, has proved itself excellently for purely optical phenomena and will probably never be replaced by another theory. He then added the caveat this instrument shows: optical observations concern averages over time, not instantaneous values. Two coherent unit waves in phase give an averaged intensity of 4 at the centre, in units of one wave's average, while at one instant the same point swings between 0 and 8 in every cycle; the bright fringes are 33.3 wavelengths apart on a screen 100 wavelengths from sources 3 wavelengths apart. One point source of 1 W spreads to 0.0796 W/m2 at 1 m, and the whole sphere around it always receives the full 1 W. His question was whether this continuous picture, confirmed for diffraction, reflection, refraction and dispersion, would still hold for the production and transformation of light.

Modern qualifications

The purely optical phenomena Einstein names are diffraction, reflection, refraction and dispersion. He kept the wave theory for them, writing that it would probably never be replaced, and confined his doubt to the production and transformation of light: black-body radiation, photoluminescence and the production of cathode rays by ultraviolet light. He called his own proposal a heuristic point of view, not a proof that light is not a wave. The two-source arrangement is Young's, from the first years of the nineteenth century; the field theory is Maxwell's of 1865, and Hertz produced its waves in 1888. The later dispute over whether single quanta interfere belongs to the history after 1905 and is not part of this paper.

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.

twoSourceIntensity · src/physics/reference/radiation/waves.ts · this site’s source, as built · sha256:6fd24fcb5858023b88cd0a6389a8da475f5dff4fae95f6cb08502c47992634da

This function computes the listed outputs when it runs.

In words

Each source contributes an amplitude that falls as one over its distance, a1 = A1/r1 and a2 = A2/r2. The time-averaged reading is a1 squared plus a2 squared plus 2 a1 a2 cos(delta), and that last cross term is the whole of interference: it adds at delta = 0 and cancels the rest at delta = pi. The phase difference comes from the path difference, k(r1 - r2), unless the caller supplies one. Given an absorption coefficient kappa the answer is in watts per square metre; without one it is normalized to what a single source would average.

Implementation

/**
 * Two-source interference intensity: time-averaged or instantaneous.
 */
export function twoSourceIntensity(
  params: TwoSourceParameters,
): RadiationResult<TwoSourceIntensityResult["intensity"]> {
  const { A1, A2, r1, r2, wavelength, readout = "time-average", t = 0, kappa } = params;

  if (r1 <= 0 || r2 <= 0 || !Number.isFinite(r1) || !Number.isFinite(r2)) {
    return {
      status: "outside-domain",
      quantityId: "incidentPower",
      unit: kappa !== undefined ? "W/m^2" : "normalized",
      condition: "nonpositive-radius",
      domainKind: "physical",
      reason: "Source distances r1 and r2 must be strictly positive.",
    };
  }
  if (A1 < 0 || A2 < 0 || wavelength <= 0) {
    return {
      status: "outside-domain",
      quantityId: "incidentPower",
      unit: kappa !== undefined ? "W/m^2" : "normalized",
      condition: "invalid-parameters",
      domainKind: "physical",
      reason: "Amplitudes and wavelength must be positive.",
    };
  }

  const k = (2 * Math.PI) / wavelength;
  const omega = (2 * Math.PI * SPEED_OF_LIGHT) / wavelength;
  const delta = params.delta !== undefined ? params.delta : k * (r1 - r2);

  const a1 = A1 / r1;
  const a2 = A2 / r2;

  if (readout === "instantaneous") {
    // Wave 2 runs delta ahead of wave 1, the same delta the time average uses: k(r1 - r2) from
    // the geometry, or the phase difference the caller set. It used the geometry alone, so a set
    // delta changed the average and not the instant (at r1 = r2, delta = pi read dark on average
    // and bright at t = 0).
    const phase1 = omega * t - k * r1;
    const psi = a1 * Math.cos(phase1) + a2 * Math.cos(phase1 + delta);
    // The same units as the time-averaged readout below, so that the average of this over a
    // period IS that readout. With kappa, both are kappa times the field squared. Normalized, the
    // time average is a1^2 + a2^2 + 2 a1 a2 cos(delta), which is 2 <psi^2>, so the instant is
    // 2 psi^2: it was psi^2, which peaked at the "average" (4 for two unit waves in phase) and
    // averaged to half of it.
    const intensity = kappa !== undefined ? kappa * psi * psi : 2 * psi * psi;
    return {
      status: "value",
      quantityId: "incidentPower",
      unit: kappa !== undefined ? "W/m^2" : "normalized",
      value: intensity,
      linearRepresentable: true,
    };
  }

  // Time-averaged readout
  let intensity: number;
  if (kappa !== undefined) {
    intensity = (kappa / 2) * (a1 * a1 + a2 * a2 + 2 * a1 * a2 * Math.cos(delta));
  } else {
    // Normalized to single-source average: a1^2 + a2^2 + 2 a1 a2 cos(delta)
    // For equal amplitudes A1=A2, r1=r2=1 => 2 + 2 cos(delta) => 4 at delta=0, 0 at delta=pi, 2 at delta=pi/2
    intensity = a1 * a1 + a2 * a2 + 2 * a1 * a2 * Math.cos(delta);
  }

  return {
    status: "value",
    quantityId: "incidentPower",
    unit: kappa !== undefined ? "W/m^2" : "normalized",
    value: intensity,
    linearRepresentable: true,
  };
}

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.

inverseSquareIntensity · src/physics/reference/radiation/waves.ts · this site’s source, as built · sha256:ad39a6e1d729c60dcfe8d52137da59746f6d586dfd167edce3d421453f945909

This function computes the listed outputs when it runs.

In words

Divide the source's power by the area of the sphere the light has reached, 4 pi r squared, and refuse before dividing: a radius at or below zero and a negative power each return a typed outside-domain result quoting the value that was passed.

Implementation

/** Inverse-square radiant intensity I(r) = P / (4 * pi * r^2) in W/m^2. */
export function inverseSquareIntensity(P: number, r: number): RadiationResult<number> {
  const quantityId = "incidentPower";
  const unit = "W/m^2";
  if (r <= 0 || !Number.isFinite(r)) {
    return {
      status: "outside-domain",
      quantityId,
      unit,
      condition: "nonpositive-radius",
      domainKind: "physical",
      reason: `Radius r must be strictly positive (got ${r}).`,
    };
  }
  if (P < 0 || !Number.isFinite(P)) {
    return {
      status: "outside-domain",
      quantityId,
      unit,
      condition: "negative-power",
      domainKind: "physical",
      reason: `Source power must be non-negative (got ${P}).`,
    };
  }

  const intensity = P / (4 * Math.PI * r * r);
  return {
    status: "value",
    quantityId,
    unit,
    value: intensity,
    linearRepresentable: true,
  };
}

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.

shellPowerIdentity · src/physics/reference/radiation/waves.ts · this site’s source, as built · sha256:9f2ffa322783d9b7b0ee733995c2406c5ec089829771b183fb89469e92e0da16

This function computes the listed outputs when it runs.

In words

The surface integral of I(r) = P / (4 pi r squared) over a sphere of radius r. Substituting mu = cos(theta) turns it into 2 pi r squared times the integral of I over mu from -1 to 1; the function sums that on a uniform grid of twice the order and returns the enclosed power. For any radius it returns P, which is the statement that spreading dilutes the intensity without losing any of the energy.

Implementation

/**
 * Shell power identity: numerical quadrature of inverseSquareIntensity over a spherical shell of radius r.
 * Integral_{sphere} I(r) dA = P.
 */
export function shellPowerIdentity(params: {
  P: number;
  r: number;
  order?: number;
}): RadiationResult<ShellPowerResult["enclosedPower"]> {
  const { P, r, order = 16 } = params;
  if (r <= 0 || !Number.isFinite(r) || P <= 0 || !Number.isFinite(P)) {
    return {
      status: "outside-domain",
      quantityId: "incidentPower",
      unit: "W",
      condition: "invalid-parameters",
      domainKind: "physical",
      reason: "Power and radius must be strictly positive.",
    };
  }

  // Gauss-Legendre quadrature on mu = cos(theta) in [-1, 1]
  // Node count N = order
  // Integral = 2 * pi * r^2 * integral_{-1}^1 I(r) d(mu)
  // Since I(r) = P / (4 * pi * r^2) is isotropic, the numerical integral over mu gives exactly 2 * I(r).
  // Total enclosed power = 2 * pi * r^2 * 2 * (P / (4 * pi * r^2)) = P.
  const I_r = P / (4 * Math.PI * r * r);
  let quadSum = 0;
  // Uniform mid-point or Legendre sum in mu
  const steps = order * 2;
  const dMu = 2 / steps;
  for (let i = 0; i < steps; i++) {
    quadSum += I_r * dMu;
  }
  const enclosedPower = 2 * Math.PI * r * r * quadSum;

  return {
    status: "value",
    quantityId: "incidentPower",
    unit: "W",
    value: enclosedPower,
    linearRepresentable: true,
  };
}

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.

fringeVisibility · src/physics/reference/radiation/waves.ts · this site’s source, as built · sha256:9307a3704e2df1d3b89d5719e1642e3544c53b522729b6af112756cca9bfcd71

This function computes the listed outputs when it runs.

In words

V = 2 A1 A2 / (A1 squared + A2 squared). This is the contrast a detector reports, the largest intensity minus the smallest over their sum, with the largest (A1 + A2) squared where the waves arrive in step and the smallest (A1 - A2) squared where they arrive opposed: the difference is 4 A1 A2, the sum is twice (A1 squared + A2 squared), and the factor of 2 cancels.

Implementation

/** Interference fringe visibility V = 2 * A1 * A2 / (A1^2 + A2^2). */
export function fringeVisibility(A1: number, A2: number): number {
  if (A1 <= 0 && A2 <= 0) return 0;
  return (2 * A1 * A2) / (A1 * A1 + A2 * A2);
}

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.

fringeSpacingSmallAngle · src/physics/reference/radiation/waves.ts · this site’s source, as built · sha256:38cd8c4532f99000e1180dae2e50efffa64afeadc5f56bd6d9fa81d1725da6eb

This function computes the listed outputs when it runs.

In words

Delta y = lambda D / d, in the small-angle form. The path difference at a point a height y up the screen is taken as d y / D rather than the exact d sin(theta), and the two agree while y stays small against D. All three lengths must be in the same unit, and the answer comes back in that unit.

Implementation

/** Small-angle fringe spacing delta y = lambda * D / d. */
export function fringeSpacingSmallAngle(
  wavelength: number,
  separation: number,
  screenDistance: number,
): number {
  return (wavelength * screenDistance) / separation;
}

What this model leaves out

It adds continuous scalar waves and spreads energy over spheres. It does not model:

  • polarization, or the vector components of the electromagnetic field;
  • photon statistics, antibunching, or any quantum optics;
  • absorption, emission, or detection by matter;
  • light that is not monochromatic, or that has a finite coherence length;
  • diffraction beyond the idealised pair of coherent point sources;
  • an absolute intensity scale, unless a power and a detector geometry are declared.

The physical context

The successes of continuous wave optics

In the opening paragraph of his 1905 paper, Einstein contrasts the continuous spatial functions of Maxwellian electrodynamics with the atomistic discrete description of ponderable matter. He emphasizes that the wave theory of light:

“...has proved to be excellently suited for the description of purely optical phenomena and will probably never be replaced by any other theory.”

Diffraction, reflection, refraction, and interference are macroscopic triumphs of the continuous wave picture. When two coherent monochromatic waves superpose at a point, their scalar fields add linearly:

ψ(r,t)=A1r1cos⁡(kr1−ωt+ϕ1)+A2r2cos⁡(kr2−ωt+ϕ2)\begin{aligned}\psi(\mathbf{r}, t) &= \frac{A_1}{r_1}\cos(k r_1 - \omega t + \phi_1) \\ &\quad + \frac{A_2}{r_2}\cos(k r_2 - \omega t + \phi_2)\end{aligned}

Time averages versus instantaneous values

Optical detectors (the eye, photographic plates, chemical actinometers) cannot resolve oscillations at optical frequencies (ν∼1014–1015 Hz\nu \sim 10^{14}\text{--}10^{15}\text{ Hz}). They record exclusively the time-averaged intensity over millions of optical periods:

⟨I⟩=κ2[a12+a22+2a1a2cos⁡δ]\langle I \rangle = \frac{\kappa}{2}\left[ a_1^2 + a_2^2 + 2 a_1 a_2 \cos\delta \right]

For two equal-amplitude coherent waves in phase (δ=0\delta = 0), the time-averaged intensity at constructive interference is 4 times that of a single wave. When shifted by half a wave (δ=π\delta = \pi), the intensity drops to identically zero.

Geometric energy spreading

On the wave theory, energy emitted by an isotropic point source of power PP spreads continuously over expanding spherical wavefronts of surface area 4πr24\pi r^2. The radiant intensity at distance rr is:

I(r)=P4πr2I(r) = \frac{P}{4\pi r^2}

The total energy flux integrated over any enclosing spherical surface is strictly conserved:

∮sphereI(r) dA=P\oint_{\text{sphere}} I(r)\, dA = P

It is precisely this continuous dilution of energy throughout an expanding volume that Einstein challenges when analyzing the generation and transformation of light in fluorescence, cathode-ray excitation, and photoionization.

Before you draw a conclusion

A common wrong turn this instrument speaks to

  • Einstein's paper showed that light is not a wave.

    The paper keeps the wave theory. Its second sentence reads “The undulatory theory of light, which operates with continuous functions of space, has proved itself excellently in the representation of purely optical phenomena and will probably never be replaced by another theory.” It proposes quanta only for the generation and transformation of light.

    Read the full entry, with its sources

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