BBGKY dynamics for open (Lindbladian) quantum spin gases in a radiation field, averaged over phase point operators
The Lindblad dyamics that has been coded is
Here, the Pauli SU(2) representation is used, the Roman indices run through the lattice sites, and Greek indices run through the three spatial directions. A lattice in any dimensions and with any layout can be used, as long as the site index counting is flattened to 1d. Note that the initial condition is hard-coded to a fully x-polarized state.
The relevant terms (from left to right) are:
The module outputs
The code can be used in a single processor environment, or a multiprocessor grid using mpi4py, the Python bindings of the MPI standard.
Installation involves three steps. Install git, clone this code repository, install python and all dependencies and build/install the python module(s).
-
Installing git: If git is not already installed in your system, follow the instructions here.
-
Cloning this repository: If you are on any unix-like shell environment, whether an actual unix shell (like bash ), a graphical terminal emulator (like xterm, gnome-terminal, yakuake etc.) on Linux with X-Windows (Ubuntu, Debian, OpenSuse etc.) or an environment like Cygwin or MinGW on Microsoft Windows, just install git if necessary and run
$ git clone https://github.com/hariseldon99/lindblad_phasepoints $ echo $PWD
This causes git clone the repository to the path $PWD/dtwa_quantum_systems.
In other cases, refer to git setup guide and
git basics.
-
Install python and dependencies: If python is not already installed in your system, then refer to these general instructions to download and install python and the dependencies given in the 'External dependencies' section below. Alternatively, install a python distribution like anaconda and use it's internal package management to install the required dependencies.
-
Build and install the python module(s)
$ python setup.py build $ python setup.py install
The first command builds the python module "lindblad_phasepoints", as well as the optimized bbgky. The latter requires a BLAS library to be installed as a shared library. If that has been done already, and is in default paths given by ldconfig or LD_LIBRARY_PATH, the build should run correctly. Otherwise, edit the file setup.py and change the variables "blas_path" "blas_headers" to point to the path where the library and headers are installed.
If you do not wish to install in root space, run the install with the --user option. Alternatively, don't run the install (just the build), start a python shell (or write a python script) and run
>>> import sys
>>> sys.path.append("/path/to/build/directory/")
>>> import lindblad_phasepoints as ldb
Usage examples in python are shown below.
Example 1: Obtaining Documentation
>>> import lindblad_phasepoints as ldb
>>> help(dtwa)
>>> import lindblad_bbgky as lb
>>> help(lb)
###Relevant papers:
- PRM: arXiv:1510.03768 (2015)
- Wooters: Annals of Physics 176, 1–21 (1987)
- Anatoli : Ann. Phys 325 (2010) 1790-1852
- Mauritz: New J. Phys. 15, 083007 (2013)
- Schachenmayer: Phys. Rev. X 5 011022 (2015)
###Relevant docs for the bundled version of mpi4py reduce:
###External dependencies:
-
mpi4py - MPI for Python
__-MPI (Parallelizes the different samplings of the dtwa)
-
numpy - Numerical Python (Various uses)
-
scipy - Scientific Python
__-integrate
_| _-odeint (Integrates the BBGKY dynamics of the sampled state)
_| _-signal
_| _-fftconvolve (Used for calculating spin correlations)
-
tabulate - Tabulate module
__-tabulate (Used for dumping tabular data)
-
The bbgky dynamics module
__-gcc/automake (compilers for the C module)
__-cblas - Any BLAS library written in C
###TODO:
- Evaluate site correlations as functions of time and dump the whole data to parallel hdf5
- Docs! Docs! Lotsa work on the docs.
- MIGRATE TO PYTHON 3. CHANGE ALL TABS TO SPACES FOR INDENTATION