PySCF: matriks 2-indeks dan 3-indeks
Integral 4-indeks 2-elektron dapat diperoleh untuk atom He dengan kode berikut:
import numpy as np
from pyscf import gto, scf, ao2mo
mol = gto.Mole()
mol.atom = """
He 0. 0. 0.
"""
mol.basis = "cc-pvdz"
mol.build()
# Run Hartree-Fock.
mf = scf.RHF(mol)
mf.kernel()
# Find electron-repulsion integrals (eri).
eri = ao2mo.kernel(mol, mf.mo_coeff)
eri = np.asarray(ao2mo.restore(1, eri, mol.nao))
Saya tertarik untuk mendapatkan matriks 2-indeks (A) dan 3-indeks (CIAB), yang dapat digunakan untuk membentuk integral 4-indeks 2-elektron (eri). Saya telah melihat daftar kemungkinan cara yang dilakukan dalam kode PySCF ; Namun, saya tidak yakin dengan jawaban yang benar.
Jawaban
Dalam formalisme pemasangan kerapatan / resolusi identitas (RI), integral dua elektron $(ij|kl)$ dalam basis atom-orbital didekati sebagai $(ij|kl) \approx \sum_{PQ} (ij|P) (P|Q)^{-1} (Q|kl)$ dimana $P$ dan $Q$ adalah fungsi tambahan, dan $(P|Q)^{-1}$ adalah matriks tumpang tindih Coulomb terbalik.
Ekspresi RI dapat ditulis dalam bentuk yang menyerupai ekspresi Cholesky $(ij|kl) = \sum_P L_{ij}^P L_{kl}^P$ dengan memperkenalkan "matriks B" $B_{ij}^Q = \sum_P (ij|P) (P|Q)^{-1/2}$. Dengan matriks-B, Anda mendapatkan integral sebagai$(ij|kl) \approx \sum_Q B_{ij}^Q B_{kl}^Q$. Penggunaan formulir ini nyaman karena Anda dapat menggunakan implementasi yang sama untuk Cholesky dan RI.
Kode pemasangan kepadatan di PySCF didokumentasikan: https://sunqm.github.io/pyscf/df.html
The pyscf.df.incore.cholesky_eriFungsi kembali 2D array of (naux,nao*(nao+1)/2) in C-contiguous. Ini adalah$B$ matriks.