Inspiration
We have taken courses regarding quantum mechanics, ODEs, and numerical methods, and we felt inspired to use what we learned in this Hackathon as it would further increase our mastery in the subject as well as help us develop research skills.
What it does
The program visualizes the wavefunctions of quantum particles trapped in one and two-dimensional infinite quantum wells, as well as plots numerically estimated solutions to linear and non-linear 1st and 2nd order O.D.E.s using the Euler, RK2, and RK4 estimation methods.
How we built it
We developed the mathematics for the quantum wells behind the scenes to implement a generalized function that takes any energy inputs and visualizes the respective wavefunctions. We individually tested the different numerical methods for 1st and 2nd order ODEs to make sure that everything was functioning properly. Once everything was in order, we brought it all together in a single program.
Challenges we ran into
We faced a few issues regarding the stability of the Euler estimation method with non-linear 2nd order O.D.E.s, as well as choosing the right domain and step size to display the difference in accuracy of the Euler, RK2, and RK4 estimation methods.
Accomplishments that we're proud of
We are very proud with how the visualizer for the two-dimensional quantum infinite well turned out. It provides very smooth curves that distinctly shows where the peaks and troughs of the wavefunction are.
What we learned
We learned that generalizing programs for user inputs is a difficult task, as there are many issues that can occur when the user input does not match what the program is expecting.
What's next for The Quantum Visualizer
The next step we would take is to allow for any input of 1st or 2nd order ODE, similar to how Desmos allows users to input functions, and develop a generalized algorithm that allows the program to numerically estimate the ODE the user wants to see. Additionally, we would work towards generalizing the program to allow for any order of ODE.
How to start
Use the file Start.py in GitHub linked
Log in or sign up for Devpost to join the conversation.