Jmol

Aus ZUM-Unterrichten

Jmol ist ein Programm zur räumlichen Darstellung von Molekülen. Es steht unter der LGPL und wird aktiv entwickelt. Da es in Java programmiert wurde, ist es weitgehend plattformunabhängig. Die Java-Applets von Jmol werden seit langer Zeit bei der Darstellung von Molekülen im Webbrowser verwendet. Inzwischen gibt es eine JavaScript-Variante, die auf HTML5 beruht und daher auch auf Mobil-Geräte genutzt werden kann. Allerdings benötigt man dazu einen Server.

Mit Jmol ist vor allem die für die Darstellung von Molekülen gedacht. Es gibt zwar Editiermöglichkeiten, aber die sind nicht sehr umfangreich und nicht so praktisch.

Die Software bietet verschiedene Darstellungsmöglichkeiten, wie Stab-, Kugel-Stab-, und Kalottenmodell, Punktwolke und Van-der-Waals-Oberfläche. Vieles kann in Jmol mit der Maus gesteuert werden, beispielsweise lassen sich die Molekülen und um alle Raumachsen drehen und in der Größe verändern. Außerdem kann man Atomabstände und Winkel vermessen. Darüber hinaus verfügt Jmol über eine eigene Scriptsprache, die auch das Erstellen von Animationen und ermöglicht.

Auch wenn die Darstellung einer interaktiven Zeichnung ohne einen Server nicht möglich ist, so hat Jmol dennoch Funktionen, die eine lokale Nutzung sinnvoll macht. So können auch vereinfachte Orbitale oder freie Elektronenpaare in ihren Orbitalen dargestellt werden.

Das Scripting-Fenster in Jmol

Wer sich nicht im Wiki anmelden will kann das Scripting auch nutzen, um in der Java-Software Jmol z.B. Orbitale darzustellen. Weitere Gründe ist die schnellere Möglichkeit etwas auszuprobieren. Im Wiki müsste man immer die Seite abspeichern was immer etwas Zeit kostet. Außerdem kann es bei einem schwerwiegende Schreibfehler passieren, dass die vorher eingetippten Befehle nicht abgespeichert werden und man alles neu eintippten muss. Dagegen kann man in Jmol alles ausprobieren und bekommt direkt das Ergebnis ... oder eben den Misserfolg.

Scripte lassen sich in Jmol auf zwei Weisen ausführen:

  1. Über die Scriptkonsole kann man nach und nach die Befehle eingeben und deren Wirkung sehen. Praktisch zum Ausprobieren!
  2. Mit dem Scripteditor kann man Scripte, die aus mehreren Befehle bestehen, eingeben und auch später ausführen. Wurde noch nicht getestet!


Aufruf der Script-Konsole Script-Konsole in einem Extra-Fenster
JmolScript2.png      JmolScript3.png

Konkrete Beispiele

Da, wie schon erwähnt, Jmol nicht optimal zum Zeichnen ist, wird das hier nicht behandelt. Man kann andere Programme, wie AvogadroWikipedia-logo.png das Online-Tool MolView.org nutzen, ob eine Datei aus einer Dtaenbank herunterladen.

LCAOCartoon nutzen

LCAOCartoon ist eine einfache Möglichkeit zur Darstellung von Atomorbitalen. Im Gegensatz zu den meist komplizierten Molekül-Orbitalen kann man hier einfach und schnell in ein Bild Atomorbitale einblenden und so - für Schüler ausreichend - mehrere Atomorbitale einblenden, um durch Überlappung das Zustandekommen von Bindungen erläutern zu können. Man braucht kein spezielles Format mit zusätzlichen Informationen.

Die Einblendung der Orbitale wird dabei vom Benutzer/Programmierer gesteuert und man bei jedem Atom jedes Orbital anzeigen lassen, auch wenn es keinen Sinn macht. Ein sp³-Hybrid-Orbital bei einem H-Atom anzeigen ... kein Problem!

Auswahl der Atome

Wie auch sonst in Jmol muss man angeben, welche Atom bzw. welcher Atomkern, als Mittelpunkt für das Orbital genutzt werden soll.

Es gibt mehrere Möglichkeiten Atome auszuwählen, um bei ihnen ein Atomorbital anzeigen zu lassen.

  • select (atomno=1);
... Auswahl des Atoms Nummer 1. Die Nummer eines Atoms bekommt man zum Beispiel, wenn man die Maus über ein Atom hat, nach kurzer Zeit angezeigt.
  • select (atomno=1), (atomno=2);
... mehrere Atome werden durch Komma getrennt angegeben. So kann man das gleiche Orbital bei mehreren Atomen auf einmal anzeigen lassen. Man kann die gleichen Orbitale auch nacheinander mit getrennten "Selektionen" anzeigen lassen.
  • select all;
... Auswahl aller Atome.
  • select (hydrogen)
... Auswahl aller Wasserstoff-Atome. Oder eben den englischen Namen eines anderen Elementes.

Das Semikolon am Ende ist nur dann notwendig, wenn im gleichen Skript danach noch ein Befehl angehängt wird. Das wird nach einer Auswahl aber wohl meist der Fall sein.

ACHTUNG:

  • select (atomno=1); select (atomno=2);
... hier ist für den folgenden Befehl nur das Atom mit der Nr. 2 ausgewählt!

Darstellung verschiedene Orbitale

Für die Darstellung der verschiedenen Orbitale wird zunächst der folgende Befehl benötigt:

  • lcaocartoon create <Orbital>

Die wichtigsten Orbitale sind dann:

  • s
  • p ... oder einzeln:px,py,pz
  • sp3 ... oder einzeln: sp3a, sp3b, sp3c, sp3d
  • sp2 ... oder einzeln: sp2a, sp2b, sp2c
  • sp ... oder einzeln: spa, spb

Hinter dem Namen steht bei p und bei den Hybridorbitalen ein weiterer Buchstabe. Dadurch wird aus den verschiedenen Orbitalen der gleichen Art ausgewählt. Welche davon man jetzt braucht, muss man ausprobieren.

Will man z.B. alle sp³-orbitale anzeigen lassen, so braucht man den Befehl:

  • lcaocartoon create sp3

Um nur eines der sp³-orbitale anzeigen lassen, so braucht man z.B. den Befehl:

  • lcaocartoon create sp3b

Des weiteren gibt es die Möglichkeit einzelne Elektronen oder freie Elektronenpaare darzustellen. Dabei gibt es zwei Möglichkeiten der Darstellung:

  1. wie ein Orbital als Elektronenwolke
  2. als Punktepaar oder einzelner Punkt bei einem Radikal

Dazu braucht man die folgenden Befehle:

  • lcaocartoon create lp ... für ein einzelnes freie Elektronenpaar wie bei Stickstoff in Form einer Elektronenwolke.
  • lcaocartoon create lpa und lcaocartoon create lpa ... für die zwei freien Elektronenpaare wie beim Sauerstoff jeweils in Form einer Elektronenwolke.
  • lcaocartoon lonepair "lp" ... um wie beim Stickstoff eine freies Elektronenpaar in Form von Punkten darzustellen.
  • lcaocartoon lonepair "lpa" und lcaocartoon lonepair "lpb" ... um wie beim Sauerstoff die zwei freien Elektronenpaare jeweils als zwei Punkte darzustellen.
  • Elektronenpaare in durchsichtiger Elektronenwolke
    lcaocartoon radical "lp" ... ein einzelnes Elektron bei einem Radikal darzustellen. Ebenso "lpa" und "lpb".

Man kann diese beiden Darstellungsarten auch kombinieren, indem man die Wolke durchsichtig darstellt und das Elektronenpaar undurchsichtig.

  • lcaocartoon opaque; lcaocartoon lonepair "lpa" "lpb"; lcaocartoon translucent; lcaocartoon create lpa; lcaocartoon create lpb

Informationen zur Veränderung der Transparenz und weiteren Einstellungen gibt es in einem späteren Abschnitt.

Neben den in der Schule am meisten genutzten Orbitale sind auch auch folgende Hybrid-Orbitale darstellbar:

  • Die sp³d Orbitale, einzeln als sp3da, ... bis sp3de ansprechbar.
  • Die sp³d² Orbitale, einzeln als sp3d2a, ... bis sp3d2f ansprechbar.

Änderung des Aussehens

Zur Veränderung des Aussehens stehen ein paar Befehle zur Auswahl. Dabei muss man beachten, dass eine eingestellter Wert erhalten bleibt und beim zeichnen des nächsten Orbitals nicht auf dem Standard-Wert zurückgesetzt wird. Deshalb kombiniert man am besten jede Anzeige eines Orbitals mit vorangestellten Befehlen zur Festlegung des Aussehens.

Transparenz:

  • LcaoCartoon Opaque
.. lässt die als nächstes dargestellten Orbitale unduchsichtig darstellen.
  • LcaoCartoon Translucent
.. lässt das Orbital leicht durchsichtig erscheinen. Es ist aber immer noch zu sehen.
  • LcaoCartoon Translucent <Zahl>
.. ermöglicht einzustellen, wie sehr durchsichtig ein Objekt ist. O steht dabei für Undurchsichtig (wie Opaque), 0.3 ist dann ein wenig transparent usw. Maixmal möglich ist 1, wie bei Translucent.


Farbe:

  • LcaoCartoon color <Farbe>
.. so kann man die Farbe für das nächste Orbital auswählen. Neben den englischen Namen (orange, yellow, ...) kann man auch einen RGB-Farbcode verwenden ([255, 165, 0]).
  • LcaoCartoon color <Farbe1> <Farbe2>
.. bei p-Orbitalen kann man zwei Farben angeben, für die zwei Teile oben und unten. Wird nur eine Farbe angegeben, werden beide Teile gleich eingefärbt.

Farbe und Transparenz lassen sich in einem festlegen, wie in diesem Beispiel:

  • LcaoCartoon color tanslucent orange


Skalierung:

  • LcaoCartoon scale <Zahl>
.. dient der Anpassung der Größe des als nächstes gezeichneten Orbitals.
Tipp: Die p-Orbitale überlagern sich normalerweise nicht. Um das Zustandekommen einer π-Bindung zu verdeutlichen müssen die p-Orbitale vergrößert werden. Ab dem Faktor 1.7 bis 1.9 sollte das der Fall sein. Am besten probiert man es bei jedem Molekül erst einmal aus!


Einige Beispiele für Befehle

  • select (atomno=1); lcaocartoon color blue translucent 0.1; lcaocartoon scale 1.6; lcaocartoon create pz
.. hier wird eines der p-Orbitale bei Atom Nr. 1 in blau dargestellt, um den Faktor 1.6 vergrößert und nur wenig durchsichtig.
  • select (atomno=3) , (atomno=4); lcaocartoon color yellow translucent 0.2; lcaocartoon scale 1; lcaocartoon create s
.. bei den Atomen Nr. 3 und 4 werden gelbe, nur ein wenig durchsichtige s-Orbitale dargestellt.
  • select (atomno=3); lcaocartoon scale 1; lcaocartoon color yellow translucent 0.2; lcaocartoon scale 1; lcaocartoon create s; select (atomno=1); lcaocartoon color orange translucent 0.2; lcaocartoon create sp2b
.. hier wird eine σ-Bindung dargestellt, indem bei den benachbarten Atomen (hier Nr. 3 und Nr. 1) ein s bzw. eines der sp²-orbitale dargestellt wird.

Löschen

Bei der Verwendung von Knöpfen muss man aufpassen, dass die "alte" Zeichnung nicht die "neue" stört und so ist es am einfachsten, dass man die alten Darstellungen löscht. Das bezieht sich aber nicht auf das Molekül!

Will man alle Ergänzungen löschen, sollte man vorher alle Atome auswählen. Sonst kann es passieren, dass beim vorherigen Script-Befehl ein einzelnes Atom ausgewählt wurde und ein Löschbefehl sich nur dann auf Orbitale bei diesem Atom beziehen:

  • LcaoCartoon select all; LcaoCartoon delete
... dieser Befehl löscht alle Orbitale, die über den CREATE Befehl gezeichnet wurden, nicht aber die einzelnen, als Punkte gezeichneten, Elektronen.
  • lcaocartoon lonepair delete
... zum Löschen der einzelnen, als Punkte gezeichneten, Elektronen. Auch bei Radikalen.