MPSDynamics
Tensor network simulations for finite temperature, open quantum system dynamics
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 73 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org, aps.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.5%) to scientific vocabulary
Keywords
Repository
Tensor network simulations for finite temperature, open quantum system dynamics
Basic Info
- Host: GitHub
- Owner: shareloqs
- License: gpl-3.0
- Language: Julia
- Default Branch: master
- Homepage: https://shareloqs.github.io/MPSDynamics.jl/
- Size: 9.02 MB
Statistics
- Stars: 73
- Watchers: 3
- Forks: 9
- Open Issues: 2
- Releases: 2
Topics
Metadata Files
README.md

MPSDynamics.jl
Tensor network simulations for finite temperature, open quantum system dynamics.
This package is intended to provide an easy to use interface for performing tensor network simulations on Matrix Product States (MPS). MPSDynamics.jl is a versatile package which supports both chain and (loop-free) tree MPS, as well as providing a choice of several time evolution algorithms. The package also provides strong support for the measurement of observables, as well as the storing and logging of data, which makes it a useful tool for the study of many-body physics. The package was originally developed with the aim of studying open system dynamics at finite temperature using the T-TEDOPA mapping [^1], however the methods implemented can equally be applied to other areas of physics.
The methods currently implemented are
- 1-site TDVP on tree and chain MPS [^2]
- 2-site TDVP on chain MPS [^2]
- a variant of 1-site TDVP with dynamic bond-dimensions on chain MPS [^3]
The elementary tensor operations are implemented in all cases using the TensorOperations.jl package.
Installation
The package may be installed by typing ] in a Julia REPL to enter the package manager, and then run the command
julia
pkg> add MPSDynamics
Usage
The basic usage is as follows. First, include the package.
julia
using MPSDynamics
To set up a simulation we require an MPS representing our initial wave-function and a Matrix Product Operator (MPO) representing our Hamiltonian.
MPSDynamics.jl contains various functions for generating MPSs and MPOs used for simulating certain models, but no attempt is made to be comprehensive. For generic MPO construction, one can use the ITensors.jl package and convert the resulting object into a form compatible with MPSDynamics.jl using the function MPOtoVector.
In this example we will consider the spin-boson model. First we define parameters and generate the MPO.
```julia d=6 # number of Fock states of the chain modes N=30 # length of the chain
α = 0.1 # coupling strength Δ = 0.0 # tunneling ω0 = 0.2 # TLS gap s = 1 # ohmicity cpars = chaincoeffs_ohmic(N, α, s)
H = spinbosonmpo(ω0, Δ, d, N, cpars)
```
Then we create the MPS.
julia
ψ = unitcol(1,2)
A = productstatemps(physdims(H), state=[ψ, fill(unitcol(1,d), N)...]) # MPS
This will generate a product state MPS with local Hilbert space dimensions corresponding to the MPO H, representing the
spin in the up state (ψ) and the bath in the vacuum state.
We may then wish to construct some observables to measure along the trajectory. For example
julia
ob1 = OneSiteObservable("sz", sz, 1)
creates an object which represents the measurement of the expectation of $\sigma_z$ on the first site of the chain, i.e. on the spin.
The string passed to the first argument is just a label that will be used to retrieve the measurement data after the
run. Any type Type can be used as an observable by defining a function measure(A, ob::Type), where A is an MPS.
We may also wish to measure the bath observables.
julia
ob2 = OneSiteObservable("chain mode occupation", numb(d), (2,N+1))
This will measure the number operator (truncated to d Fock states) on all chain modes, i.e. on sites 2 to N+1 inclusive.
It is also possible to measure two-site observables, for example
julia
import MPSDynamics: disp
ob3 = TwoSiteObservable("SXdisp", sx, disp(d), [1], collect(2:N+1))
will measure $\langle\sigmax\hat{q}i\rangle$ where $\hat{q}_i$ is the displacement operator of the chain site and the index i runs over all chain sites.
Finally we launch the simulation with the function runsim.
```julia dt = 0.5 T = 30.0
A, dat = runsim(dt, T, A, H; name = "ohmic spin boson model", method = :TDVP1, obs = [ob2,ob3], convobs = [ob1], params = @LogParams(N, d, α, Δ, ω0, s), convparams = [2,4,6], verbose = false, save = true, plot = true, ); ```
This will propagate the MPS up to time T in time steps of dt. The simulation will be performed using 1-site TDVP with
bond-dimensions of 2, 4 and 6 in order to check for convergence. The observables supplied to convobs will be measured
at every time step for every bond-dimension, while the observables supplied to obs will only be measured for the last
(most accurate) convergence parameter supplied to convparams.
The final MPS is returned to A and the measurement data is returned to dat. If the option save=true is used the
data will also be saved to a file. The directory in which data should be saved may be passed to the keyword argument
savedir; by default the save directory is ~/MPSDynamics, which will be created if it doesn't exist (if using Windows
the slashes will need to be reversed). The data directory name can be changed with the keyword argument unid.
If the option plot=true is used, plots for 1D observables will be automatically generated and saved along with the data.
Otherwise plots can be produced from dat, e.g.
Julia
using Plots
plot(dat["data/times"], dat["convdata/sz"],label=["Dmax=2" "Dmax=4" "Dmax=6"], xlabel="t",ylabel="sz", title="")
heatmap(dat["data/times"], collect(1:N), abs.(dat["data/SXdisp"][1,:,:]), xlabel="t",ylabel="i", title="")


The data is stored in the JLD format which is based on HDF5. Loading the data in Julia using the JLD package will recover the full type information of the Julia variables that were stored. At the same time the HDF5 format is natively supported across many platforms and languages. For example, to load the spin-z data in Mathematica one could do
mathematica
Import["~/MPSDynamics/XXXXX/dat_XXXXX.jld",{"HDF5","Datasets","/data/sz"}]
Documentation
https://shareloqs.github.io/MPSDynamics.jl/
Publications
Publications which make use of MPSDynamics: * Lacroix et al. Making quantum collision models exact, Commun. Phys. 8, 268, July 2025 * https://doi.org/10.1038/s42005-025-02201-2
Le Dé et al. Impact and Interplay of Quantum Coherence and Dissipative Dynamics for Isotope Effects in Excited-State Intramolecular Proton Transfer, J. Phys. Chem. Lett., February 2025
Le Dé et al. Extending Non-Perturbative Simulation Techniques for Open-Quantum Systems to Excited-State Proton Transfer and Ultrafast Non-Adiabatic Dynamics, J. Chem. Theory Comput., October 2024
Lambertson et al. Computing Linear Optical Spectra in the Presence of Nonadiabatic Effects on Graphics Processing Units Using Molecular Dynamics and Tensor-Network Approaches, J. Chem. Phys., 161, 114101, September 2024
Lacroix et al. Connectivity Matters: Impact of Bath Modes Ordering and Geometry in Open Quantum System Simulation with Matrix Product States, arXiv e-print, September 2024
Lacroix et al. MPSDynamics.jl: Tensor network simulations for finite-temperature (non-Markovian) open quantum system dynamics, J. Chem. Phys., 161, 084116, August 2024
Le Dé et al. Managing Temperature in Open Quantum Systems Strongly Coupled with Structured Environments, J. Chem. Phys. 160, 244102, June 2024
Hunter et al. Environmentally Driven Symmetry Breaking Quenches Dual Fluorescence in Proflavine. J.Phys. Chem. Lett. 15, 4623−4632, April 2024
Lacroix et al. From Non-Markovian Dissipation to Spatiotemporal Control of Quantum Nanodevices. Quantum 8, 1305, April 2024
Riva et al. Thermal cycle and polaron formation in structured bosonic environments. Phys. Rev. B 108(19):195138, November 2023
Lacroix et al. Unveiling non-Markovian spacetime signaling in open quantum systems with long-range tensor network dynamics. Phys. Rev. A 104(5):052204, November 2021
Dunnett et al. Influence of non-adiabatic effects on linear absorption spectra in the condensed phase: Methylene blue. J. Chem. Phys. 155(14):144112, October 2021
Dunnett and Chin. Simulating quantum vibronic dynamics at finite temperatures with many body wave functions at 0K. Front. Chem. 8, January 2021
Dunnett and Chin. Matrix Product State Simulations of Non-Equilibrium Steady States and Transient Heat Flows in the Two-Bath Spin-Boson Model at Finite Temperatures. Entropy 23(1), January 2021
Data Repositories
Exact Spin-Boson-Model Tunneling Dynamics with Time Dependent Variation Matrix Product States (TDVMPS). Barrier height and temperature parameter space.
Real-time benchmark dynamics of the Ohmic Spin-Boson Model computed with Time-Dependent Variational Matrix Product States. (TDVMPS) coupling strength and temperature parameter space.
Citation
If you use the package in your research, please consider citing it. You can add the Zenodo record and the software paper to your BibTex file:
```tex @misc{mpsdynamics_zenodo, title = {shareloqs/{MPSDynamics}: v1.1}, shorttitle = {{MPSDynamics}.jl: v1.1}, url = {https://doi.org/10.5281/zenodo.11400776}, abstract = {Tensor network simulations for finite temperature, open quantum system dynamics}, publisher = {Zenodo}, author = {Dunnett, Angus J. and Lacroix, Thibaut and Riva, Angela and Le Dé, Brieuc}, month = may, year = {2024}, doi = {10.5281/zenodo.11400776}, }
@article{mpsdynamicsjl_2024, title = {{MPSDynamics}.jl: {Tensor} network simulations for finite-temperature (non-{Markovian}) open quantum system dynamics}, volume = {161}, issn = {0021-9606}, shorttitle = {{MPSDynamics}.jl}, url = {https://doi.org/10.1063/5.0223107}, doi = {10.1063/5.0223107}, number = {8}, journal = {The Journal of Chemical Physics}, author = {Lacroix, Thibaut and Le Dé, Brieuc and Riva, Angela and Dunnett, Angus J. and Chin, Alex W.}, month = aug, year = {2024}, pages = {084116}, } ```
How to Contribute
Contributions are welcome! Don't hesitate to contact us if you * found a bug; * have a suggestion on how to improve the code and/or documentation; * would like to get involved in writing code and/or documentation.
Feel free to open an issue on Github. You will find guidelines in the Contributing file :)
References
[^3]: A. J. Dunnett & A. W. Chin, Physical Review B, 104(21), 214302 (2021)
Owner
- Name: Shared Library for Open Quantum Systems
- Login: shareloqs
- Kind: organization
- Repositories: 1
- Profile: https://github.com/shareloqs
Research collaboration to investigate open quantum systems dynamics
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: MPSDynamics.jl
message: >-
If you use this software, please cite it
type: software
authors:
- given-names: Angus J.
family-names: Dunnett
orcid: 'https://orcid.org/0000-0002-8579-7826'
- given-names: Thibaut
family-names: Lacroix
orcid: 'https://orcid.org/0000-0002-5190-040X'
- given-names: Angela
family-names: Riva
orcid: 'https://orcid.org/0009-0005-8509-9162'
- given-names: Brieuc
family-names: Le Dé
orcid: 'https://orcid.org/0000-0001-6004-0758'
identifiers:
- type: doi
value: 10.5281/zenodo.5106434
description: Zenodo Repository
- type: doi
value: 10.1063/5.0223107
description: J. Chem. Phys. Paper
url: 'https://github.com/shareloqs/MPSDynamics'
abstract: >-
Tensor network simulations for finite temperature, open
quantum system dynamics
license: GPL-3.0
preferred-citation:
type: article
authors:
- given-names: Thibaut
family-names: Lacroix
orcid: 'https://orcid.org/0000-0002-5190-040X'
affiliation: Institute of Theoretical Physics, Ulm University
- given-names: Brieuc
family-names: Le Dé
orcid: 'https://orcid.org/0000-0001-6004-0758'
affiliation: Sorbonne Université, CNRS, Institut des NanoSciences de Paris
- given-names: Angela
family-names: Riva
orcid: 'https://orcid.org/0009-0005-8509-9162'
affiliation: LPENS, Département de Physique, École Normale Supérieure, Centre Automatique et Systèmes (CAS), MINES ParisTech, Université PSL, Sorbonne Université, CNRS, Inria
- given-names: Angus J.
family-names: Dunnett
orcid: 'https://orcid.org/0000-0002-8579-7826'
affiliation: Multiverse Computing
- given-names: Alex W.
family-names: Chin
orcid: 'https://orcid.org/0000-0001-7741-5915'
affiliation: Sorbonne Université, CNRS, Institut des NanoSciences de Paris
doi: "10.1063/5.0223107"
journal: "The Journal of Chemical Physics"
month: 8
title: "MPSDynamics.jl: Tensor network simulations for finite-temperature (non-Markovian) open quantum system dynamics"
issue: 8
volume: 161
year: 2024
GitHub Events
Total
- Create event: 1
- Commit comment event: 2
- Release event: 1
- Watch event: 9
- Issue comment event: 1
- Push event: 21
- Pull request event: 5
Last Year
- Create event: 1
- Commit comment event: 2
- Release event: 1
- Watch event: 9
- Issue comment event: 1
- Push event: 21
- Pull request event: 5
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 3
- Average time to close issues: N/A
- Average time to close pull requests: about 6 hours
- Total issue authors: 0
- Total pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 3
- Average time to close issues: N/A
- Average time to close pull requests: about 6 hours
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- BrieucLD (2)
- emile-cochin (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 8 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 2
juliahub.com: MPSDynamics
Tensor network simulations for finite temperature, open quantum system dynamics
- Homepage: https://shareloqs.github.io/MPSDynamics.jl/
- Documentation: https://docs.juliahub.com/General/MPSDynamics/stable/
- License: GPL-3.0
-
Latest release: 1.2.0
published 10 months ago
Rankings
Dependencies
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite