This project presents a numerical simulation of quantum tunneling using the time-dependent Schrödinger equation.
The simulation models the propagation of a Gaussian wave packet traveling toward a rectangular potential barrier. When the wave packet reaches the barrier, part of the probability density reflects while another portion penetrates and emerges on the other side.
This behavior demonstrates the fundamental quantum mechanical phenomenon known as quantum tunneling, where particles can pass through energy barriers even when their energy is lower than the barrier height.
The Schrödinger equation is solved numerically using the Split-Step Fourier Method, a spectral technique widely used in computational quantum mechanics. The method alternates between position space and momentum space using the Fast Fourier Transform (FFT) to efficiently compute the wavefunction evolution.
Through this simulation we can visualize several important physical effects:
- propagation of a localized quantum wave packet
- interaction of the wave packet with a potential barrier
- partial reflection and transmission of probability density
- conservation of total probability
- dependence of tunneling probability on barrier height and width
The project also performs parameter sweeps to analyze how tunneling probability changes when the barrier properties are varied.
The system is governed by the time-dependent Schrödinger equation
where
- ( \psi(x,t) ) is the wavefunction
- ( V(x) ) is the potential energy
- ( m ) is the particle mass
- ( \hbar ) is the reduced Planck constant
The particle is initialized as a Gaussian wave packet
where
- (x_0) = initial position
- (\sigma) = packet width
- (k_0) = central momentum
The approximate kinetic energy of the packet is
The simulation uses a rectangular potential barrier
where
- (V_0) = barrier height
- (a) = barrier width
If the particle energy satisfies
classically the particle would be completely reflected.
Quantum mechanics allows a finite transmission probability, producing tunneling.
The wavefunction is evolved in time using the Split-Step Fourier Method.
The time evolution operator is approximated as
where
- (T) is the kinetic operator
- (V) is the potential operator
The kinetic step is computed in momentum space using the Fast Fourier Transform (FFT).
This approach provides an efficient and stable numerical method for simulating quantum wave packet dynamics.
The Gaussian wave packet approaches the barrier. Part of the packet reflects while another portion tunnels through the barrier.
The simulation preserves total probability with extremely small numerical error.
Increasing the barrier height decreases the tunneling probability.
Increasing the barrier width also reduces tunneling probability.
This plot verifies numerical stability by showing convergence as the time step is reduced.
Clone the repository
git clone https://github.com/Umayrutmaan/quantum-tunneling-wavepacket-simulation.git
cd quantum-tunneling-wavepacket-simulationInstall dependencies
pip install -r requirements.txtRun the simulation
python src/tunneling_simulation.pyThe generated plots will be saved inside the results folder.
quantum-tunneling-wavepacket-simulation
│
├── src
│ └── tunneling_simulation.py
│
├── results
│ ├── wavepacket_density.png
│ ├── norm_conservation_error.png
│ ├── transmission_vs_height.png
│ ├── transmission_vs_width.png
│ └── convergence_dt.png
│
├── requirements.txt
├── README.md
└── LICENSE
- Python
- NumPy
- Matplotlib
- Fast Fourier Transform (FFT)
This project demonstrates how computational methods can be used to study quantum mechanical systems. It combines physics concepts with numerical algorithms and visualization to explore wave-packet propagation, scattering, and quantum tunneling.
The work serves as a small computational physics study of quantum dynamics and numerical simulation.
Umayr Utmaan
Physics student interested in quantum mechanics, computational physics, and numerical simulation.




