I wish good health for all developers and users these days.
My question is about DMRG process,
We know that in DMRG procedure, while the size of the system grows, just the most important eigenvectors are kept (in each iteration).
I think the 'MAXSTATES' in the DMRG code of ALPS package illustrates the maximum number of states from diagonalizing the reduced density matrix. Since the number of such states is less than the number of our system's state then we have an error in estimating energy of the system. But a question has occupied my mind: Does it make sense to ask the code to give the ground state eigenvector? Because with keeping a few numbers of the system's eigenvectors, I think in the last iteration, the output eigenvector is not corresponded to the whole system from the size point of view.
We can consider a chain with 30 spin-1/2 particles. The ground state eigenvector of the system must be 2^30 in length . But I think the eigenvector of the last iteration from DMRG code is very smaller than 2^30 in length. Is this statement true?
If it is correct, then how we can have the ground state eigenvector from ALPS DMRG?
Hi Negin,
Thanks for your wish.
To my understanding, your question may be about the DMRG algorithm itself but the ALPS DMRG package which is just a special implementation of the DMRG algorithm.
The key point of the DMRG algorithm is it projects the whole Hilbert space of the system (the word "whole" here is not absolutely exact but a simplification) to the subspace which is spanned by the most MAXSTATES important eigenvectors of the ground state density matrix. After this projection, we can describe the ground state in this truncated space using a MAXSTATES length vector instead of a whole Hilbert space dimension length vector.
For more detail about DMRG, you can read White's original papers PhysRevLett.69.2863, PhysRevB.48.10345 and also the Schollwöck's RMP review paper RevModPhys.77.259 .
PS: you may want to try the new DMRG implementation using the matrix product state (MPS) language, "ALPS MPS" package. See this paper http://dx.doi.org/10.1016/j.cpc.2014.08.019 for detail.
Best, Rongyang Sun
________________________________ From: Comp-phys-alps-users comp-phys-alps-users-bounces@lists.phys.ethz.ch on behalf of Negin Mohseni monfarednegin@gmail.com Sent: Saturday, April 4, 2020 13:02 To: comp-phys-alps-users@lists.phys.ethz.ch comp-phys-alps-users@lists.phys.ethz.ch Subject: [ALPS-users] eigenvector from DMRG
I wish good health for all developers and users these days.
My question is about DMRG process,
We know that in DMRG procedure, while the size of the system grows, just the most important eigenvectors are kept (in each iteration).
I think the 'MAXSTATES' in the DMRG code of ALPS package illustrates the maximum number of states from diagonalizing the reduced density matrix. Since the number of such states is less than the number of our system's state then we have an error in estimating energy of the system. But a question has occupied my mind: Does it make sense to ask the code to give the ground state eigenvector? Because with keeping a few numbers of the system's eigenvectors, I think in the last iteration, the output eigenvector is not corresponded to the whole system from the size point of view.
We can consider a chain with 30 spin-1/2 particles. The ground state eigenvector of the system must be 2^30 in length . But I think the eigenvector of the last iteration from DMRG code is very smaller than 2^30 in length. Is this statement true?
If it is correct, then how we can have the ground state eigenvector from ALPS DMRG?
comp-phys-alps-users@lists.phys.ethz.ch