Home / Science / Physics / Quantum mechanics / Wave packet tunnellingTool #924

Wave packet animator: tunnelling, reflection and transmission through barriers

Send a Gaussian wave packet at a rectangular barrier, double barrier, step, well or smooth barrier and watch it split into reflected and transmitted parts. The time evolution runs in your browser by the split-step Fourier method, and the reflection and transmission it finds are compared with the exact stationary transmission averaged over the packet's energies.

Keep it one tap away for everyday use.

Bookmark Wave packet tunnelling?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Barrier
  2. Packet
  3. Evolve
  4. R and T
Nothing is uploadedWorks offline once open

Barrier and packet

The barrier sits at x = 0 and the packet starts on the left moving right. E₀ is the packet's mean kinetic energy; σ is the spread of |ψ|² in position (a wider packet has a sharper energy). The outer 12 % of the window on each side soaks the wave up, so nothing wraps round. Natural units: ħ = m = 1. Electron units: x in nm, energies in eV, time in fs. Example values are made up.

Reflection and transmission

Download

What it does

A quantum particle is not a little ball but a wave packet: a bump of probability that moves and spreads. When it meets a barrier higher than its energy, a classical ball would always bounce back. The packet does something else: part of it tunnels through and part is reflected. Even a barrier lower than the energy reflects some of the wave, and a well can too.

This tool sets up a Gaussian packet on the left, moving right, and solves the time-dependent Schrödinger equation iħ ∂ψ/∂t = −(ħ²/2m) ∂²ψ/∂x² + V(x) ψ by the split-step Fourier method: each small time step applies half the potential, then the kinetic energy exactly in momentum space (via a fast Fourier transform), then the other half of the potential. You can play the result as an animation and scrub through time.

At the end it adds up how much probability went left (R) and right (T), and compares T with the stationary answer: the exact plane-wave transmission T(E) from the transfer-matrix method, averaged over the range of energies the packet contains.

How to use it

  1. Choose natural units (ħ = m = 1) or electron units (nm, eV and fs, with the electron’s mass).
  2. Pick the potential: a rectangular barrier, a double barrier (two barriers with a gap, which shows resonant tunnelling), a step, a square well or a smooth Gaussian barrier. Set its height or depth and width.
  3. Set the packet’s energy E₀, its width σ and its start position. A wide packet has a narrow spread of energies, so it behaves more like a single plane wave.
  4. The window and grid points set the simulation box; the outer 12 % on each side absorbs the wave so nothing wraps round. Leave run time blank for an automatic time that lets the packet clear the barrier.
  5. Press Play, or drag the time slider.

Worked example

The page opens with natural units, a rectangular barrier of height V₀ = 1.25 and width 1.5, and a packet of energy E₀ = 1.125, width σ = 4, starting at x = −20. The energy is below the top of the barrier, yet the result is R = 64.4 %, T = 35.6 %: over a third of the packet tunnels through. The stationary transmission averaged over the packet’s energies is 0.3560, against 0.3562 from the simulation, while the plane-wave value at exactly E₀ is 0.3474; the difference comes from the higher-energy part of the packet, which tunnels more easily. Switch to the double barrier with a gap of 3: T(E) now has sharp resonance peaks, and the transmission is 26.2 %, with some of the packet lingering between the barriers before it leaks out.

Tips

  • If the simulation and stationary T differ by more than a few parts in a thousand, use more grid points or a wider window, or lengthen the run.
  • The T(E) chart shows the whole stationary transmission curve, with the packet’s energy spread as a dashed bump: the simulation’s T is roughly the curve averaged under the bump.
  • Electron units give real-world sizes: a 0.2 eV electron through a 1 nm, 0.3 eV barrier transmits about 13 %.

FAQ

Why does the packet reflect from a well? Any sudden change in potential reflects some of a wave, just as light partly reflects from glass.

Is the simulation exact? It is accurate to second order in the time step, and the grid is fine enough to resolve the waves; the tests check it against an independent NumPy implementation and the exact stationary result. It is for study and planning, not a substitute for professional judgement.

Does anything get uploaded? No. Everything is computed in your browser.

Where the numbers come from

  • Split-step Fourier method (Strang splitting) for the time-dependent Schrödinger equation: Feit, M. D., Fleck, J. A. and Steiger, A. (1982), Journal of Computational Physics 47, 412 to 433; the standard textbook method.
  • Transmission through piecewise-constant potentials by transfer matrices, and the closed-form rectangular-barrier and step results: standard textbook formulas, for example Griffiths, D. J., Introduction to Quantum Mechanics.
  • ħ, ħc and the electron rest energy: CODATA 2018 values, rounded.
  • Checked against an independent NumPy split-step simulation, SciPy solve_ivp integration of the stationary equation and SciPy quad for the packet average, written for the tests.
  • All example barriers and packets are made up.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Related tools

1D Schrödinger solver #923 Choose a textbook potential, type a formula or draw your own, and get the lowest energy levels and wavefunctions of the one-dimensional Schrödinger equation by the matrix (finite-difference) method, with the exact levels alongside for the box, harmonic oscillator, finite well, Morse, linear and Pöschl–Teller potentials. Water wave calculator #139 From a wave's period, height and the water depth, get the wavelength (solving the dispersion relation exactly), phase and group speed, energy and power, orbital velocity at the bed, then follow the wave into shallow water with shoaling and refraction to find where and how high it breaks, and the breaker type. Publication plot maker #27 Paste columns or open a CSV or Excel file and get a clean scientific figure with error bars, sized for a journal column. Download vector SVG or PDF, or PNG at 300 or 600 dpi. Your data stays in your browser. Hydrogen orbital viewer #925 See any hydrogen-like orbital up to n = 7, real (pₓ, d_z², f_xyz ...) or complex: a slice of ψ coloured by sign, a turnable cloud of dots drawn from |ψ|², and the radial function and radial probability, with the energy, mean and most probable radius, nodes and the radius holding 90 % of the electron. Spin and Bloch sphere #926 Start a spin-½ or qubit in any state, apply H, X, Y, Z, S, T and rotations about any axis, and watch its path on a turnable Bloch sphere with the final amplitudes and probabilities. Drive it with a Rabi frequency and detuning, add T1 and T2 relaxation, and see the oscillation, the π-pulse length and the steady state. Quantum circuit simulator #927 Write or open an OpenQASM 2.0 program, or build a circuit gate by gate, and simulate it exactly in your browser for up to 20 qubits: circuit diagram, outcome probabilities and simulated shot counts, each qubit's Bloch vector, the full state vector, and the circuit saved back as OpenQASM 2.0.