eureka
experiment 004 · quantum dynamics

The Wave Packet

A Gaussian state launched into a one-dimensional potential, evolving under the time-dependent Schrödinger equation. The packet spreads because the free dispersion relation is nonlinear; it tunnels through barriers because the equation is wave-like; it oscillates in a harmonic well because the eigenstates are equally spaced. Pick a potential, set the momentum, click the stage to drop the packet wherever you like, and watch quantum mechanics do its bookkeeping.

The equation

The one-dimensional time-dependent Schrödinger equation in natural units (ℏ = m = 1) is

i ∂t ψ(x, t)  =  −½ ∂x2 ψ(x, t)  +  V(x) ψ(x, t)

The initial state is a minimum-uncertainty Gaussian, ψ₀(x) = (2πσ²)−1/4 exp(−(x−x₀)²/(4σ²) + i k₀ x), which is centred at x₀ with mean momentum k₀ and real-space width σ. Narrow in position means wide in momentum — try σ = 0.3 and watch the packet disperse almost immediately.

Crank-Nicolson

The TDSE is integrated with the Crank-Nicolson scheme

(I + i Δt H/2) ψn+1  =  (I − i Δt H/2) ψn

which is second-order accurate in Δt, unconditionally stable, and — because its propagator is the Cayley transform of a Hermitian operator — exactly unitary. Norm is preserved to floating-point noise; the Δnorm readout is the cumulative drift, almost all of which is the absorbing mask at the edges doing its job.

Discretising the Laplacian on a uniform grid of 800 points makes the system complex-tridiagonal; one Thomas-algorithm sweep per step is O(N), so the solver comfortably does tens of thousands of steps per second in a browser tab.

What to look for

Free. A Gaussian under free propagation both translates and spreads. The group velocity is k₀; the spreading rate goes as σ(t) = σ √(1 + t²/(4σ⁴)). Narrow packets disperse faster than wide ones — the price of localisation.

Step. When V₀ < E, the packet clears the step with reduced wavelength (its kinetic energy has dropped). When V₀ > E, it turns around — but not before leaking an evanescent tail a short distance into the forbidden region.

Barrier. The headline demonstration. With V₀ > E = k₀²/2, the packet should classically be turned back at x ≈ 1.5 — yet a measurable fraction leaks through and emerges on the far side. The P(x > cut) readout is the transmission probability, computed past the barrier once the packet has cleared it. Bump V₀ up and watch the transmission fall off exponentially.

Harmonic. Drop the packet off-centre (k₀ = 0) and it executes coherent oscillations: the centre obeys the classical equation of motion while the width stays constant. This is the coherent state, the closest thing a quantum oscillator has to a classical trajectory.

Double well. A packet placed in one well broadens, leaks through the central barrier, and slowly populates the other well — a continuous-time version of the two-state tunnelling splitting. Expectation values of x oscillate between the two minima at the tunnelling frequency.

Controls

x₀, k₀, σ set the initial packet. V₀ scales the current potential. Click anywhere on the stage to drop the packet at that position. Reset rebuilds the state from the current sliders without changing the potential selection.

Caveats, noted plainly

The domain is bounded and so a small cosine-squared mask near the walls absorbs outgoing amplitude. That is why norm decays once a packet reaches the edge — it is leaving the universe, as far as this simulation is concerned, rather than reflecting off a wall. Inside the bulk, norm conservation is essentially exact.

← back to workshop