Skip to content
Snippets Groups Projects
Commit 8a0c1747 authored by moritz.buchhorn's avatar moritz.buchhorn
Browse files

Large part of week 5 notebook done

parent d5a79b0b
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# B.CTC: Geometrien
In der Vorlesung haben Sie Geometrieoptimierungen und Frequenzrechungen kennengelernt. Es handelt sich um die wahrscheinlich am häufigsten verwendeten Rechentypen der Quantenchemie: In aller Regel geht der Berechnung beliebiger Eigenschaften eine Geometrieoptimierung voran, und diese muss mittels einer Frequenzrechnung validiert werden.
In diesem Notebook werden wir wie letzte Woche mit Formaldehyd als Beispielmolekül arbeiten. Sie können aber prinzipiell jedes beliebige Molekül mit den hier vorgestellten Methoden untersuchen.
%% Cell type:markdown id: tags:
📝 Schreiben Sie ein _input file_ für die Geometrieoptimierung. Sie können die folgende Vorlage verwenden:
<pre style="color:#0F0F0F; background-color:#F0F0F0; padding: 1em;">
! UKS Funktional Basissatz Opt
* xyzfile 0 1 hcho-guess.xyz
</pre>
Ersetzen Sie `Funktional` durch ein Funktional ihrer Wahl und `Basissatz` durch einen Basissatz ihrer Wahl. Schauen Sie in das Notebook zu Woche 4 zum Thema DFT-Benchmarking, um eine begründete Wahl zu treffen. Speichern Sie das _input file_ unter `hcho-opt.inp`.
%% Cell type:markdown id: tags:
&#x1f4dd; Erstellen Sie eine Datei, die die kartesischen Koordinaten der Startgeometrie enthält. Sie können die folgende Vorlage verwenden:
<pre style="color:#0F0F0F; background-color:#F0F0F0; padding: 1em;">
4
Formaldehyd-Anfangsstruktur
O 0 0 0
C 0 0 0
H 0 0 0
H 0 0 0
</pre>
Passen Sie die Koordinaten an, sodass das Molekül der tatsächlichen Formaldehyd-Struktur einigermaßen ähnelt und speichern Sie die Datei unter `hcho-guess.xyz`. Beachten Sie, dass die erste Zeile die Anzahl Atome enthalten muss und die zweite Zeile eine Kommentarzeile ist. Die Koordinaten werden in Angstrom angegeben: 1Å = 10<sup>-10</sup>m = 100pm.
Bevor Sie die Rechnung starten, schauen Sie sich die 3D-Darstellung ihrer Anfangsgeometrie an. Sie können dafür den Code in den nächsten Zellen verwenden.
Beachten Sie, dass gezeigte Bindungen nur auf Schätzungen aufgrund der Distanz zwischen Atomen beruhen. Sie werden _ad hoc_ erzeugt und entsprechen nicht hinterlegten Daten.
%% Cell type:code id: tags:
``` python
import subprocess as sub
import qc_support as qcs
import qc_parser as qcp
import support
import os
```
%% Cell type:code id: tags:
``` python
support.XYZ.from_xyz_file("hcho-guess.xyz").get_molecular_viewer().show()
xyz = support.XYZ.from_xyz_file("hcho-guess.xyz")
xyz.get_molecular_viewer().show()
```
%% Cell type:markdown id: tags:
&#x1f4dd; Starten Sie die Geometrieoptimierung, indem Sie im Terminal in den entsprechenden Ordner navigieren (`cd 05-geometrien`) und dort die Rechnung mit dem Befehl `orca hcho-opt.inp > hcho-opt.out` ausführen lassen.
&#x1f4dd; Öffnen Sie das _output file_ und suchen sie nach dem Wort `HURRAY` und der Konvergenzmeldung, die dazu ausgegeben wird. Ist dieses Wort im _output file_ nicht vorhanden, ist die Optimierung gescheitert. Meistens liegt das an einer schlechten Startstruktur.
&#x1f4dd; Sehen Sie sich mithilfe der nächsten Zelle die Schritte der Geometrieoptimierung an. Sie können das auch mit nicht konvergierten Rechnungen tun; manchmal lässt der Verlauf einer gescheiterten Optimierung Rückschlüsse auf die Ursachen zu.
%% Cell type:code id: tags:
``` python
trajectory = support.Trajectory.from_opt_output("./hcho-opt.out")
trajectory = support.Trajectory.from_opt_output("hcho-opt.out")
trajectory.get_molecular_viewer_slider().show()
```
%% Cell type:code id: tags:
%% Cell type:markdown id: tags:
``` python
trajectory = support.Trajectory.from_opt_output("./hcho-opt.out")
trajectory.get_molecular_viewer_animated().show()
```
Der Erfolg einer Geometrieoptimierung ist stark von der Anfangsstruktur abhängig. Befindet sich die Startstruktur auf sehr flachen Bereichen der Potenzialfläche, kann der Optimierungsalgorithmus Konvergenz aufgrund geringer Gradienten oder Schrittweiten feststellen, obwohl es sich nicht zwingend um ein thermodynamisches Minimum handelt. Diese Gefahr ist umso größer, je mehr Atome das betrachtete Molekül hat.
%% Cell type:code id: tags:
Um zu bestätigen, dass es sich bei einer optimierten Struktur tatsächlich um ein thermodynamisches Minimum handelt, muss immer eine Frequenzrechnung durchgeführt werden. Dabei werden die Energiegradienten auf den Atomen abgeleitet und die Normalmoden des Moleküls bestimmt.
<b>Die Frequenzen der Normalmoden eines thermodynamischen Minimums sind ausschließlich positiv.</b>
Wenn genau eine negative Frequenz auftritt, handelt es sich bei der Struktur um einen Übergangszustand (mehr dazu nächste Woche). Wenn mehrere negative Frequenzen vorliegen, hat die Struktur keine chemische Relevanz.
``` python
vib = support.Trajectory.from_vibration_output("./hcho-freq.out", 7)
vib.get_molecular_viewer_animated(arrows=True).show()
```
%% Cell type:markdown id: tags:
&#x1f4dd; Schreiben Sie ein _input file_ für eine Frequenzrechnung an der optimierten Struktur. Sie können als Ausgangspunkt das _input file_ der Geometrieoptimierung kopieren und anpassen. Nennen Sie die neue Datei **hcho-freq.inp**. Um eine Frequenzrechnung anzufordern, benötigen wir das _keyword_ `Freq`, außerdem können Sie `Opt` entfernen. Passen Sie außerdem in der Zeile `* xyzfile 0 1 ...` den Namen der xyz-Datei so an, dass die optimierte Struktur verwendet wird.
Wenn Sie die Datei fertig vorbereitet haben, navigieren Sie im Terminal in den Ordner mit den Dateien und starten Sie die Rechnung mit `orca hcho-freq.inp > hcho-freq.out`.
%% Cell type:markdown id: tags:
&#x1f4dd; Öffnen Sie das _output file_ und sehen Sie nach, ob die Rechnung konvergiert ist. Sie sollten relativ weit hinten in der Datei einen Abschnitt mit dem Namen `VIBRATIONAL FREQUENCIES` vorfinden. Vergewissern Sie sich, dass keine der Frequenzen negativ ist.
Die ersten fünf oder sechs Frequenzen sind immer 0, da es sich um Translations- bzw. Rotationsmoden handelt. Die übrigen Moden sind Schwingungsmoden, und daher auch im nachfolgenden Abschnitt `IR SPECTRUM` aufgelistet. Benutzen Sie die folgenden Zellen, um 3D-Darstellungen der einzelnen Schwingungsmoden zu erhalten.
%% Cell type:code id: tags:
``` python
vib = support.Trajectory.from_vibration_output("./hcho-freq.out", 7)
vib.get_molecular_viewer_slider(arrows=True).show()
vib = support.Trajectory.from_vibration_output("hcho-freq.out", 11)
vib.get_molecular_viewer_animated(arrows=True).show() # Für eine Animation
# vib.get_molecular_viewer_slider(arrows=True).show() # Für die Darstellung mit Schieberegler
```
%% Cell type:markdown id: tags:
Neben der Bestätigung thermodynamischer Minima können auch die Frequenzen selbst von Interesse sein. Wir können IR- und Ramanspektren vorhersagen, oder vorhandene experimentelle Spektren interpretieren. Wenn wir ein experimentelles Spektrum gut reproduziert haben, können wir den experimentellen Peaks die dreidimensionale Auslenkung der Moden zuordnen.
Es ist nicht unüblich, dass ein quantenchemisches Experiment keine experimentellen Daten vorhersagt. Die Interpretation vorhandener Daten ist ebenfalls sehr nützlich und hilft uns beim Verstehen chemischer Prozesse und Moleküleigenschaften.
&#x1f4dd; Vergleichen Sie die vorhergesagten Frequenzen aus dem _output file_ mit dem gegebenen IR-pektrum von gasförmigem Formaldehyd. Welche experimentellen Absorptionsbanden finden Sie in der Rechnung? Mit welchen Moden sind die intensivsten Banden assoziiert? Was ist die Auswahlregel für Schwingungsübergänge?
%% Cell type:markdown id: tags:
![IR Spectrum of HCHO Gas](hcho-ir-spectrum-gas.svg)
IR-Spektrum von gasförmigem Formaldehyd.
Link: https://webbook.nist.gov/cgi/cbook.cgi?ID=C50000&Type=IR-SPEC&Index=0#IR-SPEC
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment