Giter Club home page Giter Club logo

quantum-mechanics's Introduction

Interactive Notebooks: Quantum Mechanics and Computational Materials Science

Voila test

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.

example example

  • Try on Materials Cloud (fast, a few seconds to load) Materials Cloud Tool osscar-qmcourse

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.

Name Description Notebook links Materials Cloud
One Quantum Well The solution for 1 quantum well One Quantum Well Materials Cloud Tool osscar-qmcourse
Two Quantum Wells The solution for 2 quantum wells Two Quantum Wells Materials Cloud Tool osscar-qmcourse
Asymmetric Well Avoided crossing in an asymmetric well Asymmetric Well Materials Cloud Tool osscar-qmcourse
SOFT Split operator Fourier transform method SOFT Materials Cloud Tool osscar-qmcourse
MSOFT Multiple Split operator Fourier transform method MSOFT Materials Cloud Tool osscar-qmcourse

Section 2: Band Theory of Crystals

Here are the tutorials to demonstrate the band theory of crystal systems.

Name Description Notebook links Materials Cloud
FFT and Planewaves Fourier Transforms and Plane-Wave Expansions FFT and Planewaves Materials Cloud Tool osscar-qmcourse
Free Electron Free-electron Bands in a Periodic Lattice Free Electron Materials Cloud Tool osscar-qmcourse
Density of States Density of States (DOS) Density of States Materials Cloud Tool osscar-qmcourse
Pseudopotentials Norm-conserving pseudopotentials Pseudopotentials Materials Cloud Tool osscar-qmcourse
Brillouin Zone Brillouin Zone Brillouin Zone Materials Cloud Tool osscar-qmcourse

Section 3: Molecule and Lattice Vibration

Name Description Notebook links Materials Cloud
Phonon 1D lattice vibration for one dimensional system Phonons 1D Materials Cloud Tool osscar-qmcourse
Phonon 2D lattice vibration for two dimensional systems Phonon 2D Materials Cloud Tool osscar-qmcourse
Molecular Vibrations introduce to molecular vibrations Molecular Vibration Materials Cloud Tool osscar-qmcourse

Section 4: Molecular Dynamics

Name Description Notebook links Materials Cloud
Verlet integration Verlet integration Verlet Integration Materials Cloud Tool osscar-qmcourse

Section 5: Statistical Mechanics

Name Description Notebook links Materials Cloud
Metropolis Monte Carlo Metropolis-Hastings Monte Carlo Metropolis Monte Carlo Materials Cloud Tool osscar-qmcourse
Monte Carlo Integration Monte Carlo Integration Monte Carlo Integration Materials Cloud Tool osscar-qmcourse
Ising Model Ising Model Ising Model Materials Cloud Tool osscar-qmcourse

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

explained

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.

quantum-mechanics's People

Contributors

dou-du avatar dependabot[bot] avatar taylor-96 avatar lykex avatar giovannipizzi avatar eimrek avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.