This is a simple, yet complete, DMRG library to solve Heisenberg (spin-S) and Hubbard models in 1D. The software exploits consevation of the Quantum Numbers (
The structure of this code is largely inspired by the simple-DMRG project: GitHub and Zenodo.
The code is based on:
-
MPI
Clone the repo
Open and setup the Makefile with your favorite editor (hint: emacs
)
Compile
git clone https://github.com/aamaricci/Lattice_DMRG
cd Lattice_DMRG
emacs Makefile
make
For any information or suggestion contact the authors:
adriano DOT amaricci AT gmail DOT com
and/or
cmejutoz AT sissa DOT it
OR
create an issue in this repo.
- Extend Spin iDMRG code to Electronic case from the Spin problem. Solve the fermion sign problem.
- Develop test code with recursive block construction and digonalization.
- Develop code without Quantum Number (QN) conservationn.
- Test code against ED solution and exact behavior for the non-interacting regime.
- Develop the infrastructure to deal with QN conservation.
- Develop the construction of the states of a given QN sector.
- Code recursive blocking withing a specific QN sector. Compare with ED.
- Develop full iDMRG algorithm.
- Test code against iDMRG without QN and ED.
- Wrap the SuperBlock construction into a dedicated module. Encapsulate and generalize the code structure.
- Merge with Spin DMRG code.
- Add layer to save rotation/truncation matrices
- Develop finite DMRG algorithm
- Measure local observables
- Measure entanglement
- Measure nearest neighbor correlations
- Implement a better strategy for the SuperBlock matrix-vector product
$H_{sb}|\psi\rangle$ , exploiting the tensor product structure of$H_{sb}= H_L\otimes 1_R + 1_L\otimes H_R + H_{LR}$ .
With this update we introduce two distinct method to evaluate and diagonalize the SuperBlock (SB) Hamiltonian sparse_H=T,F
.
If T
the matrix
If F
each non-trivial part of the the matrix
and
where the matrices
- Implement parallel strategies. Different ideas can be followed:
i) parallel execution of the tensor product for$H_{sb}$ forsparse_H=T
, see Large-Scale Implementation of the Density Matrix Renormalization Group Algorithm.
ii) parallel execution of the little matrix-vector and matrix-matrix products forsparse_H=F
. We can also profit of the matrix structure of the SB vector as done in massively parallel Exact Diagonalization algorithm, see EDIpack: A parallel exact diagonalization package for quantum impurity problems.
iii) distributed storage of the vectors and sparse matrices.
Here are some results for the Heisenberg model:
In the top panels we show the groundstate energy
Finally, in the bottom-right panel we report the spatial distribution of the local magnetization for a Spin 1 chain with open boundary conditions, showing Spin 1/2 edge modes.
Results for the Hubbard model
In the top-left panel we compare the energy per site
There are a number of known issues with this code which, mostly for time reasons, we did not solve completely. Please report to any of the authors.
--
LICENSE
The software is provided with no license, as such it is protected by copyright.
The software is provided as it is and can be read and copied, in agreement with
the Terms of Service of GITHUB. Use of the code is constrained to author agreement.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.