Dane oryginału

Computational Chemistry by Jeremy Harvey

Computational Chemistry was originally published in English in 2019. This translation is published by arrangement with Oxford University Press. Wydawnictwo Naukowe PWN is solely responsible for this translation from the original work and Oxford University Press shall have no liability for any errors, omissions or inaccuracies or ambiguities in such translation or for any losses caused by reliance thereon.

© Jeremy Harvey 2018

© as per OUP edition

Projekt okładki i stron tytułowych Lidia Michalak

Ilustracja na okładce vska/123RF

Wydawca Katarzyna Włodarczyk-Gil

Koordynator ds. redakcji Renata Ziółkowska

Redaktor Mieczysława Kompanowska

Produkcja Mariola Grzywacka

Skład wersji elektronicznej na zlecenie Wydawnictwa Naukowego PWN Marcin Kapusta / konwersja.virtualo.pl

Książka, którą nabyłeś, jest dziełem twórcy i wydawcy. Prosimy, abyś przestrzegał praw, jakie im przysługują. Jej zawartość możesz udostępnić nieodpłatnie osobom bliskim lub osobiście znanym. Ale nie publikuj jej w internecie. Jeśli cytujesz jej fragmenty, nie zmieniaj ich treści i koniecznie zaznacz, czyje to dzieło. A kopiując jej część, rób to jedynie na użytek osobisty.

Szanujmy cudzą własność i prawo.

Więcej na www.legalnakultura.pl.

Polska Izba Książki

Copyright © by Wydawnictwo Naukowe PWN SA

Warszawa 2019

eBook został przygotowany na podstawie wydania papierowego z 2019 r., (wyd. I)

Warszawa 2019

ISBN 978-83-01-20696-3

Wydawnictwo Naukowe PWN SA

02-460 Warszawa, ul. Gottlieba Daimlera 2

tel. 22 69 54 321, faks 22 69 54 288

infolinia 801 33 33 88

e-mail: pwn@pwn.com.pl; reklama@pwn.pl

www.pwn.pl

PATRONI MEDIALNI

Spis treści

Przedmowa

Podziękowania

1. Obliczenia komputerowe w chemii

1.1. Wprowadzenie

1.2. Teorie chemiczne a chemia obliczeniowa

1.3. Jak działają komputery?

1.4. Typy metod obliczeniowych

1.5. Formalizm matematyczny

1.6. Ćwiczenia i przykładowe obliczenia

1.7. Literatura uzupełniająca

1.8. Ćwiczenia

1.9. Podsumowanie

2. Chemia kwantowa

2.1. Wprowadzenie

2.2. Metoda Hartree-Focka

2.3. Praktyczne aspekty obliczeń w ramach metody Hartree-Focka

2.4. Funkcja falowa i energia w metodzie Hartree-Focka

2.5. Metoda Hartree-Focka z restrykcją i bez restrykcji spinowej

2.6. Bazy funkcyjne

2.7. Literatura uzupełniająca

2.8. Ćwiczenia

2.9. Podsumowanie

3. Metody chemii kwantowej

3.1. Wprowadzenie

3.2. Metody ab initio uwzględniające korelację elektronową

3.3. Podejście wariacyjne: metoda mieszania konfiguracji

3.4. Podejście perturbacyjne: metoda Møllera-Plesseta

3.5. Metody typu sprzężonych klastrów

3.6. Bazy funkcyjne, korelacja elektronowa, metody skorelowane

3.7. Metody wieloreferencyjne

3.8. Teoria funkcjonału gęstości

3.9. Metody półempiryczne

3.10. Ciała stałe i modele periodyczne

3.11. Własności molekularne

3.12. Literatura uzupełniająca

3.13. Ćwiczenia

3.14. Podsumowanie

4. Mechanika molekularna

4.1. Wprowadzenie

4.2. Pola siłowe MM

4.3. Zestawy parametrów

4.4. Układy periodyczne i promienie odcięcia

4.5. Praktyczne aspekty metod mechaniki molekularnej

4.6. Literatura uzupełniająca

4.7. Ćwiczenia

4.8. Podsumowanie

5. Optymalizacja geometrii

5.1. Wprowadzenie

5.2. Własności powierzchni energii potencjalnej

5.3. Metody optymalizacji geometrii

5.4. Optymalizacja geometrii za pomocą metod kwantowochemicznych

5.5. Optymalizacja geometrii za pomocą mechaniki molekularnej

5.6. Właściwości zoptymalizowanych struktur: częstości drgań

5.7. Stany przejściowe i ścieżki reakcji

5.8. Literatura uzupełniająca

5.9. Ćwiczenia

5.10. Podsumowanie

6. Metody dynamiczne

6.1. Wprowadzenie

6.2. Równania ruchu Newtona

6.3. Symulacje dynamiki molekularnej

6.4. Symulacje Monte Carlo

6.5. Symulacje dla biocząsteczek

6.6. Literatura uzupełniająca

6.7. Ćwiczenia

6.8. Podsumowanie

7. Stałe szybkości i równowagi

7.1. Wprowadzenie

7.2. Termodynamika statystyczna i równowaga

7.3. Teoria stanu przejściowego

7.4. Entalpie swobodne z symulacji MD i MC

7.5. Techniki rozszerzonego próbkowania

7.6. Literatura uzupełniająca

7.7. Ćwiczenia

7.8. Podsumowanie

8. Metody hybrydowe i wieloskalowe

8.1. Wprowadzenie

8.2. Ciągłe modele otoczenia

8.3. Metody hybrydowe

8.4. Modele gruboziarniste w mechanice molekularnej

8.5. Literatura uzupełniająca

8.6. Ćwiczenia

8.7. Podsumowanie

9. Podsumowanie

9.1. Wprowadzenie

9.2. Planowanie projektu obliczeniowego

9.3. Podsumowanie

Literatura uzupełniająca w języku polskim

Przypisy

Przedmowa

Chemia obliczeniowa stała się w ostatnich latach jednym z podstawowych narzędzi badawczych zarówno w samej chemii, jak też w naukach pokrewnych. W ślad za tym zwiększyła się jej rola w edukacji uniwersyteckiej. Dynamiczny rozwój tej dziedziny był możliwy dzięki ogromnemu wzrostowi dostępnych mocy obliczeniowych, postępowi w dziedzinie samych metod obliczeniowych oraz poprawie wydajności algorytmów i implementującego je oprogramowania.

Większość znakomitych podręczników na temat samej chemii obliczeniowej i jej podstaw teoretycznych może zniechęcać Czytelnika dużą objętością i wysokim poziomem trudności. Niniejsza książka ma stanowić swego rodzaju pomost. Została napisana z myślą o dostarczeniu krótkiego i łatwo przyswajalnego wstępu do wszystkich kluczowych metod i technik używanych w chemii obliczeniowej. W szczególności obejmuje ona zagadnienia związane z opisem struktury elektronowej metodami chemii kwantowej, mechaniki molekularnej, optymalizacji geometrii, technikami symulacji molekularnych, mechaniki statystycznej oraz metodami o charakterze hybrydowym. Położono w niej nacisk na wyjaśnienie kluczowych aspektów związanych z zasadami działania poszczególnych metod, zamiast systematycznego wykładu chemii teoretycznej. Z rozmysłem zrezygnowano również z rozbudowanego opisu matematycznego omawianych zagadnień.

Książka jest adresowana przede wszystkim do studentów wyższych lat studiów licencjackich, jednakże może być również wartościowa dla studentów studiów wyższych stopni oraz naukowców planujących podjęcie badań z wykorzystaniem metod chemii obliczeniowej. Co więcej, w obecnych czasach niemal wszyscy zajmujący się naukowo chemią napotkają w literaturze dotyczącej przedmiotu swoich badań prace obliczeniowe. Książka ta może się dla nich okazać pomocna do identyfikacji zastosowanych tam metod oraz oceny wiarygodności prezentowanych wniosków.

Na potrzeby tego podręcznika jego Autor przeprowadził wiele obliczeń, które przedstawia na różnych poziomach szczegółowości, aby zilustrować pewne praktyczne aspekty prowadzenia tego typu badań. Na rynku istnieje duży wybór zarówno darmowego, jak i komercyjnego oprogramowania dla chemii obliczeniowej. Niniejsza książka nie jest adresowana do użytkowników żadnego konkretnego pakietu obliczeniowego, a raczej stara się podkreślać aspekty, które są wspólne dla nich wszystkich. Studiowanie chemii obliczeniowej jest bez wątpienia najefektywniejsze, jeśli towarzyszy mu praktyczne wykorzystanie zdobytej wiedzy do samodzielnego przeprowadzania obliczeń. Dlatego Autor zachęca Czytelnika zarówno do samodzielnego powtórzenia części obliczeń prezentowanych w książce, jak i podjęcia własnych miniprojektów badawczych, dla których inspiracją mogą być ćwiczenia dołączone do każdego z rozdziałów.

Autor miał zaszczyt zdobywać wiedzę na temat zagadnień obliczeniowych za pośrednictwem wielu współpracowników, studentów i mentorów. Chciałby w szczególności podziękować za tę możliwość następującym osobom:

V. Aggarwal, M. Ashford, N. Fey, F. Manby, A. Mulholland, A. Orr-Ewing (Bristol)

R.B. Gerber (Jerozolima)

D. Schröder (wtedy Praga)

M. Aschi (l’Aquila)

A. Ceulemans (Leuven)

Leuven

lipiec 2017

J.N.H.

Podziękowania

Autor i Wydawca pragną podziękować za wkład w powstanie książki w postaci cennych uwag dotyczących roboczej wersji jej rozdziałów następującym osobom:

David Benoit, University of Hull

Furio Cora, University College London

Jonathan Hirst, University of Nottingham

Syma Khalid, University of Southampton

Alessandro Troisi, University of Warwick

Herrebout Wouter, University of Antwerp

1. Obliczenia komputerowe w chemii

1.1. Wprowadzenie

Obliczenia są czymś absolutnie koniecznym w chemii. Wiele prostych obliczeń, jak choćby wyznaczenie masy reagenta odpowiadającej 30 jego milimolom, wykonuje się na etapie planowania eksperymentu czy analizowania jego wyników. Bardzo ważne i skomplikowane są obliczenia w procesie przewidywania rezultatów zastosowania danej teorii w praktyce. Często wymagają one zastosowania komputera.

Współczesna chemia wymaga wykonywania obliczeń na przykład podczas badania dyfuzji cząsteczek przez membrany, analizy ruchu pewnych fragmentów białka względem innych, przewidywania postaci absorpcyjnych widm elektronowych czy też badania mechanizmów reakcji chemicznych. Celem tej książki jest pokazanie, jak funkcjonują metody obliczeniowe adekwatne do tego typu zagadnień oraz zapoznanie Czytelnika z technikami używanymi przy prowadzeniu obliczeń z ich wykorzystaniem.

1.2. Teorie chemiczne a chemia obliczeniowa

Rozważmy teorię, która na podstawie znajomości mas m_1 i m_2 dwóch atomów tworzących cząsteczkę dwuatomową oraz kształtu krzywej energii potencjalnej oddziaływania między nimi, pozwala przewidzieć postać widma w podczerwieni tej cząsteczki w fazie gazowej. Teoria ta może być zapisana w formie wzoru (1.1) na częstość drgań ν cząsteczki:

(1.1)

gdzie: µ – masa zredukowana dwóch atomów µ = m_1m_2 /(m_1 + m_2); k – stała siłowa wiązania.

Energia potencjalna V z założenia dla odległości międzyatomowych bliskich odległości równowagowej r_0 zależy od odległości między atomami r w następujący sposób:

(1.2)

Tak sformułowaną teorię można sprawdzić doświadczalnie na wiele sposobów, ale każdy z nich będzie wymagał wykonania pewnych obliczeń. Jednym ze sposobów jest pomiar częstości drgań ν pewnej cząsteczki dwuatomowej, np. głównego izotopomeru chlorowodoru 1H^35Cl. Po zmierzeniu częstości drgań i obliczeniu masy zredukowanej μ dla tej pary atomów możemy przekształcić równanie (1.1) i wyznaczyć stałą siłową wiązania. Dalej możemy zastosować bezpośrednio równanie (1.1), tym razem używając jednak masy zredukowanej dla innego izotopomeru, np. 2H^35Cl lub 1H^37Cl. Przewidzianą w ten sposób częstość drgania możemy porównać z wynikiem eksperymentu przeprowadzonego dla tego innego izotopomeru. Do tego prostego przykładu nie potrzebujemy oczywiście używać komputerów, gdyż równanie wyrażające teorię jest wyjątkowo proste, a wszystkie potrzebne obliczenia możemy wykonać ołówkiem na kartce papieru (lub za pomocą kalkulatora).

Jednakże łatwo jest wyobrazić sobie bardzo zbliżoną sytuację, w której obliczenia stają się zbyt złożone, aby przeprowadzić je ręcznie. Wyobraźmy sobie, że obliczając energię potencjalną wychodzimy poza rozwinięcie Taylora drugiego rzędu (równanie 1.2) i stosujemy bardziej adekwatne przybliżenie, np. w postaci potencjału Morse’a lub w jeszcze dokładniejszej formie. Wyznaczenie V dla zadanej odległości r staje się wtedy bardzo pracochłonne, zwłaszcza jeżeli trzeba je powtórzyć dla wielu różnych wartości r.

Jeszcze trudniejsza będzie podobna analiza cząsteczki wieloatomowej – wyobraźmy sobie złożoność tego problemu np. dla cząsteczki chlorobenzenu C_6H_5Cl z dwunastoma atomami i trzydziestoma wewnętrznymi stopniami swobody. Dla takiego układu można zapisać wyrażenie na energię potencjalną w funkcji długości wiązań w cząsteczce i kątów między nimi (patrz rozdział 4) lub wyznaczyć V dla zadanych pozycji atomów za pomocą praw mechaniki kwantowej. Następnie można wyprowadzić teorię łączącą wartości V z częstościami drgań w cząsteczce (patrz rozdział 5). Jednakże wykorzystanie danych doświadczalnych do obliczenia stałych siłowych lub przejście od stałych siłowych do częstości drgań jest zbyt skomplikowane, aby można było je przeprowadzić na kartce papieru lub przy użyciu kalkulatora, więc najczęściej uciekamy się do pomocy komputerów. A przecież cząsteczka chlorobenzenu jest bardzo prosta! Jeżeli chcielibyśmy przeprowadzić analogiczną analizę dla białka otoczonego rozpuszczalnikiem, czyli układu liczącego tysiące atomów, zastosowanie komputera byłoby po prostu koniecznością.

W chemii pojawia się wiele problemów następującej natury: dysponujemy teorią, która pozwala powiązać wartość pewnej mierzalnej wielkości z innymi właściwościami układu, ale jest ona na tyle skomplikowana, że jej rezultatów nie da się sformułować ilościowo za pomocą wyłącznie ołówka i kartki papieru. Właśnie w takich przypadkach niezbędne stają się techniki obliczeniowe. Komputery świetnie sobie radzą z obliczeniami, które są zbyt żmudne dla człowieka, gdyż wymagają przeprowadzenia milionów operacji.

Komputer jednakże nie jest w stanie zastąpić całkowicie naukowca, który musi wybrać lub stworzyć teorię adekwatnie opisującą przedmiot badań. Proces ten obejmuje zarówno wybór formalizmu, w ramach którego będziemy opisywać cechy układu, jak i wybór przybliżeń, dzięki którym stworzony model zjawiska z jednej strony będzie wystarczająco dokładny, a z drugiej jego złożoność obliczeniowa nie przekroczy możliwości komputera. Wyprowadzanie teorii z innych bardziej fundamentalnych zasad również może się wydawać zadaniem odpowiednim dla komputera ze względu na matematyczną naturę tego procesu. Jednakże najczęściej komputery nie sprawdzają się w przeprowadzaniu manipulacji symbolicznych na obiektach matematycznych równie efektywnie jak w wykonywaniu ogromnej liczby powtarzających się operacji na liczbach[1].

Powinno się również pamiętać, że komputery nie zastąpią badacza w jeszcze jednym istotnym aspekcie pracy naukowej: analizie poziomu zgodności między przewidywaniami teorii i opartych na niej obliczeń a wynikami eksperymentu. Oczywiście, w pewnych przypadkach, dane obliczeniowe, jak np. statystyczne miary odchyleń między eksperymentem a przewidywaniami teorii, są istotnym elementem takiej analizy. Jednakże komputery nie przeprowadzą za badacza końcowej oceny.

1.3. Jak działają komputery?

Żeby ułatwić sobie zrozumienie metod obliczeniowych w chemii, warto rozpocząć od schematu działania komputerów. W sercu komputera znajduje się procesor CPU (Central Processing Unit). To on przeprowadza operacje na liczbach: na najbardziej fundamentalnym poziomie możemy traktować go jako zestaw tranzystorów, który przyjmuje jeden z dwóch sygnałów wejściowych („0” lub „1”) i produkuje na wyjściu, analogicznie, sygnał „0” lub „1”. Taki prosty schemat działania można utożsamić z przeprowadzaniem podstawowych operacji logicznych. Procesor jest w stanie wykonywać jednocześnie wiele takich operacji na bitach danych – typowo 32 lub 64 bity mogą być przetwarzane w tym samym czasie. Składając ze sobą sygnały wyjściowe, procesor jest w stanie realizować bardziej złożone operacje arytmetyczne, takie jak dodawanie, odejmowanie, mnożenie czy dzielenie liczb całkowitych lub zmiennoprzecinkowych. Bardziej skomplikowane operacje, jak np. wyznaczanie wartości funkcji trygonometrycznych lub logarytmów, wymagają większej liczby kroków. Nowoczesne procesory są w stanie realizować wiele zbiorów operacji (lub cykli) na sekundę – szybkość ich działania można mierzyć tzw. taktowaniem zegara procesora, dostarczającym miary tego, ile cykli operacji może wykonać procesor w trakcie jednej sekundy. Na przykład rdzeń procesora taktowanego zegarem 3 GHz jest w stanie wykonać ok. 3 miliardy mnożeń na sekundę. Co więcej, nowoczesne komputery zawierają zazwyczaj procesory mające wiele rdzeni, które mogą równolegle wykonywać wiele takich operacji.

Jakiego rodzaju operacje są realizowane przez procesor? Można wyobrażać sobie, że przeprowadza on na przykład sumowanie zlecone przez użytkownika, który wprowadził dane, używając odpowiedniego urządzenia wejściowego – może nim być klawiatura, mysz, inny komputer za pośrednictwem sieci czy jeszcze inne urządzenie. Wynik operacji będzie z kolei wysłany do urządzenia wyjściowego – monitora, drukarki, innego komputera itp. Taka sekwencja jest zbliżona do tego, co robi kalkulator, komputery jednakże działają w trochę inny sposób. Mianowicie, procesor wykonuje sekwencję operacji zadaną przez program. To program „każe” procesorowi pobrać dane wejściowe z urządzenia wejściowego lub z jakiegoś wewnętrznego źródła. Wynik operacji jest natomiast wysyłany do urządzenia wyjściowego lub pewnego wewnętrznego „magazynu”. Instrukcje, które odpowiadają za taką sekwencję zdarzeń, są same w sobie operacjami na bitach danych. „Wewnętrzne” magazyny z kolei można podzielić na pamięć operacyjną i pamięć masową (dyski twarde, dyski SSD), przy czym pamięć operacyjna komunikuje się z procesorem wyraźnie szybciej, jednak jej zasoby są mniejsze.

Co umożliwia programowi zarządzanie procesorem? Odpowiedzialny za to jest system operacyjny, który jest rodzajem superprogramu wykonywanego na komputerze przez cały czas, od chwili jego włączenia. Przetwarza on te dane z urządzeń wejściowych, które powodują uruchomienie konkretnego programu, zarządza procesorem w zakresie wczytywania instrukcji składających się na ten program oraz powoduje wykonanie tych instrukcji przez procesor.

Jak już powiedziano, w chemii obliczeniowej większość programów ma za zadanie przeprowadzić pewne skomplikowane obliczenia. Obliczenia te są wyspecyfikowane w samym programie lub pochodzą z dodatkowych instrukcji wprowadzanych przez użytkownika – najczęściej z klawiatury lub innego urządzenia wejściowego – ale mogą również znajdować się w odrębnych plikach wejściowych. Najczęściej pliki wejściowe składające się z tekstu i liczb służą do zadania ustawień, takich jak liczba i rodzaj atomów w układzie, początkowe położenia atomów, czy też innych szczegółowych parametrów obliczeń. Po otrzymaniu wszystkich informacji wejściowych program uruchamia się, wykonuje obliczenia i podaje ich wyniki. Zwykle kierowane są one do co najmniej jednego pliku wyjściowego, zazwyczaj o charakterze tekstowym, który jest zapisywany w pamięci masowej i może być później drukowany lub przeglądany przez użytkownika. W wielu przypadkach tworzenie danych wejściowych i analiza danych wyjściowych mogą być wspomagane użyciem dodatkowego programu przetwarzającego dane w formie tekstu na ich obraz graficzny. Program taki jest nazywany graficznym interfejsem użytkownika GUI (Graphical User Interface). Czasami, zwłaszcza w przypadku programów kierowanych do mniej doświadczonych użytkowników, interfejs graficzny jest zintegrowany z główną częścią obliczeniową w jeden wspólny program.

Algorytm w matematyce oraz informatyce to skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania.

Do większości obliczeń wykonywanych w chemii obliczeniowej używa się programów napisanych przez innych naukowców, które pozwalają przełożyć abstrakcyjny algorytm na konkretny ciąg instrukcji wykonywanych przez procesor. Programy te niemal zawsze są napisane w języku programowania wysokiego poziomu, takim jak Fortran, C++ czy Python. Instrukcje zapisane w tych językach mapują się w naturalny sposób na zestaw równań zawartych w teorii, która ma być testowana. Na przykład możemy zapisać polecenie, w którym żądamy wyznaczenia wartości funkcji cosinus dla zestawu kątów, przemnożenia każdego z wyników przez pewną stałą i zapisania ostatecznego rezultatu w pewnym obszarze pamięci (zmiennej tymczasowej), tak aby można było go użyć później. Całą tę sekwencję można zapisać jako pojedynczą instrukcję w postaci „V = c*cos(theta)”. Niektóre programy mogą być wykonywane bezpośrednio – instrukcje wysokopoziomowe są na bieżąco tłumaczone (przez pewien dodatkowy program zwany interpreterem) na ciąg elementarnych instrukcji dla procesora. W innych przypadkach, program w języku wysokopoziomowym musi być najpierw skonwertowany na ciąg instrukcji dla procesora zapisany w języku niskopoziomowym. Konwersja ta jest wykonywana przez specjalny program zwany kompilatorem.

Wielki postęp w chemii obliczeniowej, którego świadkami jesteśmy w ostatnich dekadach, był możliwy dzięki rozwojowi nowych teorii i programów, które wydajnie przekładały je na język obliczeń. Bardzo istotny był również ogromny wzrost mocy obliczeniowej komputerów, mierzonej częstotliwością pracy procesorów oraz pojemnością pamięci operacyjnej i masowej.

Chemia obliczeniowa powstała zanim dostępne stały się komputery. Douglas Hartree (1897–1958), brytyjski matematyk, którego wkład do tej dziedziny zostanie omówiony w rozdziale 2, zbudował mechaniczny „komputer” działający na zasadzie kół zębatych, który umożliwiał przeprowadzanie obliczeń sprawniej niż przy użyciu ołówka i kartki papieru. Tego rodzaju komputer był używany już w latach 30. ubiegłego wieku nie tylko przez Hartree, ale i innych naukowców, np. przez brytyjską badaczkę Berthę Swirles (1903–1999), do wyznaczania rozkładu gęstości elektronowej w atomach zgodnie z prawami mechaniki kwantowej.

Komputery były używane w początkach chemii obliczeniowej nie tylko do przewidywania kwantowomechanicznych właściwości elektronów w atomach, lecz także do modelowania powierzchni energii potencjalnej oddziaływań między atomami – zarówno w kontekście opisu prostych reakcji elementarnych (jak wymiana atomu w układzie H + H_2 : HA + HB–HC → HA–HB + HC), jak i modelowania zachowania zbiorów atomów, takich jak ciecze. Oczywiście w przypadku wszystkich tych zastosowań możliwości obliczeniowe znacząco zwiększyły się po drugiej wojnie światowej, wraz z pojawieniem się elektronicznych komputerów. Od tego czasu technologia komputerowa notuje ogromny postęp, a szybkość procesorów i rozmiary pamięci rośną w przybliżeniu wykładniczo, zgodnie z tak zwanym prawem Moore’a.

Prawo Moore’a – prawo empiryczne, wynikające z obserwacji, że ekonomicznie optymalna liczba tranzystorów w układzie scalonym zwiększa się w kolejnych latach zgodnie z trendem wykładniczym (podwaja się w niemal równych odstępach czasu).

Ten niesamowity wzrost mocy obliczeniowej w dużej mierze wynika z tego, że układy scalone mieszczą coraz więcej coraz mniejszych tranzystorów. W ostatnim czasie częstotliwość zegara procesorów przestała rosnąć, ale komputery wciąż stają się coraz szybsze dzięki równoległemu przetwarzaniu danych – wiele procesorów pojedynczego komputera i wiele rdzeni pojedynczego procesora wykonuje wiele operacji w tym samym czasie.

Gigantycznemu wzrostowi mocy komputerów towarzyszy rozwój modeli teoretycznych, algorytmów pozwalających uzyskać przewidywania tychże modeli oraz programów implementujących te algorytmy. Wydajne programy muszą w swej konstrukcji brać pod uwagę liczbę dostępnych procesorów i ich rdzeni, ilość dostępnej pamięci operacyjnej i masowej oraz szybkość wymiany danych między różnymi komponentami systemu komputerowego. Konkretna teoria może być zaimplementowana w programie na różne sposoby. Jeśli zostanie to zrobione nieoptymalnie, wynikowy program może być zbyt wolny, wymagać do wykonania zbyt dużej pamięci operacyjnej lub też mieć zbyt duże zapotrzebowanie na pamięć masową. Podsumowując, to właśnie połączony rozwój komputerów, teorii i programów umożliwia chemii obliczeniowej zajęcie centralnego miejsca w badaniach i edukacji chemicznej.

Teoria i obliczenia pełnią odmienne role w chemii, ale ich wzajemne zazębianie się jest na tyle duże, że wielu ludzi uważa chemię teoretyczną i obliczeniową za tę samą dziedzinę. Niniejsza książka skupia się na aspektach obliczeniowych, a nie teoretycznych. Oznacza to, że omówienie teoretycznych podstaw chemii jest w niej ograniczone do minimum – zakłada bowiem, że Czytelnik jest zaznajomiony z podstawowymi zagadnieniami teoretycznymi opisanymi w standardowych podręcznikach. Jedynie tam, gdzie jest to istotne z punktu widzenia klarowności przedstawianych zagadnień, dokonano krótkiego podsumowania aspektów teoretycznych. Równania matematyczne zostały przytoczone tam, gdzie są potrzebne do przedstawienia danej teorii lub technik obliczeniowych, które ją implementują. Przeważnie jednak towarzyszy im omówienie słowne, co oznacza, że same równania mogą być przynajmniej częściowo zignorowane. Wyniki konkretnych obliczeń przedstawiono i przeanalizowano na takim poziomie szczegółowości, żeby zainteresowany Czytelnik mógł je powtórzyć i zweryfikować.

Skupienie się na obliczeniach, a nie teorii oznacza, że książka ta nie da Czytelnikowi narzędzi do samodzielnego rozwijania nowych technik obliczeniowych, jako że wymaga to zazwyczaj dogłębnej znajomości teorii związanej z konkretnymi obszarami zastosowań – jest to tematem wiodącym wielu innych podręczników. Tym, do czego ten podręcznik aspiruje, jest danie Czytelnikowi pewności w zastosowaniu metod obliczeniowych przez zrozumienie, jak korzystają one z teorii i jak się je wykorzystuje do objaśniania zagadnień chemicznych.

1.4. Typy metod obliczeniowych

Komputery są używane w chemii w wielu różnych sytuacjach. Najbardziej typowe z nich są związane z modelowaniem zachowania układów chemicznych złożonych z wielu części, które oddziałują ze sobą w skomplikowany sposób. Cząsteczki (lub ich agregaty) zbudowane są z jąder i elektronów. Ruch elektronów w cząsteczkach jest obiektem zainteresowania obliczeń kwantowochemicznych, które są tematem rozdziałów 2 i 3. Same atomy również mogą się poruszać czy to w wyniku ruchów termicznych, czy też reakcji chemicznych. Rozdział 6 jest poświęcony temu, jak opisać te ruchy za pomocą praw fizyki – wymaga to znajomości funkcji wyrażającej energię układu przez położenia atomów, czyli powierzchni energii potencjalnej, która jest tematem rozdziału 5. Ruchy prowadzące do reakcji chemicznych są szczególnie istotne, a metodom obliczeniowym pozwalającym na ich opis jest poświęcony rozdział 7. Żeby opisać energetykę związaną z ruchami atomów możemy użyć metod chemii kwantowej, ale możemy też wypróbować prostsze podejście, jakim jest mechanika molekularna, która stanowi temat rozdziału 4. Istnieją również metody hybrydowe łączące elementy mechaniki kwantowej i mechaniki molekularnej – jest im poświęcony rozdział 8.

1.5. Formalizm matematyczny

Metody obliczeniowe stosowane w chemii obliczeniowej powstały na podstawie fundamentalnych teorii fizycznych – mechaniki kwantowej i mechaniki klasycznej. Zarówno teorie, jak i przybliżone metody obliczeniowe, najprecyzyjniej można wyrazić w postaci równań matematycznych – większość podręczników chemii teoretycznej zawiera takie równania. Tworzenie programów komputerowych implementujących modele teoretyczne wymaga w związku z tym głębokiego wniknięcia zarówno w zagadnienia fizyczne, jak i język matematyki, w którym są one wyrażone. Natomiast używanie gotowego oprogramowania wymaga jedynie jakościowego zrozumienia fizyki stojącej u podstaw danej metody lub przybliżenia. Celem tego podręcznika jest dostarczenie właśnie zrozumienia najważniejszych podejść obliczeniowych, dzięki czemu opis formalizmu matematycznego może być ograniczony do niezbędnego minimum. Wciąż jednak na kartach tej książki pojawia się wiele równań. Znaczenie użytych w nich symboli jest konsekwentnie objaśnione w tekście. Niektóre równania są zapisane w sposób uproszczony, tak aby zachowanie rygoru matematycznego nie przysłaniało ich istotnej treści. W przypadku wątpliwości, dociekliwego Czytelnika zachęcamy do skorzystania z materiałów dodatkowych wskazanych jako „Literatura uzupełniająca”.

1.6. Ćwiczenia i przykładowe obliczenia

Sprawne poruszanie się po zagadnieniach chemii obliczeniowej wymaga zarówno zrozumienia stojącej za nią teorii, jak i samodzielnego wykonywania obliczeń. Żeby wspomóc Czytelnika w tym drugim zadaniu, w książce zamieszczono dokładne opisy wielu prostych obliczeń, które Autor wykonał podczas jej pisania. Umożliwią one Czytelnikowi zapoznanie się z wieloma różnymi typami obliczeń. W większości są to przykłady stosunkowo proste – z pewnością o wiele prostsze od zdarzających się podczas realnych badań naukowych możliwych do wykonania w trakcie pisania tej książki. W miarę dalszego wzrostu mocy obliczeniowych, zaprezentowane tu obliczenia powinny stawać się jeszcze łatwiejsze do zrealizowania. Nie należy postrzegać tego jako wadę: nauce najlepiej służą takie obliczenia, które da się przeprowadzić w ciągu co najwyżej kilku minut, tak żeby użytkownik mógł szybko zrozumieć zależność między zadanymi parametrami obliczeń a ich wynikiem. Prowadzenie obliczeń wymagających większych zasobów komputerowych i czasu często wcale nie jest bardziej pouczające. Niemal wszystkie przykładowe obliczenia zostały wykonane przy użyciu łatwo dostępnego i darmowego oprogramowania, a przykładowe pliki wejściowe dla wielu z nich dostępne są w Internecie.

Książka zawiera również wiele ćwiczeń umieszczonych na końcu każdego rozdziału, które mają formę zadań otwartych o charakterze miniprojektów. Jak już wspomniano, istnieje wiele programów pozwalających zrealizować różne typy obliczeń opisywanych w tej książce. Niektóre z nich są zupełnie darmowe (choć mogą wymagać pewnej wiedzy informatycznej koniecznej do ich skompilowania lub innego rodzaju przygotowania do użycia). Studenci chemii mają również zazwyczaj dostęp do komputerów z komercyjnym oprogramowaniem obliczeniowym. Warto przy tym pamiętać, że o ile wybór oprogramowania może być bardzo istotny podczas prowadzenia badań naukowych, ze względu na różnice w wydajności, o tyle dla procesu uczenia się ma on o wiele mniejsze znaczenie. Ponieważ z jednej strony oprogramowanie wciąż się rozwija, a z drugiej różne uczelnie dają dostęp do różnych programów, żadna z instrukcji do ćwiczeń zamieszczonych w tej książce nie zakłada użycia konkretnego programu. Instrukcje użycia oraz „samouczki” konkretnych programów można łatwo znaleźć w ich dokumentacji lub Internecie. Mogą one być używane wraz z tym podręcznikiem.

Przypisy

[1] Niemniej istnieje różnorodne oprogramowanie, zarówno komercyjne (np. Mathematica czy Maple), jak i darmowe (np. Maxima czy Yacas), pozwalające na prowadzenie obliczeń symbolicznych [przyp. tłum.].