Loading [MathJax]/extensions/Safe.js
SciPost logo

SciPost Submission Page

TensorMixedStates: A Julia library for simulating pure and mixed quantum states using matrix product states

by Jérôme Houdayer, Grégoire Misguich

Submission summary

Authors (as registered SciPost users): Grégoire Misguich
Submission information
Preprint Link: scipost_202505_00038v1  (pdf)
Code repository: https://github.com/jerhoud/TensorMixedStates.jl
Code version: v1.1.0
Code license: GPL-3.0
Date submitted: May 16, 2025, 5:21 p.m.
Submitted by: Misguich, Grégoire
Submitted to: SciPost Physics Codebases
Ontological classification
Academic field: Physics
Specialties:
  • Condensed Matter Physics - Computational
  • Quantum Physics
Approaches: Theoretical, Computational

Abstract

We introduce TensorMixedStates, a Julia library built on top of ITensor which allows the simulation of quantum systems in presence of dissipation using matrix product states (MPS). It offers three key features: i) it implements the MPS representation for mixed states along with associated operations, in particular the time evolution according to a Lindblad equation or discrete time evolution using non-unitary gates (quantum channels), ii) it is based on ITensor, which has proven its effectiveness and which gives access to efficient low-level tensor manipulation as well state-of-the-art algorithms (like DMRG, TDVP, quantum numbers conservation and automated parallelization), finally iii) it presents a user-friendly interface allowing writing sophisticated simulations for pure and mixed quantum states in a few lines of code.

Current status:
Awaiting resubmission

Reports on this Submission

Report #2 by Anonymous (Referee 2) on 2025-6-20 (Invited Report)

Strengths

  1. TMS package presented in this manuscript is based on Julia’s ITensor, which allows applying the existing optimized routines and solutions to the case of open quantum many-body systems.
  2. The application examples are covering a wide set of physical systems and problems, showing the versatility of the developed instruments; the benchmarking tests are exceedingly provided.
  3. The package addresses a demonstrable need for the community of open quantum many-body systems; the added value as compared to existing software is clear.
  4. The documentation includes detailed instructions on downloading, installing and running the software. The userguide contextualizes the software, describes the logic of its workings.

Weaknesses

  1. Some parts of the text are written poorly with lots of jargon words, unclear formulations and grammar mistakes. The commented file contains the comments with improvement guidelines.
  2. The introduction to the tensor network techniques for open quantum system is rather brief and unclear. In the dedicated part of the commented file the authors can find the suggestions of improvements. I would also additionally suggest to include tensor-network diagrams to improve the reader's understanding.
  3. Some of the physics examples are there to merely demonstrate the scope of the TMS package. It would be much more interesting to include in-depth discussions on the limitations of the developed methods. In particular, it would be great to investigate the deviation of the numerics in the free fermion model (Fig. 4), in particular, studying the later dynamics and observe further deviations there (please see a comment to the corresponding figure content).
  4. Some of the figures (in particular, Figs. 1 and 2) contain legends that interfere with the plot content. This should be reconsidered.
  5. The steady-state solver is discussed very briefly in the manuscript, however it is not mentioned in the abstract. It is also demonstrated only for a single physics problem (Fig. 2). It leaves the reader puzzled whether this solver is implemented in the TMS package.
  6. The quantum number conservation in mentioned in the abstract as if it is implemented in the package. However, in the conclusion to the manuscript the authors indicate this feature as the subject of the future work. This point should be revisited by the authors.

Report

The submitted paper presents a new tensor network package based on Julia’s ITensor, and it is developed specifically for calculating the time dynamics of open quantum many-body systems. The authors first describe the main components of the developed package and then demonstrate its performance on several physics problems, involving various quantum systems (spin-1/2 particles, bosonic and fermionic systems) and time evolution regimes (continuous time evolution and discrete quantum circuits). The paper is well-structured, and the reader can get a clear idea about the scope of the package from reading the text. However, a few adjustments to the text as well as a couple of clarifications are necessary to improve the quality of the manuscript.

Requested changes

Please see the attached file with highlighted parts of the text and comments accompanying them. The comments contain the necessary changes as well as clarification requests to improve the quality of the submitted manuscript.

Attachment


Recommendation

Ask for minor revision

  • validity: high
  • significance: high
  • originality: good
  • clarity: ok
  • formatting: reasonable
  • grammar: below threshold

Report #1 by Anonymous (Referee 1) on 2025-6-10 (Invited Report)

Strengths

1) TMS provides a pathway to perform computations on open quantum systems building on ITensors, helping the users to apply already optimized tools to this usecase
2) TMS’s purpose and use cases are stated clearly
3) The user-friendliness is made evident
4) The authors provide a comprehensive guide through the various functionalities of TMS

Weaknesses

1) The specific implementation of the functions and algorithms native to TMS are not discussed
2) The presentation of the functionalities (sites, operators, algorithms…) is often not systematic but rather done by examples, which helps to give an immediate intuition on how to use TMS, but fails to ensure a comprehensive understanding of the most general use case

Report

The authors present a new software package called TensorMixedState (TMS), which builds on the existing ITensors package based on Julia. While ITensors enables the efficient manipulation of tensor network algorithms for pure states, the purpose of TMS is to provide a user-friendly software package with easy to implement specific actions that involve mixed quantum states (or pure and mixed quantum states, treated on the same footing). Specifically, this involves the development of routines that create matrix-product operators (MPOs) that implement operations of the type Tr($O\rho$), $O \rho O^{\dagger}$, $[O, \rho]$, $\{ O^{\dagger} O, \rho \}$, with the density-matrix $\rho$ interpreted as a vector.
The authors provide a description of the various objects featuring in the TMS library, such as operators, sites, algorithms, and measurements, as well as a high-level interface which gives the user more freedom to tune the system to specific needs. Finally, the authors present various cases of application of the TMS library, which they benchmark with analytical or prior numerical results.
Overall, the software package fills in a gap in the landscape of tensor network software packages, significantly facilitating the implementation of algorithms specific for open quantum systems, with just a few lines of code.
I recommend publication on Scipost, with a few changes required to improve clarity of some partes of the manuscript.

In addition, I have a some general questions/curiosity:
1) How does the performance of TMS compare to other software libraries? For example, for the evolution of unitary circuits there are well established algorithms and libraries that could be used to benchmark the performance of TMS.
2) Are there some tests implemented to check that the defined density-matrix, Lindbladian, Hamiltonian, and other objects implemented in TMS have the correct properties? (for example, checking that Tr($\rho$)=1 for a custom defined density-matrix, checking that the Hamiltonian is Hermitian and so on)
3) Do you plan to include routines that take care of symmetries, namely that preserve different symmetry sectors in the operators, states, and throughout the implemented algorithms?

Requested changes

1) Broadly, there should be some discussion addressing the details of how the TMS specific functions are implemented and optimized. The authors mention in the introduction that the novel functionality introduced by TMS are functions that create MPOs for the operations required in open systems such as Tr($O\rho$), $O \rho O^{\dagger}$, $[O, \rho]$, ${ O^{\dagger} O, \rho }$. However, the authors do not seem to further elaborate on how these functions are designed and optimized. In addition, it is not always clear which of the algorithms the authors have developed from scratch, and which are taken from ITensor, and there should be some details on the implementation for the novel ones (for example, TMS.approx_W?) 2) Section 1 (Introduction) should include a more comprehensive list of references supporting the statements (for instance references to relevant reviews in the fields mentioned, like cold atoms, trapped ions, development in quantum technologies, why is dissipation and decoherence often important). 3) At the end of Section 1, the reader would benefit from a brief content overview with a description of the organisation of the paper. 4) In section 2.2, the notation of equation (11) should be further clarified: what do the authors mean by "$T_i$ is a matrix whose elements are states of site $i$"? It would be useful to first define $\ket{\psi}$ as a sum of complex coefficients multiplying states, and then link the "simplified" notation of equation (11) to the usual/not simplified notation, where it becomes clear what are the indices of $T_i$ and how they are linked to the wave function. In general, the notation of this section could be more accurate. 5) Section 3.4: is it possible to specify states using generic linear combinations with complex coefficients? For example, to specify the state $a \ket{0} + b \ket{1}$ of a Spin(), with $a, b$ complex. For a system with 10 qubits (for example sys1), how can I specify different states for all the 10 qubits? It would be useful to expand the examples in this section to clarify these cases, possibly with an explanation of the function syntax in the general case. 6) In 3.5, it would be useful to specify that the dagger of an operator A can be obtained with dag(A)
7) In 3.5, for the example of $R_{xy}$, is there a simple way to type the tensor product symbol in Julia? If one should call a specific function, there should be the function in the code example. In general, this section could be more systematic, by explaining the syntax at a general level and then with examples (for the case of Hamiltonians, for example first write the equation for the Hamiltonian in a generic way), rather than by examples only, which can leave out more special cases. 8) The notion of OSEE should be defined in the introductory sections 9) Figure 2 should be made colour blind compatible 10) Would it be possible to show the data of Fig. 4 in Ref 37 in Fig. 2 as well? (I am not sure this can be done, if not, please ignore the comment) 11) Can the code snippets contained in the example sections be expanded? Alternatively, would it be possible to make the source code of the examples accessible from the documentation, with some text explaining the context and guiding the user through the implementation? I think it would be beneficial to be able to visualize in one place the code and the text explanation at the same time, to understand the details of how to write a comprehensive code running an explicit example.

Recommendation

Ask for minor revision

  • validity: high
  • significance: good
  • originality: ok
  • clarity: good
  • formatting: perfect
  • grammar: good

Login to report or comment