quantum-mechanics
quantum-mechanics copied to clipboard
A collection of interactive notebooks to explain concepts of quantum mechanics and related topics
Interactive Notebooks: Quantum Mechanics and Computational Materials Science
Introduction
This is a repository for tutorials in quantum mechanics and computational materials science. Jupyter notebooks are converted into interactive web applications. Professors can use them to demonstrate knowledge in the classroom. Students can also use them for self-learning.

Local installation
One can clone this repository and install all the required packages locally. To do so (ideally in a fresh python virtual environment, to reduce risks of version clashes of some of the dependencies), run the following commands:
git clone https://github.com/osscar-org/quantum-mechanics.git
cd quantum-mechanics
pip install -r requirements.txt
Then, to view the notebooks in the form of a web application, you can type the following command in the terminal:
voila --template=osscar --VoilaConfiguration.enable_nbextensions=True notebook/
This will start the voila server and then open your default browser, where you can use the web application.
Content
Section 1: Quantum Mechanics
Here are the tutorials to demonstrate numerical solution for 1D Schrödinger equation.
Section 2: Band Theory of Crystals
Here are the tutorials to demonstrate the band theory of crystal systems.
Section 3: Molecule and Lattice Vibration
Section 4: Molecular Dynamics
| Name | Description | Notebook links | Materials Cloud |
|---|---|---|---|
| Verlet integration | Verlet integration | Verlet Integration |
Section 5: Statistical Mechanics
How to contribute
If you would like to contribute a new notebook to OSSCAR, see the guide to contributing on our website, where you can also find an example notebook template.
Note: the workflow for contributing a new notebook or modifying an existing notebook is as follows. First, ensure that you are up to date with the master branch by running
git checkout master
git pull
You can then go ahead and create a branch off master to work on your new notebook or modifying an existing notebook
git checkout -b new_notebook_branch
After making your changes, you can push this new branch to the remote quantum-mechanics repo and open a pull request for this branch to be merged with the master branch. After review, it can be merged and automatically deployed to the materials cloud server. This process is illustrated below.
Development

When you decide to extend or modify the notebook, please create a new branch from the current master branch by:
git checkout master
git branch your-branch
Once you create a pull request from your branch to the master, the workflows will automatically deploy the apps to the matcloud.xyz server. (it needs to pass the voila test workflow). You can check and review the deployed apps.
After merging the PR to the master branch, the web apps will be automatically deployed to the materialscloud.io server.
How to cite
When using the content of this repository, please cite the following article:
D. Du, T. Baird, S. Bonella and G. Pizzi, OSSCAR, an open platform for collaborative development of computational tools for education in science, Computer Physics Communications, 282, 108546 (2023). https://doi.org/10.1016/j.cpc.2022.108546
Acknowledgements
We acknowledge support from the EPFL Open Science Fund via the OSSCAR project.