quemb.molbe.mbe.BE.__init__

BE.__init__(mf, fobj, *, eri_file='eri_file.h5', lo_method='lowdin', iao_loc_method='lowdin', lo_bath_post_schmidt=None, pop_method=None, restart=False, restart_file='storebe.pk', nproc=1, ompnum=4, thr_bath=1e-10, scratch_dir=None, int_transform='in-core', auxbasis=None, MO_coeff_epsilon=1e-05, AO_coeff_epsilon=1e-10, re_eval_HF=False)

Constructor for BE object.

Parameters:
  • mf (SCF) – PySCF mean-field object.

  • fobj (FragPart[Mole]) – Fragment object containing sites, centers, edges, and indices.

  • eri_file (str | PathLike) – Path to the file storing two-electron integrals.

  • lo_method (Literal['lowdin', 'boys', 'ER', 'PM', 'IAO']) – Method for orbital localization, by default “lowdin”.

  • iao_loc_method (Literal['lowdin', 'boys', 'PM', 'ER']) – Method for IAO localization, by default “lowdin”

  • lo_method_bath_post_schmidt – If not None, then perform a localization of the bath orbitals after the Schmidt decomposition.

  • pop_method (str | None) – Method for calculating orbital population, by default ‘meta-lowdin’ See pyscf.lo for more details and options

  • restart (bool) – Whether to restart from a previous calculation, by default False.

  • restart_file (str | PathLike) – Path to the file storing restart information, by default ‘storebe.pk’.

  • nproc (int) – Number of processors for parallel calculations, by default 1. If set to >1, threaded parallel computation is invoked.

  • ompnum (int) – Number of OpenMP threads, by default 4.

  • thr_bath (float,) – Threshold for bath orbitals in Schmidt decomposition

  • scratch_dir (WorkDir | None) – Scratch directory.

  • int_transform (Literal['in-core', 'out-core-DF', 'int-direct-DF', 'sparse-DF-cpp', 'sparse-DF-nb', 'sparse-DF-cpp-gpu', 'sparse-DF-nb-gpu']) –

    The possible integral transformations.

    • "in-core" (default): Use a dense representation of integrals in memory without density fitting (DF) and transform in-memory.

    • "out-core-DF": Use a dense, DF representation of integrals, the DF integrals \((\mu, \nu | P)\) are stored on disc.

    • "int-direct-DF": Use a dense, DF representation of integrals, the required DF integrals \((\mu, \nu | P)\) are computed and fitted on-demand for each fragment.

    • "sparse-DF-cpp": Use a sparse, DF representation of integrals, and avoid recomputation of elements that are shared across fragments. Uses a C++ implementation for performance heavy code.

    • "sparse-DF-nb": Use a sparse, DF representation of integrals, and avoid recomputation of elements that are shared across fragments. Uses a numba implementation for performance heavy code.

    • "sparse-DF-cpp-gpu": Use a sparse, DF representation of integrals, and avoid recomputation of elements that are shared across fragments. Uses a C++ + CUDDA implementation for performance heavy code, only available when compiled with CUDABlas.

    • "sparse-DF-nb-gpu": Use a sparse, DF representation of integrals, and avoid recomputation of elements that are shared across fragments. Uses a numba implementation + cupy for performance heavy code. Only available if cupy is installed.

  • auxbasis (str | None) – Auxiliary basis for density fitting, by default None (uses default auxiliary basis defined in PySCF). Only relevant for int_transform in {"int-direct-DF", "sparse-DF"}.

  • MO_coeff_epsilon (float) – The cutoff value of the absolute overlap \(\int |\phi_i| |\varphi_{\mu}|\) when a MO coefficient \(i\) and an AO coefficient \(\mu\) are considered to be connected for sparsity screening. Smaller value means less screening.

  • AO_coeff_epsilon (float) – The cutoff value of the absolute overlap \(\int |\varphi_{\mu}| |\varphi_{\nu}|\) when two AO coefficient \(\mu, \nu\) are considered to be connected for sparsity screening. Here the absolute overlap matrix is used. Smaller value means less screening.

  • re_eval_HF (bool) – Re-evaluate the Fock matrix from the given MO-coefficients to determine the HF-in-HF error. This is False by default and has no relevance for “normal”, unscreened Hartree-Fock calculations. However, if the Hartree-Fock was obtained from methods that never build one global Fock matrix in the traditional sense, such as ORCA’s RIJCOSX, then the energy obtained by building the Fock matrix from the MO coefficients can actually differ from the reported HF energy.