Fråga:
Beräknar tvåelektronintegraler med en STO-3G-basuppsättning
user23061
2015-11-19 03:45:22 UTC
view on stackexchange narkive permalink

Jag försöker implementera en begränsad Hartree-Fock-beräkning med hjälp av en STO-3G-basuppsättning, för skojs skull. Jag lyckades utföra denna beräkning där endast $ \ mathrm {1s} $ orbitaler är närvarande ($ \ ce {H2} $ och $ \ ce {HeH +} $) som förklaras i Szabo och Ostlunds bok. I den här boken ger författare uttryckliga formler för överlappande, kinetiska, kärnelektron- och elektronelektronintegraler för $ \ mathrm {1s} $ orbitaler och de fungerar korrekt.

För att generalisera min beräkning till system som innehåller $ \ mathrm {2s} $ och $ \ mathrm {2p} $ orbitaler (för $ \ ce {H2O} $ och $ \ ce {N2} $), använde jag de allmänna formlerna som jag hittade i Cooks bok för elektronen -nukleära och elektronelektronintegraler. I det här fallet får jag resultat som skiljer sig något från Szabos bok:

$$ E_ \ text {tot} (\ ce {H2O}) = -74.4442002765 \ text {au} $$

istället för

$$ E_ \ text {tot} ^ \ text {Szabo} (\ ce {H2O}) = -74.963 \ text {au} $$

Detta är uppenbarligen problematiskt eftersom orbitalenergier lider av samma fel och detta leder till en felaktig joniseringspotential (0,49289045 au istället för 0,391 au, en skillnad på cirka 63 kcal $ \ cdot $ mol $ ^ {- 1} $).

Eftersom jag kollade min kod flera gånger och jag skrev tvåelektronberäkningskoden från grunden två gånger, undrade jag om det finns ett skrivfel i Cooks bok. Finns det en bra referens där jag kan hitta (korrekt) formel för att beräkna tvåelektronintegraler av gaussiska funktioner (i kartesiska koordinater) med godtycklig vinkelmoment? Just nu letar jag inte efter en mycket effektiv (rekursiv) algoritm för att utföra denna uppgift, jag behöver bara en exakt formel som den som föreslås i Cooks bok.

Källor:

[1] Szabo och Ostlund, Modern Quantum Chemistry, Dover, 1989.

[2] Cook, Handbook of Computational Chemistry, Oxford University Press, 1998.

Kan du lägga din kod på github? Svårt att svara på frågan utan att se dina formler. Ditt resultat kan bero på ett flytpunktsfel ... Jag har hittat detta när jag återger beräkningar från andra forskare.
@user1945827 Jag tänkte på samma sak, men många beräkningar (se Geoffs svar) ger ett värde på -74,96 (...). Min kod finns redan på GitHub (https://github.com/RMeli/Hartree-Fock) men jag gav inte länken eftersom jag inte ville ha för mycket hjälp! ;) Den rutinmässiga beräkningen av integralerna är ELECTRONIC i INTEGRALS.PY (programmet är i Python eftersom jag kan koda snabbt, men jag kommer att migrera det till fortran när det fungerar bra).
överväg https://scholar.google.ru/scholar?q=computing+gaussian+function+integrals&btnG=&hl=sv&as_sdt=0%2C5
@permeakra Jag tillbringade mycket tid med att använda Google och Google Scholar. Google Scholar-resultat handlar dock normalt om mycket effektiva algoritmer för att beräkna tvåelektronintegraler. Vad jag först skulle vilja implementera är en exakt formel (som den som föreslås i Cooks bok eller i Szabos bok för 1-orbitaler).
@R.M. Den här artikeln finns på första sidan i länken google scholar uppifrån .... Jag vet inte, verkar misstänksamt som vad du vill. http://rspa.royalsocietypublishing.org/content/royprsa/258/1294/412.full.pdf
Tre svar:
g.smith
2015-11-26 03:42:49 UTC
view on stackexchange narkive permalink

Det finns faktiskt ett misstag i det analtiska uttrycket i Cook's Book. På sin webbsida har han en pdf med rättad version

http://spider.shef.ac.uk/

Kanske löser detta ditt problem , men jag skulle också rekommendera att implementera Obara-Saika Scheme eller rys-Quadrature eftersom de verkligen är mycket effektivare. Om du programmerar i Python kan du titta på PyQuante-projektet, som implementerar alla dessa saker. När det gäller Obara-Saika kan du också läsa om Head-Gordon Pople Scheme. Det är i princip en anpassad version av Obara-Saika som minskar FLOP-antalet.

Detta löser mitt problem !!! Tack!!! Jag ser verkligen till Obara-Saika eller andra effektiva system, men för närvarande är målet att genomföra BO-MD och inte att ha en effektiv kod! ; )
Eric Brown
2015-11-25 04:57:38 UTC
view on stackexchange narkive permalink

Mitt råd är att implementera Obara-Saika återkommande formler som beskrivs i "Molecular Electronic-Structure Theory" av Helgakar, et al. Jag skulle hålla fast vid kartesiska -funktioner, eftersom a) de är lättare och b) sfäriska övertoner spelar ingen roll för molekyler ändå.

Jag gjorde det för flera år sedan (i Mathematica) när jag var på en liknande plats - efter att ha slutfört Szabo och Ostlund och ville ha en godtycklig "vinkelmoment" -kod.

Boken kommer kostar dig en liten förmögenhet, men om du kan låna den genom fjärrlån är det en fenomenal text.

Jag kommer säkert att titta på den här boken, tack!
Tyvärr löser inte dina förslag på pojkar-funktionen detta problem (som jag hoppades). Felet bör vara direkt i beräkningen av tvåelektronintegraler. Jag kommer att se till Obara-Saija återkommande.
Kontrollera normaliseringar av dina grundläggande funktioner
Varför misstänker du normalisering?
Utvärderade Sij till 1?
Ja, Sii = 1 (jag skriver ut fem decimaler)
Geoff Hutchison
2015-11-19 05:09:45 UTC
view on stackexchange narkive permalink

Mitt förslag skulle vara att använda en annan befintlig kod och köra beräkningen.

Till exempel, om jag gör en HF / STO-3G-beräkning på $ \ ce {H2O} $ får jag:

$$E_\mathrm{H_2O}=-74.9659011\:\mathrm{au}$$

Jag har inte Cooks bok till hands, så jag kan inte leta efter felet, men jag skulle misstänka något fel som du gör.

Det hjälper om jag uttryckligen skriver ner Cooks formler? Jag har redan kollat ​​på internet för andra HF / STO-3G-resultat och alla börjar med -74,96 (...) a.u., det är därför jag är orolig.
@R.M. Bara för att andra mer moderna tekniker är effektiva betyder inte att de är felaktiga. Skicka gärna formlerna, men jag skulle anpassa en annan metod.
@Goeff Jag vet att det finns mycket bra (och effektiva) tekniker, men det här blir nästa steg i mitt projekt. I början vill jag bara koda den enklaste algoritmen, även om den är ineffektiv. Cooks analytiska lösning innebär bara en serie slingor som är extremt enkla och enkla att implementera (dessutom implementerade jag de andra integralerna). Men om jag inte hittar en analytisk lösning snabbt, kommer jag säkert att spendera lite tid på att implementera en svårare teknik.


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...