qcscine / qcmaquis

Release-only repository for SCINE QCMaquis, the DMRG software from the Reiher group.
BSD 3-Clause "New" or "Revised" License
32 stars 15 forks source link
chemistry computational-chemistry quantum-chemistry quantum-chemistry-methods

QCMaquis

QCMaquis is an efficient C++11 implementation of the density matrix renormalization group (DMRG) algorithm for quantum chemical Hamiltonians in its matrix product state-matrix product operator (MPS-MPO) formulation. Quantum-chemical operators represented as matrix product operators (MPOs) provide the necessary flexibility to accommodate Abelian and non-Abelian symmetries as well as the implementation of non-relativistic and relativistic quantum chemical Hamiltonians, respectively, in a unified framework. We have implemented the special unitary group of degree 2 (SU(2)) in the MPO representation of the non-relativistic Hamiltonian to ensure spin conservation.

Current Features:

QCMaquis compilation and installation

Prerequisites:

CMake compile options:

A more detailed installation guide can be found in Section 3.1 of our manual.

QCMaquis in OpenMolcas

To install QCMaquis with the OpenMOLCAS interface, download OpenMOLCAS from the official OpenMOLCAS GitLab repository and follow its installation guide. To activate QCMaquis (and NEVPT2) support within OpenMolcas, add the following flags to cmake when configuring OpenMOLCAS (see step 3 of the OpenMOLCAS installation guide):

$ cmake -DDMRG=ON -DNEVPT2=ON <other CMAKE flags> ../

Documentation

A detailed installation guide and manual for QCMaquis (and its components) can be found in the doc subdirectory. Compile QCMaquis with the BUILD_MANUAL CMake option to obtain the documentation in the PDF format. Note that two manuals are generated: qcmaquis_manual.pdf, which presents the OpenMolcas/QCMaquis interface, and qcmaquis_manual_standalone.pdf, which describes the functionalities of QCMaquis as a standalone software.

Support

For issues and bug reports with QCMaquis in OpenMOLCAS, please open an issue in the OpenMOLCAS bug tracker with a QCMaquis tag. For issues and bug reports with the QCMaquis standalone version, please use the GitHub QCMaquis issue tracker or send an e-mail to dmrg@phys.chem.ethz.ch.

References

For reproducibility reasons, please cite, depending on the actual calculations you carried out, one or more of the following papers in publications that present data produced with QCMaquis:

General reference to the code:

QCMaquis and ALPS

QCMaquis builds upon the ALPS MPS project. The ALPS MPS codes implement the DMRG algorithm for variational ground and low-lying excited state search as well as time evolution of arbitrary one- and two-dimensional models in a matrix-product-state representation. They have been developed at ETH Zurich by Michele Dolfi and Bela Bauer in the group of Matthias Troyer with contributions from Sebastian Keller and Alexandr Kosenkov and at the University of Geneva by Timothée Ewart and Adrian Kantian in the group of Thierry Giamarchi. For further information on the ALPS project, please visit https://alps.comp-phys.org and note the original ALPS MPS paper:

The current QCMaquis release ships with a modified ALPS library based on ALPS 2.3.0 to reduce compile and runtime dependencies. For more information, please read the README.txt in the dmrg/alps subdirectory. The ALPS library is subject to the ALPS Library license, which is found in dmrg/alps/LICENSE.txt.