Obliczanie całek 2e za pomocą PySCF

Sep 02 2020

Pytanie

W teorii Hartree-Focka całka dwuelektronowa jest dana wzorem:

$[ij|kl]$ = $\int dx_{1}dx_{2}(\chi_{i}(x_{1})\chi_{j}(x_{1})\frac{1}{r_{12}}\chi_{k}^{*}(x_2)\chi_{l}(x_{2})$

Jestem zainteresowany wypisaniem całki 2e dla atomu helu (dla danego zbioru baz) w PySCF. Chcę to zrobić z dopasowaniem gęstości (DF) / rozdzielczością tożsamości (RI) i bez niego.

Próba

Próbując stworzyć całkę 2e z PySCF (bez DF / RI), użyłem następującego kodu:

from pyscf import gto
mol = gto.M(atom='He 0 0 0', basis='6-31g')
eri = mol.intor('int2e', aosym='s8')
print(eri)

>> [1.54393568 0.78544719 0.42702546 0.80395186 0.47618957 0.61593794]

Tam, gdzie mam inny plik do porównania, spodziewałem się znacznie większego zestawu danych. Wyobraziłem sobie również, że powinna istnieć pętla SCF; jednak nie jest to wskazane w dokumentacji PySCF.

Z góry dziękuję za pomoc.


Uwaga: to pytanie jest powiązane z następującymi wcześniejszymi pytaniami:

  • Jednoośrodkowe całki dwuelektronowe między 1s STO
  • Jakie programy mogą wykonywać całki elektronowe i obliczenia SCF z więcej niż jednym procesorem?
  • Całki dwuelektronowe z korelacją wymiany

Odpowiedzi

2 Tyberius Sep 02 2020 at 23:04

Uznałem, że warto byłoby zająć się niektórymi błędnymi przekonaniami w tym pytaniu, ponieważ są one prawdopodobnie dość powszechne.

Brak wcześniejszego SCF

Całki dwuelektronowe AO (a właściwie wszystkie całki AO używane w procedurze SCF) mogą być generowane przed wykonaniem jakichkolwiek cykli. Dzieje się tak dlatego, że znajdują się one wśród orbitali atomowych, które znamy od początku obliczeń. W praktyce prawdopodobnie zobaczysz całki dwuelektronowe obliczone ponownie podczas cyklu SCF, ale ma to na celu uniknięcie przechowywania ~$N^4$ takie wartości, które stają się wygórowane nawet przy dość małych obliczeniach.

Aby obliczyć całki MO, musisz ukończyć wszystkie cykle SCF, ale dopóki nie wykonujesz żadnych metod Post-SCF, w rzeczywistości nie musisz jawnie przekształcać całek AO do MO w celu obliczenia energia.

Mniej całek niż oczekiwano

Sprowadza się to po prostu do symetrii. Dla$\ce{He}$ z zestawem podstawowym 6-31G masz dwa orbitale atomowe, które powinny prowadzić do $2^4=16$całki dwuelektronowe. Jednakże, ponieważ całki mają symetrię permutacyjną (zobacz to pytanie w Chem SE ), w rzeczywistości jest tylko 6 unikalnych całek, które napisałeś w swoim pytaniu.