Implementacja metody TDDFT uwzględniają
Transkrypt
Implementacja metody TDDFT uwzględniają
Implementacja metody TDDFT uwzględniająca w przybliżony sposób wpływ konfiguracji podwójnie wzbudzonych na energię wzbudzeń Radosław Włodarczyk 8 stycznia 2008 roku Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References 1 Wstęp 2 Implementacja TDDFT Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu 3 Szacowanie poprawek od podwójnych wzbudzeń Model Implementacja 4 Podsumowanie Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Plan pracy Implementacja TDDFT Implementacja szacowania poprawek pochodzących od konfiguracji podwójnie wzbudzonych Modelowe obliczenia dla wybranych układów Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References TDDFT zalety uwzględniona korelacja niski koszt obliczeniowy wady źle opisuje stany zawierające znaczącą domieszkę konfiguracji podwójnie wzbudzonych Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References TDDFT zalety uwzględniona korelacja niski koszt obliczeniowy wady źle opisuje stany zawierające znaczącą domieszkę konfiguracji podwójnie wzbudzonych Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Szkic wyprowadzenia TDDFT W metodzie Kohna-Shama rozważany jest układ nieoddziałujących cząstek wprowadzany jest efektywny potencjał Veff = Vext + VH + Vxc dla którego gęstość układu nieoddziałujących cząstek jest taka sama jak gęstość układu oddziałujących cząstek w potencjale Vext Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Liniowa funkcja odpowiedzi Liniowa funkcja odpowiedzi układu oddziałujących cząstek χ(r , t, r 0 , t 0 ) = δρ(r , t) δVext (r 0 , t 0 ) (1) Liniowa funkcja odpowiedzi układu nieoddziałujących cząstek χs (r , t, r 0 , t 0 ) = Radosław Włodarczyk δρ(r , t) δVeff (r 0 , t 0 ) Implementacja TDDFT (2) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Jądro korelacyjno-wymienne χ(r , t, r 0 , t 0 ) = δρ(r , t) δρ(r , t) δVeff (r 00 , t 00 ) = δVext (r 0 , t 0 ) δVeff (r 00 , t 00 ) δVext (r 0 , t 0 ) (3) δVeff (r , t) = δ(r − r 0 )δ(t − t 0 )+ δVext (r 0 , t 0 ) ZZ 00 00 00 δ(t − t ) 00 00 + dr dt + fxc (r , t, r , t ) χ(r 00 , t 00 , r 0 , t 0 ) (4) |r − r 00 | gdzie jądro korelacyjno-wymienne dane jest przez fxc (r , t, r 0 , t 0 ) = Radosław Włodarczyk δVxc (r , t) δρ(r 0 , t 0 ) Implementacja TDDFT (5) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Energie wzbudzeń Stosując transformację Fouriera otrzymujemy samouzgodnione równanie na funkcję odpowiedzi układu na zaburzenie zewnętrzne χ(r , r 0 , ω) = χs (r , r 0 , ω)+ ZZ + 1 + fxc (r1 , r2 , ω) χ(r2 , r 0 , ω) dr1 dr2 χs (r , r1 , ω) |r1 − r2 | (6) Energie wzbudzeń dane są przez bieguny χ(ω) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Przybliżenie ALDA W przybliżeniu lokalnym (LDA) zakładamy fxc (r , ω) = δ(r − r 0 )fxc (r , r 0 , ω) (7) Wprowadzając dodatkowe założenie o niezależności jądra korelacyjno-wymiennego od częstości otrzymujemy przybliżenie adiabatyczne (ALDA) W przybliżeniu ALDA możliwe jest rozprzęgnięcie równania (6) W bazie orbitali Kohna-Shama otrzymujemy wtedy postać macierzową zaproponowaną przez Cassidę. Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Postać macierzowa Cassidy Stany wzbudzone dane są przez uogólnione zagadnienie własne A B B A ! X Y ! =ω 1 0 0 −1 ! X Y ! gdzie Aai,bj = δij δab (a − i ) + (ai|jb) + (ai|fxc |jb) − cHF (ab|ji) Bai,bj = (ai|bj) + (ai|fxc |bj) − cHF (aj|bi) cHF wyznacza udział wymiany Focka dla funkcjonałów hybrydowych Radosław Włodarczyk Implementacja TDDFT (8) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Warianty TDDFT RPA: bez dalszych przybliżeń TDA: B = 0 (Hirata and Head-Gordon, 1999) odpowiednik CIS przyspiesza czas obliczeń wyniki dla polienów lepsze niz z RPA SPA: rozpatrujemy jedynie diagonalne elementy macierzy A nie stosuje się do obliczeń numerycznych poprawne tylko dla dobrze rozseparowanych stanów użyteczne do rozważań modelowych Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu TDA - Rozwiązanie zagadnienia własnego Zagadnienie własne AX = ωX (9) jest rozwiązywane iteracyjnie, ponieważ potrzebujemy tylko paru najmniejszych wartości własnych jego rozmiar wyklucza zastosowanie metod nieiteracyjnych Kluczową cechą metod iteracyjnych jest fakt, że nie wymagają one znajomości macierzy A, a jedynie możliwości obliczenia iloczynów macierz razy wektor σai = X Aai,bj Xbj bj dla pewnych wektorów próbnych X Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Obliczanie σ Iloczyn σai = (a −i )Xai + X ((ai|bj) + (ai|fxc |bj) − cHF (ab|ji)) Xbj (10) bj może być przekształcony do σai = (a − i )Xai + X Cµi Cνa F̃µν (11) µν gdzie F̃µν = X ((µν|κλ) − cHF (µλ|κν))P̃κλ + (µ|fxc ρ̃|ν) (12) κλ P̃κλ = X Cκj Cλb Xbj ρ̃ = Tr(P̃S) bj Radosław Włodarczyk Implementacja TDDFT (13) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja TDA-TDDFT Równania TDA-TDDFT są bardzo podobne do równań CIS Wykorzystywany jest istniejący kod do obliczenia kulombowskiej i wymiennej części pseudomacierzy Focka Wykorzystywana jest ta sama procedura diagonalizacji co w CIS (Davidson-Liu) Elementy macierzowe jądra korelacyjno-wymiennego są obliczane przez całkowanie numeryczne z wykorzystaniem gridu używanego do całkowania potencjału korelacyjno-wymiennego Optymalizacja procedury całkowania wykonana przez analogię do odpowiedniego kodu implementującego całkowanie potencjału korelacyjno-wymiennego Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja TDA-TDDFT Równania TDA-TDDFT są bardzo podobne do równań CIS Wykorzystywany jest istniejący kod do obliczenia kulombowskiej i wymiennej części pseudomacierzy Focka Wykorzystywana jest ta sama procedura diagonalizacji co w CIS (Davidson-Liu) Elementy macierzowe jądra korelacyjno-wymiennego są obliczane przez całkowanie numeryczne z wykorzystaniem gridu używanego do całkowania potencjału korelacyjno-wymiennego Optymalizacja procedury całkowania wykonana przez analogię do odpowiedniego kodu implementującego całkowanie potencjału korelacyjno-wymiennego Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja TDA-TDDFT Równania TDA-TDDFT są bardzo podobne do równań CIS Wykorzystywany jest istniejący kod do obliczenia kulombowskiej i wymiennej części pseudomacierzy Focka Wykorzystywana jest ta sama procedura diagonalizacji co w CIS (Davidson-Liu) Elementy macierzowe jądra korelacyjno-wymiennego są obliczane przez całkowanie numeryczne z wykorzystaniem gridu używanego do całkowania potencjału korelacyjno-wymiennego Optymalizacja procedury całkowania wykonana przez analogię do odpowiedniego kodu implementującego całkowanie potencjału korelacyjno-wymiennego Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja TDA-TDDFT Równania TDA-TDDFT są bardzo podobne do równań CIS Wykorzystywany jest istniejący kod do obliczenia kulombowskiej i wymiennej części pseudomacierzy Focka Wykorzystywana jest ta sama procedura diagonalizacji co w CIS (Davidson-Liu) Elementy macierzowe jądra korelacyjno-wymiennego są obliczane przez całkowanie numeryczne z wykorzystaniem gridu używanego do całkowania potencjału korelacyjno-wymiennego Optymalizacja procedury całkowania wykonana przez analogię do odpowiedniego kodu implementującego całkowanie potencjału korelacyjno-wymiennego Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja TDA-TDDFT Równania TDA-TDDFT są bardzo podobne do równań CIS Wykorzystywany jest istniejący kod do obliczenia kulombowskiej i wymiennej części pseudomacierzy Focka Wykorzystywana jest ta sama procedura diagonalizacji co w CIS (Davidson-Liu) Elementy macierzowe jądra korelacyjno-wymiennego są obliczane przez całkowanie numeryczne z wykorzystaniem gridu używanego do całkowania potencjału korelacyjno-wymiennego Optymalizacja procedury całkowania wykonana przez analogię do odpowiedniego kodu implementującego całkowanie potencjału korelacyjno-wymiennego Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Symetryzacja zagadnienia własnego Wariant RPA wymaga rozwiązania niehermitowskiego zagadnienia własnego A B B A ! X Y ! =ω 1 0 0 −1 ! X Y ! (14) Rozwiązanie go bezpośrednio wymagałoby istotnej modyfikacji procedury diagonalizacji. Unikamy tego symetryzując zagadnienie (14) przy pomocy transformacji unitarnej 1 U=√ 2 Radosław Włodarczyk 1 1 −1 1 ! Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Symetryzacja zagadnienia własnego II Zagadnienie własne po transformacji ΩF = ω 2 F gdzie 1 1 Ω = −S − 2 (A + B)S − 2 1 F = S 2 (X + Y ) S = −(A − B)−1 To podejście ma ograniczenia związane z koniecznością 1 obliczenia S − 2 . Radosław Włodarczyk Implementacja TDDFT (15) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Symetryzacja zagadnienia własnego II Zagadnienie własne po transformacji ΩF = ω 2 F gdzie 1 1 Ω = −S − 2 (A + B)S − 2 1 F = S 2 (X + Y ) S = −(A − B)−1 To podejście ma ograniczenia związane z koniecznością 1 obliczenia S − 2 . Radosław Włodarczyk Implementacja TDDFT (15) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu 1 Obliczanie S − 2 Dla funkcjonałów niehybrydowych (A − B) jest macierzą diagonalną (A − B)ai,bj = δij δab (a − i ) więc −1 1 2 Sai,bj = δij δab (i − a ) 2 (16) W przypadku funkcjonałów hybrydowych (A − B) zawiera człony pozadiagonalne (A − B)ai,bj = δij δab (a − i ) − cHF ((ab|ji) − (aj|bi)) (17) 1 co w praktyce uniemożliwia obliczenie S − 2 . Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu 1 Obliczanie S − 2 Dla funkcjonałów niehybrydowych (A − B) jest macierzą diagonalną (A − B)ai,bj = δij δab (a − i ) więc −1 1 2 Sai,bj = δij δab (i − a ) 2 (16) W przypadku funkcjonałów hybrydowych (A − B) zawiera człony pozadiagonalne (A − B)ai,bj = δij δab (a − i ) − cHF ((ab|ji) − (aj|bi)) (17) 1 co w praktyce uniemożliwia obliczenie S − 2 . Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja RPA-TDDFT Zsymetryzowane równania RPA-TDDFT są bardzo podobne do równań TDA-DFT Wykorzystywany jest kod implementujący przybliżenie TDA Wszystkie różnice pomiędzy wariantami da się uwzględnić przez prostą modyfikację macierzy pseudogęstości i elementów diagonalnych Ω Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja RPA-TDDFT Zsymetryzowane równania RPA-TDDFT są bardzo podobne do równań TDA-DFT Wykorzystywany jest kod implementujący przybliżenie TDA Wszystkie różnice pomiędzy wariantami da się uwzględnić przez prostą modyfikację macierzy pseudogęstości i elementów diagonalnych Ω Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Implementacja RPA-TDDFT Zsymetryzowane równania RPA-TDDFT są bardzo podobne do równań TDA-DFT Wykorzystywany jest kod implementujący przybliżenie TDA Wszystkie różnice pomiędzy wariantami da się uwzględnić przez prostą modyfikację macierzy pseudogęstości i elementów diagonalnych Ω Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Jądro korelacyjno-wymienne Typ obliczeń Liczba pochodnych LDA GGA stan podstawowy 1 stan wzbudzony razem 2 3 ∂Exc ∂ρ2σ ∂ Exc ∂ρσ ∂ρτ Radosław Włodarczyk 3 ∂Exc ∂Exc , ∂ρ2σ ∂γστ 2 ∂ Exc ∂ Exc , , . . . ∂ρσ ∂ρτ ∂ρσ ∂γστ 9 12 Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Oprogramowanie do obliczeń symbolicznych Problemy wyprowadzenie wzorów implementacja Rozwiązanie użycie oprogramowania CAS rozwiązuje pierwszy problem automatyczna generacja kodu pozwala rozwiązać drugi Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Oprogramowanie do obliczeń symbolicznych Problemy wyprowadzenie wzorów implementacja Rozwiązanie użycie oprogramowania CAS rozwiązuje pierwszy problem automatyczna generacja kodu pozwala rozwiązać drugi Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Dostępność Istniejące implementacje DFT Repositorya (maple, Fortran 77) cclibb (maxima, C) Każde z tych rozwiązań ma wady a b http://www.cse.scitech.ac.uk/ccg/dft/ (O’boyle et al., 2008) Dostępne bezpłatne oprogramowanie CAS maxima yacas i kilka mniej znanych (axiom, mupad, ...) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Dostępność Istniejące implementacje DFT Repositorya (maple, Fortran 77) cclibb (maxima, C) Każde z tych rozwiązań ma wady a b http://www.cse.scitech.ac.uk/ccg/dft/ (O’boyle et al., 2008) Dostępne bezpłatne oprogramowanie CAS maxima yacas i kilka mniej znanych (axiom, mupad, ...) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Porównanie wybranych programów CAS możliwości złożoność generacja kodu maxima yacas duże przytłaczająca FORTRAN wystarczające niewielka C/C++ Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Optymalizacja generacji kodu Pierwsze podejście: bezpośrednie użycie wbudowanego generatora kodu yacasa kod VWN5 ma ponad 700 kB kompilacja wynikowego pliku trwa ponad 2 godziny Problem: wygenerowane wyrażenia są bardzo duże. Ale zawierają wiele powtarzających się wielokrotnie członów... Rozwiązanie: eliminacja wspólnych podwyrażeń (CSE). (Kompilator też to próbuje robić, ale niezbyt dobrze, więc przeprowadzamy CSE na poziomie wyrażeń w yacasie.) Wynik: rozmiar kodu zmniejszony ponad pięciokrotnie struktura kodu znacząco uproszczona czas kompilacji dramatycznie zredukowany (poniżej minuty) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Optymalizacja generacji kodu Pierwsze podejście: bezpośrednie użycie wbudowanego generatora kodu yacasa kod VWN5 ma ponad 700 kB kompilacja wynikowego pliku trwa ponad 2 godziny Problem: wygenerowane wyrażenia są bardzo duże. Ale zawierają wiele powtarzających się wielokrotnie członów... Rozwiązanie: eliminacja wspólnych podwyrażeń (CSE). (Kompilator też to próbuje robić, ale niezbyt dobrze, więc przeprowadzamy CSE na poziomie wyrażeń w yacasie.) Wynik: rozmiar kodu zmniejszony ponad pięciokrotnie struktura kodu znacząco uproszczona czas kompilacji dramatycznie zredukowany (poniżej minuty) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Optymalizacja generacji kodu Pierwsze podejście: bezpośrednie użycie wbudowanego generatora kodu yacasa kod VWN5 ma ponad 700 kB kompilacja wynikowego pliku trwa ponad 2 godziny Problem: wygenerowane wyrażenia są bardzo duże. Ale zawierają wiele powtarzających się wielokrotnie członów... Rozwiązanie: eliminacja wspólnych podwyrażeń (CSE). (Kompilator też to próbuje robić, ale niezbyt dobrze, więc przeprowadzamy CSE na poziomie wyrażeń w yacasie.) Wynik: rozmiar kodu zmniejszony ponad pięciokrotnie struktura kodu znacząco uproszczona czas kompilacji dramatycznie zredukowany (poniżej minuty) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Optymalizacja generacji kodu Pierwsze podejście: bezpośrednie użycie wbudowanego generatora kodu yacasa kod VWN5 ma ponad 700 kB kompilacja wynikowego pliku trwa ponad 2 godziny Problem: wygenerowane wyrażenia są bardzo duże. Ale zawierają wiele powtarzających się wielokrotnie członów... Rozwiązanie: eliminacja wspólnych podwyrażeń (CSE). (Kompilator też to próbuje robić, ale niezbyt dobrze, więc przeprowadzamy CSE na poziomie wyrażeń w yacasie.) Wynik: rozmiar kodu zmniejszony ponad pięciokrotnie struktura kodu znacząco uproszczona czas kompilacji dramatycznie zredukowany (poniżej minuty) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Eliminacja wspólnych podwyrażeń Szkic algorytmu Powtarzaj Znajdź w wyrażeniu E wszystkie proste podwyrażenia i zachowaj w L Usuń z L podwyrażenia występujące tylko raz Jeżeli L pusta, wyjdź z pętli Skompresuj L (usuń kopie) Przyporządkuj unikalne identyfikatory elementom L, zachowaj pary w S Zamień w E podwyrażenia z S na odpowiadające im identyfikatory Wygeneruj instrukcje przypisania dla par należących do S Wygeneruj kod dla wyrażenia E Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Przykładowy kod I EXPBE = X ρσ e X F X (18) 3kF 4π (19) σ eX = − FX = 1 + κ − κ 1+ √ s= µs 2 κ γσσ 2kF ρσ (21) 1 kF = (3π 2 ρσ ) 3 Radosław Włodarczyk (20) Implementacja TDDFT (22) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Przykładowy kod II mu := 0.2195149727645171; kappa := 0.804; kF(rho) := (3 * Pi^2 * rho)^(1/3); eX(rho) := -3/4 * kF(rho) / Pi; S(rho,gamma) := 1/2 * Sqrt(gamma) / (kF(rho) * rho + Tiny); FX(s) := 1 + kappa - kappa / (1 + (mu*s^2)/kappa); XPBE(rhoa, rhob, gammaaa, gammaab, gammabb) := [ rhoa * eX(2*rhoa) * FX(S(2*rhoa, 4*gammaaa)) + rhob * eX(2*rhob) * FX(S(2*rhob, 4*gammabb)); ]; Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Przykładowy kod III e := XPBE(rhoa, rhob, gammaaa, gammaab, gammabb); ggacodegen("pbe_x_functional", e, rhoa, rhob, gammaaa, gammaab, gammabb); Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Zaimplementowane funkcjonały korelacyjne VWN3, VWN5, VWN5RPA, LYP, PBE, PW91, PW92 wymienne Slater, Becke88, Becke3, PW91, mPW91, PBE, revPBE korelacyjno-wymienne dowolne kombinacje powyższych, w szczególności: SVWN, SLYP, BLYP, PW91, PBE, B3LYP, PBE0 Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Implementacja TDA-TDDFT Implementacja RPA-TDDFT Automatyczna generacja kodu Podsumowanie Implementacja TDDFT praktycznie zakończona wersja z restrykcją spinową działa dla wszystkich zaimplementowanych funkcjonałów obliczenia w wariancie RPA (tylko funkcjonały niehybrydowe) i TDA możliwość szybkiego dodawania nowych funkcjonałów do zrobienia dalsze testy obliczanie intensywności i momentów przejść wersja bez restrykcji spinowej (?) do zrobienia przez innych wariant RPA dla funkcjonałów hybrydowych wykorzystanie symetrii Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Energie wzbudzeń uzyskane z TDDFT TDDFT nie opisuje poprawnie stanów wzbudzonych zawierających duży udział konfiguracji podwójnie wzbudzonych. Problem ten występuje w praktycznych obliczeniach, np. w polienach Wynika z niego np. niezbyt dobry opis stanu 21 Ag w butadienie Została zaproponowana prosta modyfikacja TDDFT która umożliwia efektywne oszacowanie energii wzbudzeń zawierających znaczący przyczynek od konfiguracji podwójnie wzbudzonych (Maitra et al., 2004) Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Prosty model dwukonfiguracyjny baza konfiguracja pojedynczo wzbudzona Φq konfiguracja dwukrotnie wzbudzona ΦD hamiltonian H= Radosław Włodarczyk Hqq HqD HqD HDD ! Implementacja TDDFT (23) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Poprawka do energii wzbudzenia Diagonalizując hamiltonian otrzymujemy energię stanu wzbudzonego |HqD |2 E = Hqq + E − HDD (24) Wstawienie E = H00 + ω daje ω = (Hqq − H00 ) + |HqD |2 ω − (HDD − H00 ) gdzie H00 - energia stanu podstawowego ω - energia wzbudzenia Radosław Włodarczyk Implementacja TDDFT (25) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Rozszerzenie przybliżenia SPA W przybliżeniu SPA energia wzbudzenia do stanu Φq A ωSPA = ωq + 2hq|fH |qi + 2hq|fXC (ωq )|qi (26) gdzie ωq - różnica energii orbitalnych fH - jądro kulombowskie (Hartree) A (ω ) - (adiabatyczne) jądro korelacyjno-wymienne fXC q Wprowadzamy nieadiabatyczne rozszerzenie przybliżenia SPA ω = ωq + 2hq|fH |qi + 2hq|fXC (ω)|qi (27) gdzie fXC (ω) - zależne od częstości jądro korelacyjno-wymienne Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Rozszerzenie przybliżenia SPA W przybliżeniu SPA energia wzbudzenia do stanu Φq A ωSPA = ωq + 2hq|fH |qi + 2hq|fXC (ωq )|qi (26) gdzie ωq - różnica energii orbitalnych fH - jądro kulombowskie (Hartree) A (ω ) - (adiabatyczne) jądro korelacyjno-wymienne fXC q Wprowadzamy nieadiabatyczne rozszerzenie przybliżenia SPA ω = ωq + 2hq|fH |qi + 2hq|fXC (ω)|qi (27) gdzie fXC (ω) - zależne od częstości jądro korelacyjno-wymienne Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Oszacowanie fXC (ω) W rozważanym układzie modelowym ω = (Hqq − H00 ) + |HqD |2 ω − (HDD − H00 ) (28) czyli ω = ωSPA + |HqD |2 ω − (HDD − H00 ) (29) i przez porównanie wyniku ze wzorem (27) otrzymujemy postać nieadiabatycznego jądra korelacyjno-wymiennego A 2hq|fXC (ω)|qi = 2hq|fXC (ωq )|qi + Radosław Włodarczyk |HqD |2 ω − (HDD − H00 ) Implementacja TDDFT (30) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Oszacowanie fXC (ω) W rozważanym układzie modelowym ω = (Hqq − H00 ) + |HqD |2 ω − (HDD − H00 ) (28) czyli ω = ωSPA + |HqD |2 ω − (HDD − H00 ) (29) i przez porównanie wyniku ze wzorem (27) otrzymujemy postać nieadiabatycznego jądra korelacyjno-wymiennego A 2hq|fXC (ω)|qi = 2hq|fXC (ωq )|qi + Radosław Włodarczyk |HqD |2 ω − (HDD − H00 ) Implementacja TDDFT (30) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Oszacowanie fXC (ω) W rozważanym układzie modelowym ω = (Hqq − H00 ) + |HqD |2 ω − (HDD − H00 ) (28) czyli ω = ωSPA + |HqD |2 ω − (HDD − H00 ) (29) i przez porównanie wyniku ze wzorem (27) otrzymujemy postać nieadiabatycznego jądra korelacyjno-wymiennego A 2hq|fXC (ω)|qi = 2hq|fXC (ωq )|qi + Radosław Włodarczyk |HqD |2 ω − (HDD − H00 ) Implementacja TDDFT (30) Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Znaczenie otrzymanej poprawki A hq|fXC (ω)|qi = hq|fXC (ωq )|qi + 1 2 2 |HqD | ω − (HDD − H00 ) Wyjście poza przybliżenie adiabatyczne umożliwia uwzględnienie wpływu konfiguracji wzbudzonych podwójnie na energię wzbudzenia. Otrzymany wynik jest dokładny w ramach przybliżenia SPA przy sprzężeniu z jedną konfiguracją podwójnie wzbudzoną. Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Schemat obliczeń przeprowadzamy (adiabatyczne) obliczenia TDDFT szukamy konfiguracji podwójnie wzbudzonych o energii zbliżonej do obliczonych wzbudzeń obliczamy poprawkę do jądra korelacyjno-wymiennego przeprowadzamy jeszcze raz obliczenia TDDFT używając zmodyfikowanego jądra korelacyjno-wymiennego Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Model Implementacja Parametryzacja Poprawka do jądra korelacyjno-wymiennego wynosi 1 2 2 |HqD | ω − (HDD − H00 ) gdzie ω - oszacowana z energii wzbudzenia z TDDFT (HDD − H00 ) - szacowana z energii orbitalnych HqD - szacowana z reguł Slatera-Condona Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Plan pracy Implementacja TDDFT (hybrydowe TDA, niehybrydowe RPA) Praktycznie zakończona Implementacja szacowania poprawek pochodzących od konfiguracji podwójnie wzbudzonych W trakcie Modelowe obliczenia dla wybranych układów W planach butadien, heksatrien i (być może) inne Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Plan pracy Implementacja TDDFT (hybrydowe TDA, niehybrydowe RPA) Praktycznie zakończona Implementacja szacowania poprawek pochodzących od konfiguracji podwójnie wzbudzonych W trakcie Modelowe obliczenia dla wybranych układów W planach butadien, heksatrien i (być może) inne Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Plan pracy Implementacja TDDFT (hybrydowe TDA, niehybrydowe RPA) Praktycznie zakończona Implementacja szacowania poprawek pochodzących od konfiguracji podwójnie wzbudzonych W trakcie Modelowe obliczenia dla wybranych układów W planach butadien, heksatrien i (być może) inne Radosław Włodarczyk Implementacja TDDFT Plan Wstęp Implementacja TDDFT Szacowanie poprawek od podwójnych wzbudzeń Podsumowanie References Bibliografia Hirata, S. and Head-Gordon, M.: 1999, Chem Phys Lett 314, 291 Maitra, N. T., Zhang, F., Cave, R. J., and Burke, K.: 2004, J Chem Phys 120(13), 5932 O’boyle, N. M., Tenderholt, A. L., and Langner, K. M.: 2008, J Comp Chem Radosław Włodarczyk Implementacja TDDFT