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.