Error estimate for DMRG calculations

Hello. Glad to be the first commenter out there :slight_smile:
I got two questions:

  1. Are there any hints of choosing maxdim parameter values? Let’s assume I have fermionic Hubbard model on a 4*40 square lattice. Which value of maxdim would be enough to simulate it and how to estimate it?
  2. Is there a way to somehow estimate the precision of a specific DMRG simulation beforehand based on some known parameters and lattice configuration?
1 Like

Hello,

Welcome to the new forum and congratulations on being the first commenter!

Please try to read through the DMRG FAQs and let us know if that answers your questions about DMRG convergence. If not, we can try to clarify some points in the FAQ. We are hoping to gather answers to common DMRG questions in one place since we are often asked questions about DMRG convergence.

I think the DMRG FAQ can help you answer your first question. As for your second question, in general I would say no. Usually what you would want to know is the MPS bond dimension that would be needed to obtain some observable of interest like the energy or a correlation function up to a desired precision, since the MPS bond dimension determines the computational cost (time and memory) of running sweeps of DMRG.

The only cases I can think of where you would be able to determine error estimates for a certain model before running DMRG are:

  1. You can find previous work that studied the same model and gave error estimates as a function of bond dimension.
  2. You are dealing with an exactly solvable model where there are exact solutions for some related quantities like the entanglement, which can give you a rough idea of the bond dimensions you might need.

In specialized cases like free fermions, there are methods for directly forming the MPS approximation of a given free fermion state (for example [1504.07701] Compression of Correlation Matrices and an Efficient Method for Forming Matrix Product States of Fermionic Gaussian States or [1906.10144] Matrix product state algorithms for Gaussian fermionic states), which can give you a way to estimate what bond dimension you might expect. With that kind of approach you could get an estimate for the bond dimension of the mean field/Hartree-Fock approximation of the model you are interested in. However, if you are running DMRG in the first place, likely you are interested in a strongly interacting model so I imagine that approach would be of limited use.

For you or others who think that may be useful, I’ve written a Julia package (available here) which can help you form the MPS approximation of a free fermion state. This can have other useful applications beyond getting an idea for the MPS bond dimension of a certain state, such as forming mean field/Hartree-Fock starting states for DMRG to help improve the convergence of DMRG.

Cheers,
Matt

2 Likes

Welcome to the new forum and congrats on being the first to post!

I totally agree with Matt’s answer, and that unfortunately there are few ways to know in advance for some system what bond dimension (maxdim) will be needed to reach a certain accuracy. Though the idea of forming a free-fermion MPS is a really good one, when applicable, to get an idea using a faster method than DMRG.

One other thing I would add, which partially addresses your question #2, is that you can run a DMRG calculation in a “cutoff limited” way, meaning that you choose maxdim to be some very large value in the final few sweeps and then choose the cutoff parameter large enough so that the actual bond dimension DMRG selects is controlled or limited by the cutoff, and falls below the maxdim. For example if you set maxdim=10_000 for a system and then set cutoff=1E-5 you might see the actual bond dimension that DMRG uses become something only like 500 or 1000. The nice thing about running DMRG in this style is that as long as DMRG is not stuck in a local minimum, then the accuracy of the state it computes will be set by the cutoff and the bond dimension will be automatically ‘discovered’ or adapted to be the size necessary to guarantee you the accuracy you requested.

3 Likes

Indeed, the best way to get an estimate for the errors of DMRG for a given model is to run DMRG (starting with smaller bond dimensions/cutoffs at first)!

1 Like

Thanks for your comments. What do you mean by the accuracy of the state? Is it the norm of the difference between the two vectors?

Let’s say the algorithm gives \ket{\psi}, yet the ground state is \ket{\psi_0}. Does \ket{\psi} satisfy

\| \psi - \psi_0 \| < \epsilon

where \epsilon > 0 is the cutoff.

Hi Tingyu,
It’s a good question. Say one truncates a state using a “truncation error cutoff” (the parameter cutoff in many ITensor functions such as the truncate(::MPS) function).

Then on a particular bond of the MPS, an SVD is performed and a truncation carried out such that if the truncation error is set to \epsilon then

\frac{\sum_{n \in \text{discarded}} s^2_n}{\sum_n s^2_n} < \epsilon

where s_n are the singular values. The singular values which get discarded are the smallest ones.

Say the previous MPS before the truncation was \ket{\Psi} and the MPS after is called \ket{\Psi'}. Then the following relationship will hold:

\frac{\braket{\Psi|\Psi'}}{\braket{\Psi|\Psi}} = 1-\epsilon

This can be shown by using the canonical form of the MPS to show that inner products of the MPS with itself and with the truncated state are related to sums over the squared singular values.

It’s possible to relate the above formulas to the distance ||\ket{\Psi}-\ket{\Psi'}||^2 also. The way to do it is to expand the squared norm and then relate the various terms to the statements above.

Hope that helps!

1 Like