first corrections, a lot more to do!
[lectures/latex.git] / nlsop / diplom / quellcode.tex
index 3f9cab2..8145388 100644 (file)
@@ -1,12 +1,85 @@
-\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}
+  
+  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}
+