block-hczhai / block2-preview

Efficient parallel quantum chemistry DMRG in MPO formalism
GNU General Public License v3.0
67 stars 23 forks source link
ab-initio bose-hubbard density-matrix-renomalization-group dmrg fermi-hubbard heisenberg-model matrix-product-states mrci pyscf quantum-chemistry tj-model

Documentation Status Build Status License: GPL v3 PyPI version

block2

The block2 code provides an efficient highly scalable implementation of the Density Matrix Renormalization Group (DMRG) for quantum chemistry, based on Matrix Product Operator (MPO) formalism.

The block2 code is developed as an improved version of StackBlock, where the low-level structure of the code has been completely rewritten. The block2 code is developed and maintained in Garnet Chan group at Caltech.

Main contributors:

If you find this package useful for your scientific research, please cite the work as:

For parallel ab initio DMRG, please cite

For large site DMRG-MRCI/MRPT, please cite

For DMRG with spin-orbit-coupling, please cite

You can find a bibtex file in CITATIONS.bib.

One can install block2 using pip (note: for very new Python versions, the --extra-index-url option of pip is required, see below for installing the developement version of block2):

The detailed instructions on manual installation can be found here.

To run a DMRG calculation using the command line interface, please use the following command:

block2main dmrg.conf > dmrg.out

where dmrg.conf is the StackBlock style input file and dmrg.out contains the outputs. Example input files can be found here.

For DMRGSCF calculation, please have a look at here.

For a list of DMRG references for methods implemented in block2, see: https://block2.readthedocs.io/en/latest/user/references.html

Documentation: https://block2.readthedocs.io/en/latest/

Tutorial (python interface): https://block2.readthedocs.io/en/latest/tutorial/qc-hamiltonians.html

Example script for models: Fermi-Hubbard, Bose-Hubbard, Hubbard-Holstein, SU(2) Heisenberg, SU(3) Heisenberg, t-J.

Source code: https://github.com/block-hczhai/block2-preview

For a simplified implementation of ab initio DMRG, see pyblock3. Data can be imported and exported between block2 and pyblock3, see https://github.com/block-hczhai/block2-preview/discussions/35.

Features

StackBlock Compatibility

A StackBlock 1.5 compatible user interface can be found at pyblock2/driver/block2main. This script can work as a replacement of the StackBlock binary, with a few limitations and some extensions. The format of the input file dmrg.conf is identical to that of StackBlock 1.5. See docs/driver.md and docs/source/user/basic.rst for detailed documentations for this interface. Examples using this interface can be found at tests/driver.

Instuctions for installing the StackBlock code can be found in here. A list of precompiled binaries of StackBlock can be found in here.