Supplemental python code associated to arXiv: 2201.105529
Authors/Creators
- 1. University of St Andrews & Abdus Salam International Center for Theoretical Physics (ICTP)
- 2. Max-Planck-Institut für Quantenoptik
- 3. University of St Andrews
Description
This repository contains the Python code to generate the data and plots presented in the paper [1].
This code is however NOT suitable for general applications of the method introduced in [1]!
This code is merely a supplement to the specific example computations presented in [1]. For a general applicable implementation of the method please use the open source Python package OQuPy:
- GitHub: https://github.com/tempoCollaboration/OQuPy
- Documentation: https://oqupy.readthedocs.io/
- DOI: https://doi.org/10.5281/zenodo.4428316
[1] ... Gerald E. Fux, Dainius Kilda, Brendon W. Lovett, Jonathan Keeling, Tensor network simulation of chains of non-Markovian open quantum systems, arXiv:2201.05529.
Setup
*******
- Download and unzip the repository.
-
Install the Python dependencies:
$ pip install -r ./requirements.txt
Generate the plots from precomputed data
****************************************************
To generate the figures for the thermal XYZ spin chain from the precomputed data run:
$ python ./thermalXYZchainExample/A_08_plot-stuff.py
To generate the figures for the long XY spin chain from the precomputed data run:
$ python ./longXYchainExample/B_03_plot_figures.py
Generate the data from scratch
**************************************
Generating all results from scratch is rather time consuming (approx. 4 days on a 32 core cluster node). Therefor the computations are split into smaller chunks, which are organized in a pipeline fashion.
Dry-run computations
```````````````````````````````
Before running resource consuming "payload" computations one should first check that the pipeline works as expected by going through a computation with parameters that only take a few seconds to compute. For this every step of the pipeline as a 0-th parameter set.
Thermal XYZ spin chain
To perform a dry-run computation for the thermal XYZ spin chain first execute:
$ python ./thermalXYZchainExample/A_01_create_process_tensor.py 0$ python ./thermalXYZchainExample/A_02_single-bath-compute.py 0$ python ./thermalXYZchainExample/A_03_two-baths-ss-compute.py 0
Then for M = {0 ... 5} execute:
$ python ./thermalXYZchainExample/A_04_two-baths-ttc-compute.py 0 <M>
Then execute:
$ python ./thermalXYZchainExample/A_05_two-baths-collect.py 0$ python ./thermalXYZchainExample/A_06_spectrum_compute.py 0
Long XY spin chain
To perform a dry-run computation for the long XY spin chain execute:
$ python ./longXYchainExample/B_01_pt_compute.py 0$ python ./longXYchainExample/B_02_chain_compute.py 0
Payload computations
````````````````````````````````
Thermal XYZ spin chain
To perform the payload computation for the thermal XYZ spin chain execute:
For N = {1 ... 7} execute:
$ python ./thermalXYZchainExample/A_01_create_process_tensor.py <N>
For N = {1 ... 7} execute:
$ python ./thermalXYZchainExample/A_02_single-bath-compute.py <N>
For N = {1 ... 4} execute:
$ python ./thermalXYZchainExample/A_03_two-baths-ss-compute.py <N>
For N = {1 ... 4} and M = {0 ... 26} execute:
$ python ./thermalXYZchainExample/A_04_two-baths-ttc-compute.py <N> <M>
For N = {1 ... 4} execute:
$ python ./thermalXYZchainExample/A_05_two-baths-collect.py <N>
For N = {1, 2} execute:
-
$ python ./thermalXYZchainExample/A_06_spectrum_compute.py <N> -
$ python ./thermalXYZchainExample/A_07_collect-plot-data.py -
$ python ./thermalXYZchainExample/A_08_plot-stuff.py
Long XY spin chain
To perform the payload computation for the long XY spin chain execute:
For N = {1, 2} execute:
$ python ./longXYchainExample/B_01_pt_compute.py <N>
For N = {1 ... 4} execute:
-
$ python ./longXYchainExample/B_02_chain_compute.py <N> -
$ python ./longXYchainExample/B_03_plot_figures.py
Files
CodeForArXiv220105529.zip
Additional details
Related works
- Cites
- Software: 10.5281/zenodo.4428316 (DOI)
- Is supplement to
- Preprint: 10.48550/arXiv.2201.05529 (DOI)
Funding
- UK Research and Innovation
- Understanding and engineering dissipation in nanoscale quantum devices EP/T014032/1
- UK Research and Innovation
- EPSRC Centre for Doctoral Training in Condensed Matter Physics: Renewal of the CM-DTC EP/L015110/1
References
- Fux et. al, Supplemental python code associated to arXiv: 2201.105529.