-\chapter{Funktion und Quelltext der Programme}
+\chapter{Funktionen der Programme}
+
+{\em NLSOP} besteht aus einer Anzahl von Programmen.
+Diese sollen im Folgenden vorgestellt werden.
+Der Quellcode ist auf der beigelegten Compact Disc enthalten.
+
\section{Server}
+ \begin{verbatim}
+ nlsop_server.c
+ \end{verbatim}
+ Ein {\em Server}-Programm, bei dem sich {\em Client} und {\em Benutzeroberfl"ache} anmelden.
+ Dieses verteilt die zu rechnenden Simulationen auf freie {\em Client}-Rechner oder h"alt Simulationsauftr"age in einer Warteschlange.
+ Es nimmt fertige Rechenergebnisse entgegen und speichert sie lokal ab.
+ Es h"alt Statusinformationen "uber die laufenden Rechnungen und die Warteschlange zur Abfrage bereit.
+ Weiterhin nimmt es Simulationsauftr"age entgegen.
+ Die Interaktion mit {\em Client} und {\em Benutzeroberfl"ache} erfolgt durch das Netzwerk "uber eine {\em TCP/IP}-Verbindung.
\section{Client}
+ \begin{verbatim}
+ nlsop_client.c
+ \end{verbatim}
+ Das {\em Client}-Programm beinhaltet den eigentlichen Simulationscode.
+ Es meldet sich beim {\em Server} an und nimmt Rechenaufgaben entgegen.
+ Nach einer eintellbaren Anzahl von Durchl"aufen "ubergibt es Zwischenergebnisse beziehungsweise das Endergebnisse an den {\em Server}-Prozess.
+ Nach Beendigung einer Simulation geht es zur"uck in den Ruhezustand und wartet auf neue Rechenauftr"age.
\section{Benutzeroberfl"ache}
+ \begin{verbatim}
+ nlsop_gui.c
+ \end{verbatim}
+ Die {\em Benutzeroberfl"ache} dient zur "Ubergabe von Simulationsauftr"agen an den {\em Server}.
+ Weiterhin dient es zur Statusabfrage von laufenden Rechnungen, der Warteschlange und der angemeldeten {\em Client}-Rechner.
\section{Standalone Version}
+ \begin{verbatim}
+ nlsop.c
+ \end{verbatim}
+ Die {\em Standalone Version} ist ein eigenst"andiges Programm, das unter anderem auch den Simulationscode beinhaltet.
+ Zus"atzlich stellt sie eine Benutzeroberfl"ache zur Verf"ugung, die die Untersuchung des fertig simulierten Ergebnisses erm"oglicht.
+ Man kann Grafiken, die den TEM-Aufnahmen "ahnlich sind, sowie Druckspannungen und den Kohlenstoffgehalt visualisieren und als Bitmap abspeichern.
+ Ausserdem kann man Kohlenstoffprofile erzeugen und die Tiefe der vorderen und hinteren Grenzfl"ache einer vorhandenen durchgehenden Schicht bestimmen.
\section{APIs}
+ Einige Funktionalit"at wurde in externen Programmierschnittstellen ausgelagert.
+ Diese sind im Folgenden vorgestellt.
+ \begin{itemize}
+ \item \begin{verbatim} network.c, network.h \end{verbatim} \\
+ Hilfsmittel zur Verbindung der Programmteile "uber das Netzwerk.
+ \item \begin{verbatim} input.c, input.h \end{verbatim} \\
+ Funktionen f"ur die Benutzereingabe.
+ \item \begin{verbatim} list.c, list.h \end{verbatim} \\
+ Hilfsmittel zur Benutzung von verlinkten Listen.
+ \item \begin{verbatim} display.c, display.h \end{verbatim} \\
+ Funktionen zur Visulisierung auf Konsolenebene.
+ \item \begin{verbatim} event.c, event.h \end{verbatim} \\
+ Hilfsmittel zum Eventmanagement.
+ \item \begin{verbatim} bmp.c, bmp.h \end{verbatim} \\
+ Funktionen f"ur die Erstellung und Bearbeitung von Bitmap Dateien.
+ \item \begin{verbatim} fourier.c, fourier.h \end{verbatim}
+ Funktionen f"ur die diskrete Fouriertransformation.
+ \item \begin{verbatim} dfbapi.c, dfbapi.h \end{verbatim}
+ Helfer f"ur die Visulaisierung der Endergebnisse.
+ \item \begin{verbatim} random.c, randomi.h \end{verbatim}
+ Funktionen zur Erzeugung spezieller Wahrscheinlichkeitsverteilungen.
+ \end{itemize}
+
+ \section{Andere Hilfsmittel}
+ \label{section:hilfsmittel}
+
+ Im Folgenden sind weiter Programme vorgestellt, deren Funktionalit"at aus diversen Gr"unden nicht in die Hauptprogramme eingeflossen ist.
+
+ \begin{itemize}
+ \item \begin{verbatim} nlsop_make_cryst.c \end{verbatim} \\
+ Estellt ein Duplikat eines gespeicherten Ergebnisses wobei alle Zust"ande der Volumen auf \dq Kristallin\dq{} gesetzt werden.
+ \item \begin{verbatim} parse_trim_collision.c \end{verbatim} \\
+ Werkzeug zur Auswertung der Datei in der {\em TRIM} die Kollisionen protokolliert.
+ \item \begin{verbatim} dft.c, dft.h \end{verbatim} \\
+ Erstellt die zweidimensionale Fouriertransformation eines Bitmaps.
+ \item \begin{verbatim} linescan.c \end{verbatim} \\
+ Erstellt den Linescan "uber ein fouriertransformiertes Bitmap.
+ \item \begin{verbatim} random_parse.sh \end{verbatim} \\
+ Simples Shell-Script zur Auswertung und "Uberpr"ufung der Zufallszahlen.
+ \end{itemize}
+