X-Git-Url: https://hackdaworld.org/gitweb/?p=lectures%2Flatex.git;a=blobdiff_plain;f=nlsop%2Fdiplom%2Fquellcode.tex;h=8145388ee0148c33efce58bc982fc36e3ee43b12;hp=3f9cab285f3fefcd790a68e48ffe231d95b30cc6;hb=5f5b6074a6d580c687beb6bd20b96378386def9d;hpb=5eb534728dcb945e8600a054079e04f2eef3683e diff --git a/nlsop/diplom/quellcode.tex b/nlsop/diplom/quellcode.tex index 3f9cab2..8145388 100644 --- a/nlsop/diplom/quellcode.tex +++ b/nlsop/diplom/quellcode.tex @@ -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} +