Crank-Nicolsan method is used for numerically solving partial differential equations. This program implements the method to solve a one-dimensinal time-dependent Schrodinger Equation (TDSE)
and we will analyze the solutions for Infinite Sqaure Well
WaveFunction.py
contains a WaveFunction class that has methods to initialize, solve, and calculate the expected position
TDSE_constants.py
and TDSE_functions.py
contain required constants and helper functions for the TDSE.
TDSE_plots.py
contains functions to generate plots of the real part of the wavefunction, the expected position, and an animated plot of the probability density over time.
solver.py
initilizes three WaveFunctions with different potentials and solve the TDSE using the Crank-Nicolsan method. It will also save the solutions as .npz
files in the same directory.
main.py
loads the saved solution data files and plots
Square_well.mp4
Harmonic.mp4
Double.mp4
The Ehrenfest theroem tells us that,
"For general systems, if the wave function is highly concentrated around a point
We can observe that both
We have a well-defined trajectory of the particle which corresponds to a trajectory of a classical particle under no external force.
Similarly, we can observe the centralized points of the wavefunction and the probability density. The expected position also mimics the behaviour of a classical particle on a string.
Unlike the previous parts, it is really hard to identify the centralized point of the wavefunction. This is not something that we would expect from a classical particle and the plot of the expected position also illustrate its special (quantum mechanical) behaviour. The trajectory doesn't follow any particular motion and doesn't resemble any classical trajectory.