whaley-group-berkeley / qspectra

Quantum simulations of nonlinear spectroscopy and dynamics for molecular aggregates
BSD 2-Clause "Simplified" License
16 stars 7 forks source link
molecular-aggregates python quantum-mechanics simulation spectroscopy

QSpectra: Nonlinear Spectroscopy for Molecular Aggregates

QSpectra is a Python package designed for fast and flexible calculations of non- linear spectroscopy signals on molecular aggregates, such as photosynthetic light-harvesting complexes. The focus is on solving approximate models of electronic dynamics under known effective Hamiltonians as open quantum systems.

The core idea is a dynamical model interface which allows for flexible composition of different dynamical models with different spectroscopy methods, as long as the equation of motion is a linear function of the system Hamiltonian.

To enable efficient calculations, all simulations are performed under the rotating wave approximation. Furthermore, because the effective Hamiltonians conserve the number of electronic excitations, each model (when practical) only propagates within the necessary fixed subspaces of Liouville subspace.

Although the QSpectra framework is written in Python, we expect that eventually submodules for new dynamical models may be written in a compiled language such as Fortran or C when if necessary for satisfactory performance.

Note (November 12, 2021): qspectra is no longer maintained. If you find it useful in your research, I encourage you to fork it on GitHub.

Install

First, make sure you're running Python 3 and have recent versions of numpy and scipy installed.

Then, clone the git repository and use pip:

git clone https://github.com/whaley-group-berkeley/qspectra.git
pip install -e qspectra

I highly recommend using -e flag, which keeps the install directory in-place for local development.

To view the example notebooks, you need jupyter. To run the unit tests, you need nosetests.

Features

Examples

Example notebooks demonstrating the features of QSpectra are included in the "examples" directory.