qrunch.chemistry.integral_builders.double_factorized_integral_builder

Module for Double Factorized Integral builders.

Classes

DoubleFactorizedIntegralBuilder

Build integrals using Double Factorized integrals.

class DoubleFactorizedIntegralBuilder

Bases: TwoBodyElectronRepulsionIntegralBuilderProtocol

Build integrals using Double Factorized integrals.

__init__(*, repulsion_integral_builder: TwoBodyElectronRepulsionIntegralBuilderProtocol | None = None, tolerance: float = 1e-10) None

Initialize the Double Factorized integral builder.

Parameters:
  • repulsion_integral_builder (TwoBodyElectronRepulsionIntegralBuilderProtocol | None) – The object that can build the initial two electron repulsion integrals, that can be double factorized.

  • tolerance (float) – Minimum eigenvalue threshold for inclusion.

Return type:

None

calculate_integrals(molecular_orbitals: UnrestrictedMolecularOrbitals, molecular_configuration: MolecularConfiguration) UnrestrictedTwoBodyElectronRepulsionIntegralsProtocol
calculate_integrals(molecular_orbitals: RestrictedMolecularOrbitals, molecular_configuration: MolecularConfiguration) RestrictedDoubleFactorizedIntegrals

Compute Double Factorized integrals for a given molecule.

The tensor is decomposed into lower-rank objects. In this process, we perform two eigenvalue decompositions. The first one provides a set of eigenvalues g_elements and eigenvectors in the form of v_matrices. The second eigenvalue decomposition return sets of eigenvalues and eigenvector matrices for each v_matrix, which we name l_elements and u_matrices. The z_matrices are also generated from the l_elements and g_elements and are useful when reconstructing the tensor or calling individual coefficients.

Not implemented for unrestricted orbitals.

Parameters:
  • molecular_orbitals – The Molecular Orbitals.

  • molecular_configuration – The molecular configuration.