PySCF-DMRG

PySCF-DMRG refers to the DMRG (Density Matrix Renormalization Group) solver interface within the PySCF (Python Simulations of Chemistry Framework) package. The dmrgscf module interfaces PySCF with external DMRG solvers including Block, b…

3. DMFT & MANY-BODY 3.4 Tensor Networks VERIFIED 1 paper
Back to Directory Official Website

Overview

PySCF-DMRG refers to the DMRG (Density Matrix Renormalization Group) solver interface within the PySCF (Python Simulations of Chemistry Framework) package. The dmrgscf module interfaces PySCF with external DMRG solvers including Block, block2, and CheMPS2, enabling DMRG-CASCI and DMRG-CASSCF calculations for quantum chemistry problems with large active spaces.

Reference Papers (1)

Full Documentation

Official Resources

  • Homepage: https://pyscf.org/interface/dmrgscf.html
  • Source Repository: https://github.com/pyscf/dmrgscf
  • Documentation: https://pyscf.org/user/extensions.html
  • License: Apache License 2.0 (PySCF); varies for DMRG solvers

Overview

PySCF-DMRG refers to the DMRG (Density Matrix Renormalization Group) solver interface within the PySCF (Python Simulations of Chemistry Framework) package. The dmrgscf module interfaces PySCF with external DMRG solvers including Block, block2, and CheMPS2, enabling DMRG-CASCI and DMRG-CASSCF calculations for quantum chemistry problems with large active spaces.

DMRG is a method for solving ab initio quantum chemistry problems that is particularly powerful for systems with strong static correlation, where traditional methods like CASSCF are limited by the exponential growth of the Hilbert space. By replacing the full CI solver in CASCI/CASSCF with a DMRG solver, PySCF enables calculations with active spaces of 50+ orbitals (DMRG-CASSCF) or 30+ orbitals (MPS-PT), far exceeding the ~18 orbital limit of conventional exact diagonalization.

Scientific domain: Quantum chemistry, strongly correlated systems, active space methods
Target user community: Computational chemists studying strongly correlated molecules

Theoretical Methods

  • Density Matrix Renormalization Group (DMRG)
  • DMRG-CASCI (CI with DMRG solver)
  • DMRG-CASSCF (SCF with DMRG solver)
  • MPS-PT (matrix product state perturbation theory)
  • DMRG-SC-NEVPT2 (strongly contracted NEVPT2)
  • DMRG-IC-NEVPT2 (internally contracted NEVPT2)
  • DMRG-FIC-MRCISD (fully internally contracted MRCISD)
  • Matrix product state (MPS) representation

Capabilities (CRITICAL)

  • DMRG as FCI replacement for large active spaces
  • Active spaces of 50+ orbitals (DMRG-CASSCF)
  • State-averaged and state-specific calculations
  • DMRG-NEVPT2 perturbation theory
  • Nuclear gradients and geometry optimization
  • Multi-state calculations
  • Unrestricted CAS (UCASSCF) support
  • Integration with PySCF mean-field and post-SCF methods
  • Multiple DMRG backends: Block, block2, CheMPS2

Inputs & Outputs

Input formats:

  • PySCF Python scripts
  • Molecule and mean-field objects
  • Active space specification (ncas, nelecas)
  • DMRG solver settings (settings.py configuration)

Output data types:

  • Total energies (CASCI, CASSCF)
  • Natural orbitals and occupancies
  • Density matrices
  • MPS wavefunctions (stored in scratch directory)
  • NEVPT2 and MRCISD energies
  • Nuclear gradients

Interfaces & Ecosystem

  • Programming language: Python (PySCF), C++ (Block, block2, CheMPS2)
  • DMRG solvers: Block (https://sanshar.github.io/Block/), block2 (pip install block2), CheMPS2
  • MPI support: block2-mpi for parallel DMRG
  • Part of PySCF: Integrated with full PySCF ecosystem
  • Install: pip install block2 or pip install block2-mpi

Limitations & Known Constraints

  • DMRG bond dimension must be converged carefully
  • Requires external DMRG solver installation and configuration
  • Scratch disk space for MPS wavefunctions
  • Computational cost grows with active space and bond dimension
  • Some advanced features (4pdm) require significant memory

Performance Characteristics

  • DMRG scales polynomially with active space size (not exponentially like FCI)
  • block2 supports efficient MPS operations and compression
  • MPI parallelization available via block2-mpi
  • Typical: 50-orbital DMRG-CASSCF or 30-orbital MPSPT routinely achievable
  • DMRG-SC-NEVPT2 with compression approach is faster than explicit 4pdm

Comparison with Other Codes

  • vs conventional CASSCF: DMRG enables much larger active spaces (50+ vs ~18 orbitals)
  • vs Block standalone: PySCF integration provides mean-field, basis set, and gradient infrastructure
  • vs Dice: Dice is a stochastic CI; DMRG is deterministic and more systematic
  • vs SHCI: Both handle large active spaces; DMRG has better MPS representation

Best Practices

  • Install block2 via pip for easiest setup
  • Converge DMRG bond dimension systematically
  • Use settings.py to configure DMRG solver paths
  • For CASSCF, carefully tune DMRG parameters and dynamically adjust during optimization
  • Use compression approach for NEVPT2 for faster computation
  • Store MPS wavefunctions in dedicated scratch directory

Verification & Sources

Primary sources:

  1. PySCF DMRG interface: https://pyscf.org/interface/dmrgscf.html
  2. PySCF extensions: https://pyscf.org/user/extensions.html
  3. Block documentation: https://sanshar.github.io/Block/with-pyscf.html
  4. block2 documentation: https://block2.readthedocs.io/

Confidence: VERIFIED - Official PySCF documentation and multiple DMRG solver backends confirmed

Related Tools in 3.4 Tensor Networks