UWAGA wszystkie obliczenia, poza uruchomieniem programu define, należy wykonywać w kolejce. Wywołanie dowolnego modułu np. dscf > dscf.log 2>&1 należy umieszczać w pliku z rozszerzeniem inp i posyłać do kolejki poleceniem tmq moj_plik.inp Opcja dla leniwych można uruchamiać wszystkie komendy interaktywnie poprzez system kolejkowy polecenie qsub q course I ale tym sposobem informacja o wywołaniach zostanie stracona bezpowrotnie. 1) Praca z generatorem define obliczenia SP Jedynym plikiem potrzebnym do wygenerowania inputu dla TURBOMOLE jest geometria jakiejś cząsteczki. TURBOMOLE obsługuje jedynie format XYZ więc przed rozpoczęciem pracy należy przygotować odpowiedni plik. Załóżmy, że jako przykład posłużymy się formaldehydem. Plik z geometrią może wyglądać tak: 4 formaldehyd C 0. 0. 0. O 0. 0. 1.3 H 0. -1. -1. H 0. -1. 1. Pierwszym krokiem jest konwersja do formatu define, wykonuje się ją za pomocą skryptu x2t: [ymsterze@ui Turbo]$ x2t hcho.xyz > coord Nazwa pliku w którym zapiszemy geometrię nie ma znaczenia. Wygodnie jest ją zapisać pod nazwą coord ze względu na fakt, że TURBOMOLE zapamiętuje pod taką nazwą geometrię. Po utworzeniu pliku wywołujemy define: [ymsterze@ui Turbo]$ define Pojawia się trochę informacji i menu, w którym rogram pyta czy chcemy wczytać jakiś istiejący plik control. Ponieważ takowego nie posiadamy klawiszem <enter> przechodzimy dalej. Na ekranie pojawi się: INPUT TITLE OR ENTER & TO REPEAT DEFINITION OF DEFAULT INPUT FILE W tym momęcie możemy podać tytuł dla naszych obliczeń czyli np: formaldehyd, baza TZVP b3-lyp i potwierdzamy klawiszem <enter>. Program przechodzi do kolenego menu specyfikacja geometrii. Pierwszą rzeczą którą należy wykonać jest wczytanie geometrii z pliku coord: a coord następnie ustalamy automatycznie symetrię: desy i generujemy współrzędne nadmiarowe za pomocą ired kończy pracę z menu i przechodzimy dalej do wyboru bazy funkcyjnej. Z menu wybieramy: b : ASSIGN ATOMIC BASIS SETS i na kolejnym ekranie defiiujemy bazę: all def-tzvp Aby sprawdzić czy faktycznie przypisanie się udało można wyświetlić aktualne przypisania za pomocą opcji bl. tradycyjie pozwala na przejście do kolejnego menu opcje dotyczące obsadzeń orbitali. Z menu wybieramy eht i akceptujemy wszystko co proponuje define. Po kilkukrotnym naciśnięciu klawisza <enter> przechodzimy do menu z wyborem metod obliczeniowych. Jeśli nie dokonamy żadnego wyboru domyślnie wybraną metodą jest scf. Nas interesuje DFT więc: dft Pierwszą czynnością jest włączenie dft za pomocą on. Na ekranie wyświetlany komunikat zmienia się na STATUS OF DFT_OPTIONS: DFT is used functional b-p gridsize m3 Jak widać powyżej domyślnym funkcjomałem jest BP86. Aby zmienić funkcjomał na B3LYP wpisujemy:
func b3-lyp Status zmienia się na: STATUS OF DFT_OPTIONS: DFT is used functional b3-lyp gridsize m3 Opuszczamy menu za pomocą i kończymy pracę z define kolejną. Wszystkie powyższe czynności można również wykonać automagicznie za pomocą skryptu, wpisując wszystkie komendy (jedna w lini, puste linie są ważne!) np: -----------------------cut-here---------------------- formaldehyd, baza TZVP b3lyp a coord desy ired b all def-tzvp eht dft on func b3-lyp ----------------------cut-here------------------------------ Wykonanie komendy: cat moj_define define spowoduje wygenerowanie wszytkich plików potrzebnych dla TURBOMOLE. 2) Obliczenia typu single-point Tworzymy osobny katalog np. test_sp i kopiujemy wszystkie poprzednio utworzone pliki do niego. Obliczeń SCF dokonuje się programem dscf. Program wypisuje wyniki na terminal więc aby je zachować należy zrobić przekierowanie do pliku: dscf > dscf_formaldehyd.log 2>&1 3) Optymalizacja geometrii Ponownie tworzymy osobny katalog na obliczenia np. test_opt i kopiujemy do niego pliki utworzone w kroku 1. Za optymalizację geometrii odpowiedzialny jest skrypt jobex. Polecenie jobex c 100 energy 7 gcart 5 > jobex_formaldehyd.log 2>&1 uruchomione w katalogu z plikami wygenerowanymi przez define prowadzi do optymalizacji geometrii gdzie liczba kroków optymalizacji ograniczona jest do 100, różnice energii musi być mniejsza nić 1e-7 au a gradient mniejszy niż 1e-5. Domyślnie jobex zapamiętuje jedynie ostatni krok optymalizacji plik job.last. Aby zapamietać również kroki pośrednie należy dodatkowo wyspecyfikować opcję keep. Informację o gradientach i geometriach znaleźć mozna w pliku gradient. Np. aby wyświetlić informację o kolejnych krokach optymalizacji (energia, gradient) należy użyć programu grep: grep cycle gradient Wynik powinien być podobny do: cycle = 1 SCF energy = -114.2935319747 de/dxyz = 0.195525 cycle = 2 SCF energy = -114.3234665518 de/dxyz = 0.173568
cycle = 3 SCF energy = -114.3608844531 de/dxyz = 0.127483 cycle = 4 SCF energy = -114.3839264540 de/dxyz = 0.107966 cycle = 5 SCF energy = -114.3967800858 de/dxyz = 0.071121 cycle = 6 SCF energy = -114.4012045732 de/dxyz = 0.041896 cycle = 7 SCF energy = -114.4021231397 de/dxyz = 0.017256 cycle = 8 SCF energy = -114.4024195364 de/dxyz = 0.004379 cycle = 9 SCF energy = -114.4024327072 de/dxyz = 0.001110 cycle = 10 SCF energy = -114.4024335129 de/dxyz = 0.000490 cycle = 11 SCF energy = -114.4024337892 de/dxyz = 0.000059 4) Drgania normalne Jeśli baza nie zawiera funkcji typu f do obliczeń częstości i drgań normalnych używa się programu aoforce. Program nie wymaga ustawienia dodatkowych opcji. Dla obliczeń z funkcjami f i wyższych pozostają jedynie częstości numeryczne. W tym celu posłuzymy się skryptem NumForce. Tworzymy katalog np. test_frq i kopiujemy do niego zoptymalizowane dane z katalogu test_opt. Następnie uruchamiamy skrypt NumForce. Po zakończeniu wyniki znajdują sie w katalogu numforce plik aoforce.log. 5) Wizualizacja danych genrowanie pliku dla programu Molden. TURBOMOLE posiada prosty generator plików w formacie Moldena tm2molden. Możliwe jest generowanie orbitali, drgań normalnych bądź kolejnych kroków optymalizacji geometrii. Obsługa programu polega głównie na akceptowaniu opcji domyślnych. 6) Obliczanie energii wertykalnych i momentów przejść. Do obliczeń służy program escf. Możliwe są pełne obliczenia TDDFT jak i uproszczone TDA-TDDFT. Przed uruchmieniem niezbędne jest uzupełnienie pliku control o odpowiednie opcje. Uruchamiamy program define w katalogu gdzie optymalizowaliśmy geometrię. Akceptujemy domyślne opcje aż dojdziemy do menu wyboru metod: GENERAL MENU : SELECT YOUR TOPIC scf : SELECT NON-DEFAULT SCF PARAMETER mp2/cc2: OPTIONS AND DATA GROUPS FOR MP2, CC2, ETC. ex : EXCITED STATE AND RESPONSE OPTIONS prop drv : SELECT TOOLS FOR SCF-ORBITAL ANALYSIS : SELECT NON-DEFAULT INPUT PARAMETER FOR EVALUATION OF ANALYTICAL ENERGY DERIVATIVES (GRADIENTS, FORCE CONSTANTS) rex : SELECT OPTIONS FOR GEOMETRY UPDATES USING RELAX stp : SELECT NON-DEFAULT STRUCTURE OPTIMIZATION PARAMETER e : DEFINE EXTERNAL ELECTROSTATIC FIELD dft : DFT Parameters ri : RI Parameters rijk : RI-JK-HF Parameters trunc : USE TRUNCATED AUXBASIS DURING ITERATIONS marij : MULTIPOLE ACCELERATED RI-J dis : DISPLAY MOLECULAR GEOMETRY list : LIST OF CONTROL FILE & : GO BACK TO OCCUPATION/ORBITAL ASSIGNMENT MENU or q : END OF DEFINE SESSION Wbieramy opcję ex. Z kolejngo menu można wybrać TDDFT(opcja rpas) lub TDA-TDDFT (opcja ciss). Status przy opcji zmienia się na on. Po zatwierdzeniu mamy do wyboru liczbę stanów wzbudzonych dla których chcemy przeprowadzić obliczenia. Policzmy np. po 10 stanów A1 i B1 i B2. b1 10
a1 10 b2 10 i przechodzimy do kolejnego menu. Opcją interesującą jest rpacor czyli dostępna pamięć dla egrad. Sugerowana wielkość to ¾ dostępnej pamięci peracyjnej: rpacor 1000 Następnie należy zaakceptować proponowane kryterium uzbieżnienia gęstości i zakończyć pracę z define. Celem zmuszenia egrad do wyprodukowania tabelki z siłami oscylatora i energiami wzbudzeń należy wyedytować plik control ulubionym edytorem i dodać opcję $spectrum ev Po zapisaniu zmian uruchamiamy programy dscf (aby uzbieżnić gęstość do zadanego poziomu) i escf. dscf > dscf1.log 2>&1 escf > escf.log 2>&1 Po zakończeniu obliczeń plik spectrum zawiera tabelkę z energiami w ev i siłami oscylatora. Po usunięciu wszystkich linii komentarza widmo w postaci patyków mozna obejrzeć za pomocą programu gnuplot. (Uruchamiamy gnuplot, i wywołujemy komendę plot z parametrami: plot "spectrum" u 1:2 w impulses lt 1 lw 2). 7) Proszę powtórzyć obliczenia 1-6 wykorzystując funkcjonał BP86 i włączając metodę R-I. Włączenie opcji R-I wymaga użycia modułu ridft w miejsce dscf. W opcjach wywołujących skrypty jobex i NumForce należy dodać parametr ri. 8) Obliczenia gradientów dla stanu wzbdzonego i optymalizacja geometrii Gradienty mogą być obliczone jedynie dla jednego ze stanów w czasie jednego uruchomienia programu egrad. Domyślnie, jeśli zarządamy 10 stanów wzbudzonych program obliczy gradient dla najwyższgo. Dla wyspecyfikowania określonego stanu służy instrukcja $exopt n, dzie n jest numerem stanu wzbudzonego. Opcja ta nie jest dostępna z poziomu programu define. Wykonanie tworzymy katalog np test_ex_opt. Ustawiamy parametry jak w punkcie 1 i definiujemy dane dla programu egrad jak w punkcie 6 z tą różnicą, że interesują nas jedynie stany o symetrii A1. Powiedzmy, że 5. Po zakończeniu pracy z programem define edytujemy plik conrol i dodajemy opcję $exopt 1 w dowolnym miejscu przed $end. Wywołanie polecenia egrad > egrad.log 2>&1 spowoduje obliczenie gradientów dla pierwszego stanu wzbudzonego o symetrii A1. Optymalizacja geometrii jest możliwa poprzez wywołanie np. jobex ex c 200 > jobex.log 2>&1. 9) Obliczenia częstości drgań dla stanów wzbudzonych. Obliczeń drgań dla stanów wzbudzonych dokonuje się zawsze w symetrii C1. Do konwersji wygodnie jest wykorzystać program define. W katalogu test_ex_opt tworzymy podkatalog C1 i kopiujemy do niego pliki z optymalizacji geometrii (mos, coord, control, basis, ew. auxbasis jeśli używaliśmy RI). Przechodzimy do C1 i uruchamiamy define. Akceptujemy istniejący tytuł i odpowiadamy y na pytanie czy chcemy zmodyfikować dane dotyczące geometrii. W menu geometria wywołujemy kolejno sy c1 i ired i opuszczamy menu. Nie zmieniamy baz funkcyjnych. Nastepnie w menu orbitali: OCCUPATION NUMBER & MOLECULAR ORBITAL DEFINITION MENU CHOOSE COMMAND infsao : OUTPUT SAO INFORMATION eht : PROVIDE MOS && OCCUPATION NUMBERS FROM EXTENDED HUECKEL GUESS use <file> : SUPPLY MO INFORMATION USING DATA FROM <file> man : MANUAL SPECIFICATION OF OCCUPATION NUMBERS hcore : HAMILTON CORE GUESS FOR MOS & : MOVE BACK TO THE ATOMIC ATTRIBUTES MENU THE COMMANDS use OR eht OR OR q(uit) TERMINATE THIS MENU!!! FOR EXPLANATIONS APPEND A QUESTION MARK (?) TO ANY COMMAND
wybieramy opcję use../control. Akceptujemy wszystkie pozostałe opcje aż do przejścia do menu z wyborem metod. Postepując jak w punkcie 6 ustawiamy TDDFT dla 10ciu stanów o symetrii A. Po opuszczeniu define mamy wszystkie informacje dla programu egrad przetransferowane z C2v do C1. uruchamiamy dscf/ridft i egrad. Porównujemy energie i patrzymy, który z kolei jest stan 2A1 z obliczeń w symetrii C1. W tym momęcie wystarczy jedynie wywołać program NumForce w katalogu zawierającym zoptymalizowaną dla C2v geometrie stanu 1A1 z opcją ex numer_naszego_stanu_w_c1 i cierpliwie czekać na wyniki. 10. Powtórzyć obliczenia geometrii i drgań dla stanu 2A1 wykorzystując metodę CC2 (opcja cc2) i bazę def- SVP. Wykorzystać metodę zarówno R-I jak i zamrożenie orbitali rdzenia.