Numerical computation of the equilibrium-reduced density matrix for strongly coupled open quantum systems
This is a companion piece to Chen & Cheng (2022). See also Chen et al. (2024) for some follow-up work.
Code to replicate the figures in the corresponding paper can be found on Github.
Introduction¶
A quantum system is described by a Hamiltonian matrix . When the system is at thermal equilibrium at temperature , then the state of the system is described by the matrix
The function is called the partition function, and gives us access to all kinds of thermodynamic quantities such as the energy, specific heat, magnetization, etc.
Often we are interested in the state of some subsystem of the total system. This is represented by
where is the partial trace described below.
Exponentially big linear algebra¶
Computing the trace (and partial trace) of a given matrix is trivial. For the trace you just sum the diagonal entries, and for the partial trace you do something similarly easily. However, we are starting with not , and this presents some issues.
For a system with sites, the size of is . This means that even for reasonably small , storing a matrix is impossible. For instance, if , then is about one million, and storing a matrix of double precision floating point numbers (64 bits per number) would require over 8 terrabtyes of memory! Increasing by one quadruples the memory costs, so even if we have 8 terrabytes of memory, we’ll quickly run out for even just a bit larger.
Fortunately, typically has a very sparse representation, often with just nonzero entries. While this means we can store itself, is typically not sparse and therefore it is intractable to store. Moreover, even if we would store , computing it would be a big task!
Stochastic trace estimation¶
There are lots of algorithms for estimating using only matrix-vector products with . For instance, the Lanczos method for matrix function approximation (Lanczos-FA) is a common choice.
There are lots of nice overviews on stochastic trace estimation, and this blog post by Ethan Epperly is especially good. For our purposes, we only need to know that if is a vector for which (i.e. all the entries are uncorrelated), then
A simple way to generate such a is by taking each entry to be an independent standard normal random variable. We will call estimators of the form a quadratic trace estimator.
Partial trace estimation¶
Suppose we can partition a matrix as
Then the partial trace of is defined as
Note that each entry of the partial trace is obtained by taking the trace of a certain matrix. This suggests we can apply use quadratic trace estimators to approximate each of the entries of the partial trace! Indeed,
provides an unbiased estimator for .
Given independent and identically distributed copies of , we arrive at an estimator
- Chen, T., & Cheng, Y.-C. (2022). Numerical computation of the equilibrium-reduced density matrix for strongly coupled open quantum systems. The Journal of Chemical Physics, 157(6), 064106. 10.1063/5.0099761
- Chen, T., Chen, R., Li, K., Nzeuton, S., Pan, Y., & Wang, Y. (2024). Faster Randomized Partial Trace Estimation. SIAM Journal on Scientific Computing, 46(6), A3427–A3447. 10.1137/23m1620399