QuEmb is a robust framework designed to implement the Bootstrap Embedding (BE) method, efficiently treating electron correlation in molecules, surfaces, and solids. This repository contains the Python implementation of the BE methods, including periodic bootstrap embedding. The code leverages PySCF library for quantum chemistry calculations and utlizes Python's multiprocessing module to enable parallel computations in high-performance computing environments.
QuEmb includes two libraries: molbe
and kbe
.
The molbe
library implements BE for molecules and supramolecular complexes,
while the kbe
library is designed to handle periodic systems such as surfaces and solids using periodic BE.
&&Wannier90 code is interfaced via libDMET in QuEmb
Clone the repository:
git clone https://github.com/oimeitei/quemb.git
cd quemb
Install QuEmb using one of the following approaches:
pip install .
or simply add path/to/quemd
to PYTHONPATH
export PYTHONPATH=/path/to/quemb:$PYTHONPATH
For conda (or virtual environment) installations, after creating your environment, specify the path to mol-be source as a path file, as in:
echo path/to/quemb > $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")/quemb.pth
# Molecular
from molbe import fragpart
from molbe import BE
# Periodic
#from kbe import fragpart
#from kbe import BE
# Perform pyscf HF/KHF calculations
# get mol: pyscf.gto.M or pyscf.pbc.gto.Cell
# get mf: pyscf.scf.RHF or pyscf.pbc.KRHF
# Define fragments
myFrag = fragpart(be_type='be2', mol=mol)
# Initialize BE
mybe = BE(mf, myFrag)
# Perform density matching in BE
mybe.optimize(solver='CCSD')
See documentation and quemb/example
for more details.
Comprehensive documentation for QuEmb is available at quemb/docs
. The documentation provides detailed infomation on installation, usage, API reference, and examples. To build the documentation locally, simply navigate to docs
and build using make html
or make latexpdf
.
Alternatively, you can view the latest documentation online here.
The methods implemented in this code are described in details in the following papers: