This project successfully developed and implemented a numerical framework for solving the two-dimensional, time-dependent Schrödinger equation. Using the Crank–Nicolson finite difference scheme, we were able to simulate quantum wave packet dynamics stably and accurately. The implicit method enabled comparatively large time steps to be taken while maintaining second-order accuracy in both space and time.

The C++ implementation leveraged the Armadillo library for efficient sparse linear algebra operations, enabling the simulation of systems with high spatial resolution. A key strength of the framework is its configurability via TOML input files, which allows for straightforward experimentation with various initial conditions, potential landscapes and discretisation parameters, eliminating the need for recompilation.

Our results demonstrate the numerical robustness of the approach. The total probability was conserved to within an order of \num{e-15} over the simulation duration, indicating excellent numerical stability. The simulations correctly reproduced fundamental quantum mechanical phenomena, including the diffraction and interference of a wave packet passing through single, double, and triple slit potentials. The characteristic interference patterns observed on a virtual detector screen qualitatively match theoretical expectations, validating the physical correctness of the implementation.

The framework's output of the complete wave function at each time step allows for maximum flexibility in post-processing. As demonstrated, this enables the computation of arbitrary observables, such as probability density slices at any spatial location, extending beyond the simple screen detection example.

Several extensions are promising for future work. For example, the potential function could be generalised to model more complex systems, such as quantum dots, wells or tunnelling barriers. Implementing absorbing boundary conditions, such as complex absorbing potentials (CAP) or perfectly matched layers (PML), would enable the simulation of scattering problems and open systems without reflections. Furthermore, adapting the code to leverage GPU acceleration or parallel computing techniques would enable the simulation of larger domains or three-dimensional systems, significantly expanding the range of physically interesting problems that can be explored.

In summary, this project provides a reliable and extensible foundation for the numerical investigation of time-dependent quantum mechanical phenomena in two dimensions, bridging the gap between theoretical concepts and computational experimentation.
