Pytanie:
Obliczanie luki singlet-triplet i znaku singletowego o otwartej powłoce
kimdazar
2016-07-29 20:46:46 UTC
view on stackexchange narkive permalink
  1. I am trying to calculate the singlet-triplet energy gap ($S_0-T_1$) of a conjugated system (18 atoms). For the singlet $S_0$ state, assumed to be closed shell, the Gaussian options were

    opt=tight b3lyp/6-311g(d,p) integral(ultrafinegrid)...0 1...

    and for the energy of the triplet $T_1$ state

    opt=tight rob3lyp/6-311g(d,p) integral(ultrafinegrid)...0 3...

    Does the energy difference of those two calculations have any physical significance? (i.e. should have I used ...td-ub3lyp...0 3 ... instead?)

  2. I believe a system I am currently working on may have some open-shell character for the singlet ground state so I performed the following with the optimized geometry I got from a TD calculation of a triplet state:

    #p ub3lyp/6-311+g(d,p) scf=(tight) guess=(mix,always) gfinput gfprint iop(6/7=3)...0 1...

    For the stability check, do I have to use the guess=(mix,always) on they keyword route as well?

1. a musisz użyć tego samego poziomu teorii (otwarta powłoka lub nieograniczona) zarówno dla S0, jak i T1.1. B powinieneś rozważyć użycie nie-dft, ponieważ dft o polaryzacji spinowej ma nieco wątpliwe podstawy. Jest OK dla dużych systemów, kiedy nie ma wyboru, ale dla układów o 18 atomach powinno być używane coś w rodzaju ump2 / 6-311 ++ g **, przynajmniej dla energii końcowych.
@permeakra 1.a niekoniecznie. Jeśli którykolwiek z formalizmu jest dobrym opisem, nie ma to znaczenia. Jeśli nie, to oba są nieodpowiednie. Zobacz także http://chemistry.stackexchange.com/q/49174/4945 1.b UMP2 będzie gorszy niż jakikolwiek DFT (i to nie bierze pod uwagę, że może tam istnieć metal przejściowy). Ponieważ OP nie określił, jakiego rodzaju atomami są te 18, trudno jest ocenić, czy odpowiednia jest wyższa metoda.
@Martin- マ ー チ ン Hej, są to układy sprzężone z pi, zawierające fosfor, azot, siarkę, węgiel i wodór. Czytałem o niektórych metodach, takich jak złamana symetria DFT i TD-DFT z odwróceniem spinu, które pomagają w przypadkach potencjalnych singletowych stanów podstawowych z otwartą powłoką.
Jeden odpowiedź:
Martin - マーチン
2016-10-17 20:29:52 UTC
view on stackexchange narkive permalink

Istnieje powiązana dyskusja na temat tego, której metody należy użyć do odgadywania pojedynczej trioli, do której przeczytania zachęcam również: Metoda U lub RO dla przerwy singlet-triplet?

Ten post będzie trochę dłuższy, więc z góry przedstawię najważniejsze punkty. Rozsądne jest obliczenie (i / lub optymalizacja) funkcji falowej metodą ograniczoną, a następnie przetestowanie jej pod kątem niestabilności. To samo dotyczy trypletowych (itp.) Funkcji falowych, w których również chciałbym zacząć od podejścia z ograniczoną otwartą powłoką. Aby odpowiedzieć 1, jest to rozsądne pierwsze podejście do luki singlet-triplet. Jeśli jesteś bardziej zainteresowany wzbudzeniami elektronicznymi, konieczne jest leczenie zależne od czasu.

Jako ogólną rekomendację radziłbym podzielić obliczenia i przeczytać odpowiednie funkcje falowe z pliku punktu kontrolnego, aby wykonać dodatkowe obliczenia i sprawdza, aby zawsze mieć rezerwę.
Stąd odpowiedź na 2, po utworzeniu i zbieżności rozwiązania do funkcji falowej można ją ponownie wczytać. Nie generuj nowych wstępnych przypuszczeń.

Powinieneś także zawsze mieć oko na zanieczyszczenie spinu, ponieważ zasadniczo mówi ci, czy metoda, której używasz, jest odpowiednia w pierwszej kolejności. Jeśli chodzi o zepsute rozwiązania symetrii, zawsze powinieneś rozważyć również wykonanie obliczeń z wieloma odniesieniami.

(Zauważ, że guess (always) dotyczy tylko optymalizacji geometrii; patrz poniżej .)


Przeprowadzę kilka obliczeń na tlen, ponieważ jest to niezły przypadek do studium. Będę używać funkcji BP86 z zestawem podstawowym def2-SVP i dopasowaniem gęstości. Obliczenia wykonałem za pomocą Gaussian 09 rev. D.01.
Jest to nieco rozwinięcie przykładu w Exploring Chemistry with Electronic Structure Methods, wydanie 3 (str. 71).

Przedstawię pełne dane wejściowe do obliczeń, a na koniec całkowitą energię do porównania, na wypadek gdybyś chciał sam przeprowadzić obliczenia. Proszę zauważyć, że nie przeprowadziłem żadnych optymalizacji geometrii i przyjąłem równowagową odległość wiązania równą 120 µm. Myślę, że to rozsądny wybór, ponieważ to tylko przykład, a optymalizacje można uznać za dodatkowe ćwiczenie.

Użyłem metody RHF, ROHF i UHF, mimo że używam przybliżeń funkcjonalnych gęstości .

Ponieważ głównym celem jest użycie słowa kluczowego stabilny , zaczynamy od funkcji falowej, o której już wiadomo, że jest niestabilna. Roztwór tlenu w RHF, nazwa pliku bp86svp.rhf.sing.gjf:

% chk = bp86svp.rhf.sing.chk% nproc = 2% mem = 10000MB # p RBP86 / Def2SVP / W06DenFitgfinput gfoldprint iop (6/7 = 3) symetria (luźna) pop = pełna pop = nboscf (xqc) karta tytułowa nieużywana 0 1O 0,6 0,0 0,0O -0,6 0,0 0,0 

To wejście wykorzystuje kilka słowa kluczowe, które nie są niezbędne do wykonania obliczeń. Na przykład sekcja trasy #p wymaga szczegółowych danych wyjściowych. DenFit jest już zasugerowany przy wyborze W06 jako dodatkowego zestawu podstawowego. Lubię to jednak pisać, żeby dokładnie wiedzieć, co robię. To samo dotyczy symmetry (loose) ; czasami lubię odwracać symetrię, więc wiem, że tym razem naprawdę tego chciałem. Linia gfinput gfoldprint iop (6/7 = 3) jest dołączona, aby molden (❤) mógł odczytywać (i wyświetlać) orbitale. Nie ma nic złego w żądaniu analizy populacji.

W tym przypadku nawet scf (MaxCycle = 9999) nie doprowadzi do konwergencji; z scf (xqc) pozwalamy algorytmowi przełączyć się na konwergencję kwadratową, jeśli nie można jej osiągnąć w sposób konwencjonalny. Zauważ, że może to doprowadzić do innego rozwiązania niż pierwotnie próbowano.

Do obliczeń typu publikacji uwzględniłbym również int (ultrafine) i scf (tight) ; ale zapomniałem o tym tutaj.

Stąd przystąpiłem do obliczenia stabilności funkcji falowej, tj. bp86svp.rhf.sing.stab.gjf:

% chk = bp86svp .rhf.sing.stab.chk% nproc = 2% mem = 10000MB% oldchk = bp86svp.rhf.sing.chk # p RBP86 / Def2SVP / W06DenFitgeom = check guess = readgfinput gfoldprint iop (6/7 = 3) scf (xqc ) stabletitle card unused 0 1 

Zauważ, że w tym przypadku SCF zbiegnie się w ramach konwencjonalnych cykli, a zatem energia jest inna. Możesz to dodatkowo sprawdzić, czytając plik punktu kontrolnego i wykonując nowy cykl SCF.

Jednak w analizie stabilności znajdziesz następujące wyniki:

 ***** ************************************************** **************** Analiza stabilności przy użyciu macierzy pojedynczych: **************************** ***************************************** Wektory własne macierzy stabilności: wzbudzone nie można określić symetrii stanu. Wektor własny 1: Triplet-? Sym Wartość własna = -0,0560505 = 2,000 8 -> 9 0,70645 Nie można określić symetrii stanu wzbudzonego. Wektor własny 2: Singlet-? Sym Wartość własna = 0,0372059 = 0,000 8 -> 9 0,70689 Nie można określić symetrii stanu wzbudzonego. Wektor własny 3: Triplet-? Sym Wartość własna = 0,1233031 = 2,000 7 -> 9 0,70493 Nie można było określić symetrii stanu wzbudzonego. Wektor własny 4: Triplet-? Sym Wartość własna = 0,2035093 = 2,000 5 -> 9 0,70373 Nie można określić symetrii stanu wzbudzonego. Wektor własny 5: Singlet-? Sym Wartość własna = 0,2902800 = 0,000 6 -> 9 0,70685 Nie można określić symetrii stanu wzbudzonego. Wektor własny 6: Singlet-? Sym Eigenvalue = 0,3353297 = 0,000 5 -> 9 0,70254 SavETr: write IOETrn = 770 NScale = 10 NData = 16 NLR = 1 NState = 6 LETran = 118. Funkcja falowa ma niestabilność RHF -> UHF. 

Zgodnie z oczekiwaniami widzimy kilka niestabilności. W tym momencie możemy przeprowadzić kolejne obliczenia z stable = opt , aby znaleźć taką funkcję falową. Z powodów, dla których nie do końca rozumiem, dlaczego znajduje rozwiązanie zepsutej symetrii zamiast rozwiązania tripletowego.

Dla celów ćwiczeń ręcznie wygenerujemy rozwiązanie zepsutej symetrii; tj. bp86svp.uhf.sing.gjf:

% chk = bp86svp.uhf.sing.chk% nproc = 2% mem = 10000MB% oldchk = bp86svp.rhf.sing. chk # p UBP86 / Def2SVP / W06DenFitscf (xqc) gfinput gfoldprint iop (6/7 = 3) symetria (loose) pop = full pop = nbogeom = check guess = (read, mix) karta tytułowa nieużywana 0 1 

Słowo kluczowe guess (mix) generuje odgadnięcie UHF, mieszając HOMO z LUMO. Musisz to zrobić tylko raz. Zwróć uwagę, że słowo kluczowe guess (always) ma zastosowanie tylko do optymalizacji i będzie wykonywać nowe początkowe odgadnięcie w każdym punkcie optymalizacji. Osobiście nie mam pojęcia, dlaczego istnieje ta opcja ani do czego jest używana.

Teraz możemy przejść dalej i przetestować stabilność; tj. bp86svp.uhf.sing.stab:

% chk = bp86svp.uhf.sing.stab.chk% nproc = 2% mem = 10000MB% oldchk = bp86svp.uhf. sing.chk # p UBP86 / Def2SVP / W06DenFitscf (xqc) gfinput gfoldprint iop (6/7 = 3) symetria (loose) pop = full pop = nbogeom = check guess = readstabletitle card unused0 1 

Zauważ, że nie musimy ponownie mieszać orbitali w funkcji falowej. Sekcja stabilności będzie teraz wyglądać następująco:

 ********************************** ************************************* Analiza stabilności z wykorzystaniem macierzy pojedynczych: ******* ************************************************** ************** Wektory własne macierzy stabilności: nie można określić symetrii stanu wzbudzonego. Wektor własny 1: 1,012-? Sym Wartość własna = -0,0000016 = 0,006 8A -> 9A 0,70640 8B -> 9B -0,70640 Nie można określić symetrii stanu wzbudzonego. Wektor własny 2: 1,006 -? Sym Wartość własna = 0,0930085 = 0,003 8A -> 9A 0,70688 8B -> 9B 0,70688
Nie można było określić symetrii stanu wzbudzonego. Wektor własny 3: 2,245-? Sym Wartość własna = 0,2031898 = 1,010 7A -> 9A -0,70381 7B -> 9B 0,70381 SavETr: write IOETrn = 770 NScale = 10 NData = 16 NLR = 1 NState = 3 LETran = 64. Funkcja falowa jest stabilna pod rozważane perturbacje. 

Wiemy już, że stan trypletowy powinien być bardziej stabilny. Jak zasugerowałem, lubię zacząć od obliczenia ROHF. W zasadzie obliczenia te są zawsze niestabilne w stosunku do rozwiązania UHF. Zwykle jednak prowadzi to do szybszych wyników, zwłaszcza jeśli masz już konwergentne rozwiązanie RHF. W tym przypadku moglibyśmy z łatwością pracować na podstawie rozwiązania zepsutej symetrii i bezpośrednio obliczyć z niego tryplet. Wybierz to, co jest dla Ciebie wygodniejsze.
W tym celu ilustracyjnym zdecydowałem się wygenerować nowe początkowe przypuszczenie; tj. bp86svp.rohf.trip.com:

% chk = bp86svp.rohf.trip.chk% nproc = 2% mem = 10000MB # p ROBP86 / Def2SVP / W06DenFitgfinput gfoldprint iop (6/7 = 3) symetria (luźna) pop = pełna pop = nbotitle card unused 0 3O 0,6 0,0 0,0O -0,6 0,0 0,0 

I stamtąd pobierz triole UHF; tj. bp86svp.uhf.trip.gjf:

% chk = bp86svp.uhf.trip.chk% nproc = 2% mem = 10000MB% oldchk = bp86svp.rohf.trip. chk # p UBP86 / Def2SVP / W06DenFitgfinput gfoldprint iop (6/7 = 3) symetria (loose) pop = full pop = nboscf (xqc) geom = check guess = readtitle card unused 0 3 

A potem oczywiście sprawdź dla niestabilności; tj. bp86svp.uhf.trip.stab.gjf:

% chk = bp86svp.uhf.trip.stab.chk% nproc = 2% mem = 10000MB% oldchk = bp86svp. uhf.trip.chk # p UBP86 / Def2SVP / W06DenFitgfinput gfoldprint iop (6/7 = 3) symetria (luźna) pop = pełna pop = nboscf (xqc) geom = sprawdź guess = readstabletitle card unused0 3 

Znajdziemy następującą sekcję dotyczącą stabilności:

 *********************************** ************************************ Analiza stabilności z wykorzystaniem macierzy pojedynczych: ******** ************************************************ *************
Wektory własne macierzy stabilności: nie można było określić symetrii stanu wzbudzonego. Wektor własny 1: 3,003-? Sym Wartość własna = 0,2313384 = 2,004 6B -> 8B 0,70567 7B -> 9B 0,70567 Nie można określić symetrii stanu wzbudzonego. Wektor własny 2: 3,003-? Sym Wartość własna = 0,2313396 = 2,004 6B -> 9B -0,70568 7B -> 8B 0,70568 LASSW widzi wektor ze wszystkimi elementami mniejszymi niż 0,100000000000 E-03 LASSW widzi wektor ze wszystkimi elementami mniejszymi niż 0,100000000000E-03 Symetria stanu wzbudzonego nie można było ustalić. Wektor własny 3: 3,002-? Sym Wartość własna = 0,2704717 = 2,003 6B -> 8B 0,70711 7B -> 9B -0,70711 SavETr: napisz IOETrn = 770 NScale = 10 NData = 16 NLR = 1 NState = 3 LETran = 64. Funkcja falowa jest stabilna pod rozważane perturbacje. 

Obliczenia zależne od czasu będą szukać wzbudzeń w oparciu o funkcję fali odniesienia. Dlatego rozwiązanie nie będzie inne. Jeśli nie musisz wykonywać tych obliczeń, ponieważ interesuje Cię np. Widmo UV / Vis, to nie ma powodu, aby to robić.

Wydaje mi się, że uruchomiliśmy teraz niezbędne scenariusze, więc oto wyniki:

 Plik poleceń Energia funkcjonalna / Hartree (cykle) bp86svp.rhf.sing E (RB-P86) = -150.155033509 (3) bp86svp.rhf.sing.maxc Nie znaleziono zestawienia energii. Bp86svp.rhf.sing.scf E (RB-P86) = -150.154053425 (16) bp86svp.rhf.sing.stab E (RB-P86) = -150,154053425 (16) bp86svp.rhf.sing.stab.opt E (UB-P86) = -150.201668045 (4) bp86svp.rohf.trip E (ROB-P86) = -150,213780181 (9) bp86svp.uhf.quin. stabilny E (UB-P86) = -149,651924155 (8) bp86svp.uhf.sing E (UB-P86) = -150.201668044 (8) bp86svp.uhf.sing.stab E (UB-P86) = -150.201668044 (1)
bp86svp.uhf.trip E (UB-P86) = -150.215687576 (8) bp86svp.uhf.trip.stab E (UB-P86) = -150.215687574 (1) bp86svp.uhf.trip.td E (UB-P86) = -150.215687575 (9) 

Na koniec i być może najważniejsze: w przypadku DFA nigdy nie wystarczy użyć jednej metody. Więcej informacji: Kryteria wyboru funkcji DFT. Nadchodzi zima!

Jaskółka oknówka!! . Dziękuję za tak szczegółowe i obrazowe wyjaśnienie !!! Nadal jestem zdezorientowany, dlaczego określasz scf (xqc) razem z guess = read w calcs stabilności. 1) Naturalnie rozumiem, że zilustrowałeś typową procedurę HF, w której SCF oblicza / tworzy / zgaduje funkcję falową, dopóki kryteria energii i gęstości (orbitale!) Nie zostaną spełnione, a także fakt, że jest to bardzo prosta cząsteczka dwuatomowa (stąd brak optymalizacji ); Gdybym wykonywał DFT w systemie pi, musiałbym naturalnie najpierw zoptymalizować, czy mogę użyć tej zoptymalizowanej geometrii do wszystkich obliczeń stabfunkcji falowej?
Aby było jasne, słowo kluczowe opt w części stabilnej = opt zadania wejściowego stabilności nie odnosi się do optymalizacji geometrycznej, prawda? Wielkie dzięki.
@kimdazar Myślę, że nie było żadnego szczególnego powodu do określania xqc po odczytaniu z orbitali poza lenistwem, a może analiza stabilności tego potrzebowała. Nie pamiętam; nie powinno to jednak zaszkodzić. Do obliczeń stabilności należy użyć zoptymalizowanej geometrii. Jeśli zauważysz niestabilności, musisz ponownie zoptymalizować za pomocą funkcji nowej fali. Stabilny = opt dotyczy tylko obliczeń jednopunktowych; tak.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...