This repository contains notebooks for a tutorial giving an introduction to using Jupyter Notebooks and using QuTiP and the krotov package to simulate and optimize the dynamics of a system of Rydberg atoms.
A recording of the tutorial is available on YouTube:
- Part 1: installing Miniconda, creating an
environment.yml
, creating a conda environment, Git, Github, installing Github Desktop, creating a git repository, running the Jupyter notebook interface - Part 2: Jupyter notebook basics, making git commits (snapshots) and pushing to Github, Cloning git repositories from Github, using
qutip
, usingmatplotlib
, usingkrotov
.
Questions/Problems?
-
Install miniconda [Part 1, 0:01:10]. If you have the more complete Anaconda, that's ok, too.
-
Install Github Desktop [Part 1, 1:00:47]
-
Clone the repository to your computer, using Github Desktop [Part 2, 0:24:42]
-
Open a shell, and navigate to the "project folder" (the cloned repository) [Part 2, 0:25:22]
-
Create the conda virtual environment for the project [Part 2, 0:25:48]:
conda env create -p .venv -f environment.yml
You only need to do this once per "checkout" of the repository. If you need additional packages, edit
environment.yml
, delete the.venv
folder, and re-create the environment. -
Activate the project environment (
conda activate .\.venv
on Windows [Part 1, 1:25:42],conda activate ./.venv
on macOS/Linux [Part 2, 0:29:00 (Mac)]. Note thatconda activate .venv
does not work! -
Run the jupyter notebook server [Part 1, 1:27:28 (Windows), Part 2, 0:29:27 (Mac)]:
jupyter notebook --debug
This should open the Jupyter notebook interface in your browser.
-
Activate the Jupyter Notebook Extensions. You'll want Execute Time and Table of Contents (2) [Part 1, 1:30:28]. You only need to do this once.
-
Open the notebooks and run them [Part 2, 0:30:10]
- Pro Git Book
- Conda Documentation
- Jupyter documentation
- Python tutorial
- Scipy.org. This links to the documentation for the most important packages in the scientific Python ecosystem (NumPy, SciPy, IPython, SymPy, pandas)
- QuTiP documentation. Package for the numerical description of quantum systems, with solvers for the Schrödinger and Liouville-von-Neumann equations
- krotov documentation. Optimization package on top of QuTiP