\chapter{Das \Wientk-Programmpaket}
\label{cha:Wientk}
Die im Rahmen dieser Arbeit durchgeführten Dichtefunktionalrechnungen wurden
mit dem \Wientk-Programmpaket (\cite{Wien2k}) durchgeführt. Daher
werden die verwendeten Teile dieses Programmpaketes im Folgenden kurz
vorgestellt.  

\section{Initialisierungsphase einer Selbst\-konsistenz\-rechnung}
Zur Vorbereitung der \DFT-Selbstkonsistenzrechnung muss zunächst die
Geometrie der betrachteten Struktur dem Programmpaket bekannt gemacht
werden und auf Inkonsistenzen geprüft werden. Der Ablauf dieser
Initialisierungsphase ist in Abbildung \vref{fig:Wien2kInit}
schematisch dargestellt und im Folgenden beschrieben. 

Mit dem Programm \texttt{nn} wird die vom Anwender angegebene
Geometrie daraufhin überprüft, ob sich die Radien der \MT-Kugeln der
Atome überlappen und vom Nutzer als äquivalent angegebene Atome auch
äquivalent sein können.  
Gleichzeitig können bei komplizierteren Strukturen die einzelnen
\MT-Radien mit Hilfe dieses Programmes leicht so optimiert werden,
dass das Volumen der Einheitszelle möglichst vollständig mit den
\MT-Kugeln gefüllt ist.  
Diese Optimierung verringert den Rechenzeitbedarf für jeden
Selbstkonsistenzzyklus, da die innerhalb der \MT-Kugeln verwendete 
Basis aus atomaren Orbitalen weniger Rechenaufwand erfordert, als die
im Bereich zwischen den \MT-Kugeln verwendete \LAPW-Basis.

In einem nächsten Schritt werden mittels des Programmes \texttt{sgroup}
automatisch die für die vorgegebene Struktur zutreffende
kristallographische Punkt- und Raumgruppen bestimmt.

Mit dem Programm \texttt{symmetry} werden diese Informationen
weiterverarbeitet. 
Die erlaubten Symmetrieoperationen für die zuvor ermittelte
Raumgruppe, sowie für die Punktgruppen der einzelnen inäquivalenten
Atome werden bestimmt. 
Ferner werden zur Reduzierung des Rechenaufwandes die erlaubten
$LM$-Terme der Gitterharmonischen ermittelt, damit keine unerlaubten
Terme, das bedeutet Terme, die aus Symmetriegründen identisch null
sein müssen, berechnet werden. 
Bei Berechnung dieser verbotenen Terme kann es aber auch zu
Symmetrieverschmutzungen kommen, die dazu führen, dass das berechnete
Ergebnis der Selbstkonsistenzrechnung nicht mehr die vorgegebene
Symmetrie erfüllt. 
Ferner werden für Zellen mit mehreren äquivalenten Atomen sogenannte
lokale Rotationsmatrizen berechnet, damit diese äquivalenten Atome
durch identische atomare Orbitalfunktionen beschrieben werden können
und diese Funktionen sich nicht durch eine Rotation im reellen Raum
unterscheiden. 

\IG{Wien2kInit}{Schema der Initialisierungsphase des \Wientk-Programmpaketes.}

Das Programm \texttt{lstart} generiert die  atomaren Elektronendichten
für die Initialisierungsphase.
Mit diesen Dichten werden die Rumpfzustände von den Valenzzuständen
separiert und lokale Orbitale zur Optimierung der Rechnung
vorgeschlagen. 
Bei der Benutzung dieses Programmes  muss sich der Anwender auch für
das zu verwendende Dichtefunktional entscheiden.

An dieser Stelle wird normalerweise das Programm \texttt{kgen}
benutzt, um ein $k$-Raum-Gitter mit Tetraedern zu füllen. 
Dabei wird in der Regel das Tetraederverfahren von Blöchl et al. aus
\cite{BJA1994} verwendet.  
Da sich aber im Rahmen dieser Arbeit eine eigene symmetrieangepasste
Wahl des $k$-Raum-Gitters innerhalb der ersten \BZ als besser
konvergierend herausgestellt hat, werden stattdessen die dafür
benötigten Dateien von einem selbst geschriebenen Programm angelegt. 

Als letzter Schritt der Vorbereitung einer paramagnetischen Rechnung
wird dann das Program \texttt{dstart} verwendet, um durch
Superposition der atomaren Elektronendichten aus \texttt{lstart} die
Startelektronendichte für den Selbstkonsistenzzyklus zu berechnen. 

Im Falle einer \SDFT-Rechnung muss das abschließende \texttt{dstart}
noch jeweils einmal für jede der beiden Spinrichtungen ausgeführt
werden. 

\section{Der Selbstkonsistenzzyklus}
Der weitaus größte Rechenaufwand wird im Selbstkonsistenzteil der Rechnung
benötigt.
Der Selbstkonsistenzzyklus wird von einem \texttt{csh}-Skript
gesteuert. 
Dabei ist der Ablauf einer paramagnetischen von einer so genannten
\textsl{fixed-spin-moment}-Rechnung zu unterscheiden. 
Diese beiden Varianten sind in Abbildung \vref{fig:Wien2kZyklus} einander
gegenübergestellt. 

\IG[Schema eines Selbstkonsistenzzykluses des
  \Wientk-Programmpaketes]{Wien2kZyklus}{Schema eines paramagnetischen
  Selbstkonsistenzzykluses des \Wientk-Programmpaketes.} 
Im einfacheren paramagnetischen Fall wird zunächst mit \texttt{lapw0}
aus der Elektronendichte der letzten Iteration bzw. aus der durch
\texttt{dstart} erhaltenen Dichte der Initialisierungsphase der
Rechnung das Austausch- und Korrelationspotential bestimmt. 

Mit diesem Potential werden dann mittels \texttt{lapw1} die Eigenwerte
und Eigenvektoren der Valenzbänder berechnet.

Aus diesen Valenzbändern wiederum ermittelt \texttt{lapw2} die
Ladungsdichte der Valenzelektronen. 

Die Rumpfzustände und die Rumpfelektronenladungsdichte wird dann mit
\texttt{lcore} bestimmt. 
Dabei werden skalarrelativistische Korrekturen berücksichtigt.

Mit dem \texttt{mixer} werden die Ladungsdichten der letzten Iteration
mit der aktuellen mit dem von Singh \etal in \cite{SKW1986}
adaptierten Verfahren nach Broyden (\cite{Bro1965}) gemischt, um
eine möglichst schnelle Konvergenz zu erreichen.  
Dabei wird die Beimischung der jeweils aktuellen Iteration von
Iteration zu Iteration immer kleiner. 

Im Falle einer \textsl{fixed-spin-moment} Rechnung werden die
Programme \texttt{lapw1}, \texttt{lapw2} und \texttt{lcore} direkt
aufeinander folgend für jede der beiden Spinrichtungen verwendet. 
Dabei wird die Gesamtelektronenzahl für jeden dieser beiden Blöcke auf
den doppelten Wert der jeweiligen Spinrichtung gesetzt. 
Auf diese Weise wird erreicht, dass das Spinmoment fixiert wird.

\section{Verwendete Analysewerkzeuge}
Das \Wientk-Programmpaket bietet verschiedene Analysewerkzeuge an, um
die errechneten Daten auszuwerten. 
Die im Rahmen dieser Arbeit verwendeten Werkzeuge werden 
im Folgenden kurz vorgestellt.

Mit \texttt{irrep} von Clas Persson \cite{Per1999} hat man die
Möglichkeit im Falle \mbox{symmorpher} Raumgruppen seine Daten
gruppentheoretisch untersuchen zu lassen. 
Dies ist einerseits für die graphische Darstellung der Bandstruktur
wichtig, da so Bandkreuzungen erkannt und entsprechend berücksichtigt
werden können. 
Es macht auch andererseits die Entwicklung eines \TB-Modells
deutlich einfacher als noch mit der Vorgängerversion
\textsc{Wien97} (\cite{BSL1999}), die dieses Programm noch nicht
beinhaltete, da man Zustände nun meist einfach einander zuordnen kann. 

Bandstrukturen können mit Hilfe von \texttt{spaghetti} dargestellt
werden. 
Dabei wird optional die Ausgabe von \texttt{irrep} berücksichtigt. 
Dazu werden Kompa\-tibilitäts\-bedingungen zwischen den Darstellungen 
benachbarter Punkte im \textsl{k}-Raum benutzt, um die Eigenwerte der
beiden Punkte miteinander verbinden zu können. 
Leider gibt es in der verwendeten Version einen Fehler in den
im Programm verwendeten Kontinuitätsbedingungen um den
\textsl{N}-Punkt von \fcc-Strukturen.
Dieser Fehler konnte aber leicht im zu Verfügung stehenden Quelltext
behoben werden.

Wichtig ist auch die Berechnung und graphische Darstellung der
Zustandsdichte. 
Beides ist mit \texttt{tetra} sowohl für partielle als auch totale
Zustandsdichten der ganzen Einheitszelle oder eines einzelnen Atoms
möglich. 

\cleardoublepage

