Generation of integrals using density fitting

Exported functions

ElemCo.DfDump.dfdump — Method
dfdump(EC::ECInfo)

Generate fcidump using df integrals and store in IntOptions.fcidump. If IntOptions.fcidump is empty, don't write to fcidump file, store in EC.fd.

source

Internal functions

ElemCo.DfDump._halftransform_df_first! — Method
_halftransform_df_first!(B3_coeff_pairs, μνP, M)

DF-first half-transform: transform P→L first, then AO→MO. More efficient when MO space is comparable to AO space.

source
ElemCo.DfDump._halftransform_mo_first! — Method
_halftransform_mo_first!(B3_coeff_pairs, μνP, M)

MO-first half-transform: transform AO→MO first, then P→L. More efficient when MO space is much smaller than AO space.

source
ElemCo.DfDump.contract_full! — Method
contract_full!(int2, B3a, B3b)

Contract two 3-index arrays into full 4-index integrals: $int2_{p,r,q,s} = \sum_L B3a_{L,p,q} B3b_{L,r,s}$.

source
ElemCo.DfDump.contract_tri! — Method
contract_tri!(int2, B3)

Contract 3-index B3[L,p,q] into upper-triangular 4-index integrals: $int2_{p,r,\text{tri}(q,s)} = \sum_L B3_{L,p,q} B3_{L,r,s}$ for $q \le s$.

source
ElemCo.DfDump.generate_integrals — Method
generate_integrals(EC::ECInfo, fdump::FDump{T,3}, cMO::SpinMatrix, full_spaces) where T

Generate int2aa, int2bb, int2ab, int1a, int1b and int0 integrals for fcidump using density fitting.

mpfit basis is used for int2 integrals, and jkfit basis-correction is used for int1 and int0 integrals. full_spaces is a dictionary with spaces without frozen orbitals.

source
ElemCo.DfDump.generate_integrals — Method
generate_integrals(EC::ECInfo, fdump::FDump{T,3}, cMO::Matrix, full_spaces) where T

Generate int2, int1 and int0 integrals for fcidump using density fitting.

mpfit basis is used for int2 integrals, and jkfit basis-correction is used for int1 and int0 integrals. full_spaces is a dictionary with spaces without frozen orbitals.

source
ElemCo.DfDump.generate_integrals — Method
generate_integrals(EC::ECInfo, fdump::FDump{T,3}, cMO::Matrix, cPO::Matrix, full_spaces)

Generate int2, int1 and int0 integrals for fcidump using density fitting. Generate both e-e, e-p and the 1-body e and p integrals.

mpfit basis is used for int2 integrals, and jkfit basis-correction is used for int1 and int0 integrals. full_spaces is a dictionary with spaces without frozen orbitals.

source
ElemCo.DfDump.halftransform_3idx! — Method
halftransform_3idx!(B3_coeff_pairs, μνP, M)

Half-transform AO 3-index integrals to MO basis. For each (B3, c) pair, computes $B3_{L,p,q} = \sum_{\mu\nu} c_{\mu,p} (\mu\nu P \cdot M)_{\mu,\nu,L} c_{\nu,q}$. B3 arrays must be pre-allocated as Array{T,3}(undef, nL, norbs, norbs).

Uses MO-first route (AO→MO then P→L) when all MO sizes are at most half of AO size, otherwise uses AO-first route (P→L then AO→MO).

source