Home
Projektgruppe 423: DeViSoR
Contents
1. GUITEXTFIELD GUI TextField End_GUI Codebeispiel 175 GUI TextField protocol definition GUITEXTAREA GUI TextArea End_GUI Codebeispiel 176 GUI TextArea protocol definition GUISLIDER GUI Slider From INT from DOUBLE from To INT to DOUBLE to Step INT step DOUBLE step Mode CONSTSTRING CONTINUOUS DISCRETE MajorTicksSpacing INT major MinorTicksSpacing INT minor End_GUI Codebeispiel 177 GUI Slider protocol definition GUIRADIOBUTTON GUI RadioButton Default INT default Button ID INT default Name GOODSTRING name Value INT value DOUBLE value STRING value End_Button End_GUI Codebeispiel 178 GUI RadioButton protocol definition 287 288 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN GUICHECKBOX GUI CheckBox End GUI Codebeispiel 179 GUI CheckBox protocol definition GUICOMBOBOX GUI ComboBox Editable Boolean editable End GUI Codebeispiel 180 GUI ComboBox protocol definition GUICOLORCHOOSER GUI ColorCooser End GUI Codebeispiel 181 GUI ColorChooser protocol definition GUISELECTION GUI Selection End GUI Codebeispiel 182 GUI Selection protocol definition GUIGRIDVIEWER GUI GridViewer End_GUI C
2. BIT Filter sosyo Sond ead 4 Ba She ae B12 Mappet i 2020s ot Be pa e e a a ae Be de B 1 3 Renderen 2 Co oo moon enn B 1 4 Eine Parameterliste 2 2222 Co oo onen B 2 Tutorial zur Integration eines neuen Moduls in das System B 2 1 Definition der unterst tzten Probleme und Parameterlisten B 2 2 Definition der unterst tzten Protokollbefehle 95 103 105 105 105 106 106 106 107 107 107 107 108 108 108 109 110 110 111 111 111 114 115 121 128 128 130 131 149 152 154 160 160 160 vi INHALTSVERZEICHNIS B 2 3 Implementierung des Wrappers f r das neue Modul B 2 4 Implementierung des neuen Moduls B 2 5 Anbindung an den Server NEXUS 2 2 2222 B 3 Einbindung anderer Programmpakete 2 2222 B 4 Ein neues Element in GRID erstellen 2 2 moon B 4 1 Modifikation am FEAST Format 2 2 2 2 onen B 4 2 Modifikation an derDomain 00 B 4 3 Modifikation an den View Klassen 2 2 2 22222 B 4 4 Weitere Modifikationen 222 22m une B 5 Sonstige Erweiterungsm glichkeiten 2 ee B 5 1 Portierung nach Windows 2 2 B 5 2 Benutzerauthentifizierung 2 2 2 2 Cum n nennen C API Dokumentation C 1
3. LocaleHandler getLocale Enumeration paramEnum aList getEnumeration istOfErrors errors new ListOfErrors il8n int errorCount 0 while paramEnum hasMoreElements Parameter p Parameter paramEnum nextElement try 4 show boundary as a grid if p getID 4005 boolean choice false if ScalarParameter p getValue equalsIgnoreCase true choice true this showBoundaryGrid choice QuadColor else if p getID 4001 VectorParameter vParam VectorParameter p String redValue Entry vParam getList getEntryAt 0 getValue nt red Integer parselnt redValue H String greenValue Entry vParam getList getEntryAt 1 getValue int green Integer parselnt redValue String blueValue Entry vParam getList getEntryAt 2 getValue int blue Integer parselnt redValue Color aColor new Color red green blue his setQuadColor aColor ct catch Exception e Error anError new Error il8n anError setID errorCount anError setMessage Exception while configuring a DomainMapper e getMessage errors addError anError errorCount tt t return errors Codebeispiel 22 Die configure Methode eines Mappers 184 ANHANG B ERWEITERUNGSM GLICHKEITEN Diese configure Methode Codebeispi
4. 1 3 Aufgabenstellung Der in der Projektgruppe verfolgte Weg versucht die genannten Schwierigkeiten zu mindern Das DEVISOR Design and Visualization Software Ressource getaufte System verfolgt dazu einen streng modularen Ansatz Von einem zentralen Kontrollmodul aus kann der Benutzer alle Simulationsparameter ber eine komfortable graphische Schnittstelle einstellen und den 4 KAPITEL 1 EINLEITUNG Simulationsverlauf verfolgen Der DEVISOR bietet mit der Integration der leistungsf higen Pakete FEATFLOW und FEAST und den bereitgestellten Modulen zur Gittereditierung und Vi sualisierung bereits genug Werkzeuge an um ohne lange Einarbeitungszeit direkt praktisch eigene Simulationen durchf hren zu k nnen Der modulare Ansatz erlaubt weiterhin flexi bel ohne das existierende System ndern zu m ssen weitere Pakete anzubinden Vorstellbar sind hier zus tzliche Numerikpakete beispielsweise speziell f r granulare Flu vorg nge oder Werkzeuge zur automatischen Gittergenerierung die im existierenden Editor noch nachbereitet werden k nnen Eine weitere Kernkomponente des Systems ist die Verteiltheit In praktischen Situationen m ch te der Anwender gerne bequem am Schreibtisch die Konfiguration eines Simulationslaufs vor nehmen und den Verlauf verfolgen Der Schreibtisch PC ist aber bei weitem nicht leistungs f hig genug die eigentliche Berechnung sollte also besser auf einem Supercomputer und die Visualisierung der Erge
5. 3 6 7 VisionMovie Mittels des VisionMovie Pakets kann aus den JPEG Bildern der einzelnen Visualisierungs Schritte ein Apple Quicktime Film generiert werden Dazu werden alle erzeugten Bilder einer Visualisierung benutzt Das Quicktime Format wurde aus folgenden Gr nden gew hlt e Es wird von verf gbaren Java Bibliotheken unterst tzt JMF vgl Kapitel 2 6 1 was beim vielfach bevorzugten MPEG Format nicht der Fall ist e Es ist nicht nur einfach abzuspielen sondern auch mit vertretbarem Rechenaufwand zu generieren e Um einer bef rchteten Plattformabh ngigkeit wegen propriet rer Abspiel Software vor zubeugen konnte ein kleines Abspiel Programm in Java realisiert werden 88 KAPITEL 3 SYSTEMBESCHREIBUNG 3 6 8 Die Visualisierungs Pipeline des Vision Moduls Der allgemeine Aufbau des Vision Moduls orientiert sich stark am Aufbau bew hrter Grafik Systeme Die Idee der Pipeline besteht darin einen Datenflu so zu bearbeiten so da aus den Rohdaten die f r die ausgew hlte Visualisierungstechnik irrelevanten Daten herausgefiltert die relevanten Daten ausgewertet und diese dann graphisch dargestellt werden Dabei k nnen drei unterschiedliche Pipeline Komponententypen unterschieden werden e Filter die das gro e eingehende Datenvolumen auf ein f r die gew nschte Simulation optimiertes Volumen reduzieren e Mapper die die Zuordnung zwischen den gefilterten Daten und Java3D Objekten ber
6. call dllm_reset_status Codebeispiel 51 Beispiel FeatPoisson Initialisierung Die drei Parameter Socket Remotesocket und Instancehandle werden uber die Kommandozeile eingelesen und die Funktion dllm_init_relink wird mit diesen Parameterm aufgerufen um die vom VINCULUM Modul initierte Verbindung benutzen zu k nnen um das Ergebnis der Initialisierung an den aufrufenden Serverproze melden zu k nnen Im folgenden Codeabschnitt wird die Initialisierung des Testproblems mit Hilfe der FEAT2D Routinen durchgef hrt Die Datei mit den Parameter wird eingelesen und die Routinen zur Initialisierung der Datenstrukturen werden aufgerufen Im Fehlerfall wird eine Fehlermeldung zur ckgeliefert und das Programm beendet if first eqv TRUE then first FALSE ier 0 call dllm_return_feat_errcode ier endif Codebeispiel 52 Beispiel FeatPoisson Riickmeldung Wenn das Programm bei der Initialisierung bis an diese Stelle gekommen ist Codebeispiel 52 ist alles ok und dies wird dem aufrufenden Server mitgeteilt 1000 CONTINUE call dllm_listen_link ITIME ICMD IVAL IPAR DPAR Codebeispiel 53 Beispiel FeatPoisson Hauptschleife B 3 EINBINDUNG ANDERER PROGRAMMPAKETE 205 Das ist die Hauptschleife Die Routine fragt den lokalen Port ab und liefert ggf das bertra gene Kommando nebst den Integerparametern IVAL IPAR und dem Doubleparameter DPAR
7. Das Szenengraph Konzept Szenengraphen engl scene graphs bieten eine M glichkeit 3D Szenen kompakt zu beschrei ben Sie enthalten dazu nicht nur die reinen Geometrieobjekte sondern zus tzlich Transfor mations Beleuchtungs oder Materialattribute Formal handelt es sich bei Szenengraphen um azyklische gerichtete zusammenh ngende Graphen G V mit der Knotenmenge V und der Kantenmenge E Alle Knoten sind attributiert e Ein Knoten ist speziell ausgezeichnet und hei t die Wurzel des Graphen Von ihm ge hen nur Kanten aus er hat keine eingehenden Kanten Hier kann beispielsweise der Be trachterstandpunkt angegeben werden Gruppierungs und Verzweigungsknoten dienen der Strukturierung von Teilgraphen e Geometrieknoten enthalten Beschreibungen von Szenenelementen bspw die Beschrei bung eines Einheitsquaders oder ein wenig komplexer ein durch eine Triangulierung seiner Oberfl che gegebenes Objekt Transformationsknoten beschreiben beliebige geometrische Transformationen so z B Skalierungen oder Translationen Ein Transformationsknoten bezieht sich immer auf al le anderen Knoten die von ihm aus durch einen gerichteten Weg aus Kanten erreicht werden k nnen Materialknoten werden Geometrieknoten zugeordnet und beschreiben bspw Texturen die auf die Objekte gelegt werden oder Reflexionseigenschaften Beleuchtungsknoten enthalten Informationen ber Art Ausdehnung und Richtung von Lichtquellen Auch
8. JPEG der Joint Photographic Experts Group JPEG steht f r Joint Photographic Experts Group die Gruppe die JPEG urspr nglich spe zifiziert hat Dieses Datenformat komprimiert die Bildinformationen von insbesondere Fo tographien derart da Komprimierungsraten von 10 1 bis 20 1 ohne sichtbaren Verlust der Qualit t eines Bildes m glich sind Bei weiterer Erh hung der Komprimierungsrate welche bei JPEG variabel ist k nnen Komprimierungsraten von 30 1 bis 50 1 mit nur geringen sicht baren Qualit tseinbu en erreicht werden F r Bilder die weniger hohen Qualit tsanspr chen gen gen m ssen kann auch noch mit einer Komprimierung von 100 1 gearbeitet werden Bei der JPEG Komprimierung werden die Bildinformationen zun chst in ein Format konvertiert da die Daten in Helligkeits und S ttigungsgraden erfa t YCbCr YUV etc um diese Kan le unterschiedlich stark zu komprimieren da das menschliche Auge intensive Farbs ttigung nicht so gut erfassen kann wie intensive Helligkeit Die Aufl sung der Farbs ttigung wird dann je nach Komprimierungsgrad halbiert oder geviertelt Anschlie end wird mit Teilen der Bild informationen je 8x8 Pixel eine Fouriertransformation durchgef hrt um ein Frequenzbild dieses Bildausschnittes zu erhalten Von diesen Frequenzen werden dann je nach Grad der Komprimierung entsprechend viele angefangen bei den h chsten nicht mitgespeichert Zu guter letzt durchlaufen die so verarbeit
9. End _VectorParameter Codebeispiel 165 VectorParameter protocol definition SETVECTOR SetVectorParameter ID INT parameter id Values Entry Value GOODSTRING value End_Entry End_Values End_SetVectorParameter Codebeispiel 166 SetVectorParameter protocol definition D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS GRID GridParameter ID INT parameter id Name GOODSTRING parameter name ShortName GOODSTRING shortname Reconfigurable CONSTSTRING TRUE FALSE Description GOODSTRING text End_Description Size LONG size T naw Value FEAST End_Value GUIGRIDVIEWER End_GridParameter Codebeispiel 167 GridParameter protocol definition SETGRID SetGridParameter ID INT parameter id Value Size LONG size FEAS End_Value End_SetGridParameter Codebeispiel 168 SetGridParameter protocol definition 283 284 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN FUNCTION FunctionParameter ID INT parameter id Name GOODSTRING parameter name ShortName GOODSTRING shortname Reconfigurable CONSTSTRING TRUE FALSE Description GOODSTRING text End_Description GlobalParameters TYPE GOODSTRING varname 0 End_GlobalParameters Function TYPE GOODSTRING varname 0 ASSIGNMENT IFBLOCK
10. ERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS INT module id INT handle Codebeispiel 125 Pause protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS CMDREPLY 10 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS PauseReply LOE End_PauseReply Codebeispiel 126 PauseReply protocol command CMD 10B Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL M IS E Command Step ModuleID INT module id InstanceHandle INT handle End_Command Codebeispiel 127 Step protocol command CMDREPLY 10B Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS StepReply LOE End_StepReply Codebeispiel 128 StepReply protocol command CMD 11 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command Rewind ModuleID INT module id InstanceHandle INT handle Steps INT steps End_Command Codebeispiel 129 Rewind protocol command 271 272 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN CMDREPLY 11 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS RewindReply LOE End_RewindReply Codebe
11. Problem ID INT problem id Name GOODSTRING name Description EVILSTRING info End_Description LocalProtocol CONSTSTRING NONE STARTSTOP STARTSTOPPAUSE STARTSTOPPAUSERECONFIG FULL End_Problem GetParameters SCALAR VECTOR NODE GRID FUNCTION SELECTION DATASOURCE End_GetParameters GetConfiguration SCALAR VECTOR NODE GRID FUNCTION SELECTION DATASOURCE End_SetConfiguration End_GetCompleteConfigurationReply Codebeispiel 118 GetCompleteConfigurationReply protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS CMD 7 Command ModulelID ProblemID End_Command Subtype InstanceHandle SETSCALAR SETVE SETFUNCTION S End_SetParameters S CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS SetCompleteConfiguration INT module id INT problem id SetParameters INT handle CTOR SETNODE SETGRID ETSELECTION SETDATASOURC 1 SetConfiguration SETSCALAR ETFUNCTION End_SetConfiguration SETVECTOR SETNODE SETGRID SETSELECTION SETDATASOURCE Codebeispiel 119 SetCompleteConfigurat
12. 2 2 7 Anwendbarkeit von computational steering Konzepten 2 3 Wissenschaftliches Rechnen 2222 20 2 3 1 _Hocheffiziente Implementierung 2 3 2 _ Ein Beispiel f r Algorithmen auf Vektorrechnern 2 3 3 _ _Parallelarchitekturen 2 2 2 222220 2 4 Wissenschaftliche Visualisierung von Simulationsdaten 2 4 1 Die Visualisierungspipeline 2 4 2 Klassifizierung von Visualisierungstechniken 2 4 3 Techniken f r skalare Daten 2 4 4 Techniken f r vektorielle Daten 2 5 Verwendete Datenformate 2 2 22 2 2 nn 2 5 1 Bilddateiformate 0 2 5 2 Filmdateiformate 0 2 5 3 Gitter und Geometriebeschreibungen 2 5 4 Formate fiir en ok eei 2 6 Verwendete Programme und Hilfsmittel 2 6 1 Java und Java Erweiterungen lil INHALTSVERZEICHNIS
13. NEO NIT ITE EPS OMEGA 1000 C The cpu time for the solution is displayed CALL ZTIME TIME WRITE MPROT TIME SOLVER TIME if itime 1t 10 then write CFILE A Il result auslenkung else if itime 1t 100 then write CFILE A I2 result auslenkung else if itime 1t 1000 then write CFILE A I3 result auslenkung else if itime 1t 10000 then write CFILE A 14 result auslenkung else if itime 1t 100000 then write CFILE A I5 result auslenkung else if itime 1t 1000000 then write CFILE A I6 result auslenkung else write CFILE A I7 result auslenkung endif MUNIT 57 CALL XGMV2D MUNIT CFILE N gmv I gmv I gmv I gmv I gmv I gmv I gmv I EL NVT KWORK L LVERT DWORK L LCORVG DWORK L LU E E E E E 59 Codebeispiel Codebeispiel 59 Beispiel FeatPoisson Hauptschleife 207 zeigt wie die L sungsroutine aufgerufen und das Ergebnis als GMV Datei herausgeschrieben wird Au erdem wird durch Aufrufen der Routine result_available dem lokalen Server mitgeteilt da Resultate verf gbar sind Dies mu manuell vom Modul selbst erledigt werden 208 ANHANG B ERWEITERUNGSM GLICHKEITEN call dllm_open_stat ITIME call dllm_put_stat_int ITE call dllm_put_stat_double EPS call dllm_put_stat_double DTIME call dllm_
14. In einem BoundaryNode sind die Nummer eines 2D Boundaries dies sind Boundaries die das Interface Segment implementieren und ein Parameter t gespeichert Ist die Boundary beispielsweise ein Kreis und der Parameter 0 5 so liegt der BoundaryNode an der 12 Uhr Position auf dem Kreis F r BoundarySegmentLists diese setzen sich aus Kanten und Kreis segmenten zusammen entspricht der Parameterwert 2 5 der H lfte der 3 Segments BoundaryNode3Ds k nnen auf Boundaries liegen die das Interface Segment3D implemen tieren Au er der Boundary Nummer speichern sie zwei Winkel a und und einen Integer Wert n Um die Position des BoundaryNode3D zu berechnen rotiert man einen Strahl mit Richtungsvektor 1 0 0 zuerst um a um die Z Achse und dann um den Winkel 3 um die X Achse Der Startpunkt des resultierenden Strahls wird in den Schwerpunkt der Boundary verschoben Der n te Schnittpunkt des Strahls mit dem Boundary gibt die Position des Boun daryNode3D Der Schwerpunkt ist der Mittelpunkt der Boundingbox der Boundary Da die Implementation von Segment3d auch die Implementation der Methode getBoundingBox erzwingt kann dieser leicht ermittelt werden 82 KAPITEL 3 SYSTEMBESCHREIBUNG Strahl vor der Rotation Point3d p new Point3d 1 0 0 0 0 0 Rotationsmatrizen atrix3d M new Matrix3d N new Matrix3d rotX beta N rotZ alpha mul N Durchfuehrung der Rotation verschieben in den Schwerpunkt t
15. e Schwellenwertverfahren Der Wert des Pixels wird einfach durch den ersten Voxel wert bestimmt der ber einem festgelegten Schwellenwert liegt Diese Methode liefert prinzipiell hnliche Ergebnisse wie eine Oberfl chenrekonstruktion Um die Voxel zu bestimmen die ein Sichtstrahl auf seinem Weg durch das Volumen trifft wird entlang des Strahls in einer bestimmten Schrittweite durch das Volumen gegangen Die Schrittweite ist meistens quidistant mu es aber nicht sein um z B unwichtige Bereiche schneller bzw wichtige Bereiche langsamer zu durchschreiten und so eine zonenabh ngige Genauigkeit zu erzeugen An jeder so erreichten Stelle des Strahls wird dann zun chst das Vo xel bestimmt durch den der Strahl gerade geht was z B ber den DDA Algorithmus digital differential analyser 13 geschehen kann Danach wird der Wert des zu behandelnden Vo xels bestimmt welcher bei ber Eckpunkten definierten Voxeln normalerweise durch trilineare oder trikubische Interpolation errechnet oder aber einfach der Wert des n chstgelegenen Voxels bernommen wird Bei Voxeln deren Wert den gesamten Inhalt bestimmt kann man ihn direkt auslesen 2 4 4 Techniken f r vektorielle Daten Einf hrung und Problembeschreibung Zur Visualisierung von Vektorfeldern gibt es mehrere Ans tze Die erste vorgestellte Methode ist trivial In ausgew hlten Punkten werden Vektoren als Pfeile engl glyphs eingezeichnet damit ist die Richtung des
16. End_Function GUIFUNCTIONEDITOR End_FunctionParameter T Codebeispiel 169 FunctionParameter protocol definition End_SetFunctionParameter SETFUNCTION SetFunctionParameter ID INT parameter id GlobalParameters TYPE GOODSTRING varname 0 End_GlobalParameters Function TYPE GOODSTRING varname 0 ASSIGNMENT IFBLOCK Codebeispiel 170 SetFunctionParameter protocol definition D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS ASSIGNMENT VAR ASSIGNMENTO ASSIGNMENTO ASSIGNMENTO INT DOUBLE FUNC2 ASSIGNMENTO ASSIGNMENTO FUNC ASSIGNMENTO VAR CONST ASSIGNMENTO INT DOUBLE FUNC2 ASSIGNMEN ASSIGNMENTO FUNC ASSIGNMENTO VAR CONST FUNC LN SORT EXP FUNC2 POW MIN MAX CONST PI E VAR GOODSTRING varname EQN ASSIGNMENTO gt lt lt gt ASSIGNMENTO IFBLOCK IF EQN THEN ASSIGNMENT IFBLOCK ELSE ASSIGNMENT IFBLOCK ENDIF IF EQN THEN ASSIGNMENT IFBLOCK ENDIF Codebeispiel 171 Allowed Functions 285 286 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN S ia LECTION SelectionParameter I
17. Ferner ist ein sogenannter Relaxationsparameter w lt 1 gebr uchlich um den Defektkorrektur wert zu d mpfen und somit bessere Konvergenzraten zu erzielen Die vollst ndige Vorschrift schreibt sich schlie lich zer Ms 1A b Mehrgitterverfahren Analytische Untersuchungen der oben genannten Defektkorrekturver fahren haben gezeigt da die hochfrequenten Anteile des Fehlers gut ged mpft werden w h rend bei den niederfrequenten Anteilen Schwierigkeiten auftreten und so die langsame Konver genz verursachen Eine Idee besteht darin eine Sequenz von Gittern unterschiedlicher Feinheit 2 2 MATHEMATISCHER HINTERGRUND 29 zu verwenden um auf jedem der Gitter einen oder mehrere Defektkorrekturschritte auszuf h ren Gl tten und die berechnete N herung f r die Korrektur von einem zum n chsten Gitter zu transferieren Die Operation um von einem feinen zu einem groben Gitter zu kommen hei t Restriktion die umgekehrte Prolongation Ist man auf dem gr bsten Gitter angelangt mu die sogenannte Grobgittergleichung exakt gel st werden Da diese Probleme im allgemeinen klein sind werden hier in der Regel direkte L ser benutzt t Restriktion N Prolongation Abbildung 2 12 Mehrgitteroperationen Mehrgitterverfahren lassen sich durch folgende Parameter spezifizieren im allgemeinen sind diese Parameter fest fiir alle Gitterstufen e verwendete
18. GRID ist Teil des DEVISOR Paketes kann aber auch unabh ngig davon zur Generierung von 3D und 2D Gitterdateien verwendet werden Der Gittereditor unterst tzt momentan lediglich das Speichern im FEAST Format da das die Hauptanforderung an den Editor war Der Editor unterst tzt unterschiedliche Typen Finiter Elemente A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER129 Abbildung A 24 Zeitschrittauswahl Tris Dreiecke im zweidimensionalen Raum Quads Vierecke im zweidimensionalen Raum Tetras Tetraeder im dreidimensionalen Raum Hexas Hexaeder im dreidimensionalen Raum 130 ANHANG A BENUTZERHANDBUCH Um den Raum zu beschreiben den die Finiten Elemente f llen werden sogenannte Boundaries benutzt Die vom Editor unterst tzten Boundary Typen sind SegmentList Ein Polygon im zweidimensionalen Raum Die Umlaufrichtung gibt dabei an ob die SegmentList einen Bereich umschlie t oder ob sie einen Bereich ausschlie t Circle Ein Kreis im zweidimensionalen Raum Auch hier entscheidet die Umlaufrichtung ob ein Bereich umschlossen wird oder ob er ausgeschlossen wird Sphere Eine Kugel im dreidimensionalen Raum Cubicle Ein Quader im dreidimensionalen Raum Triangulation Ein durch ein Dreiecksnetz beschriebenes Objekt im dreidimensionalen Raum Eine Triangulation Kann in der aktuellen Version des Editors nicht direkt erstellt werden sondern nur durch Importieren von WaveFront Dateien Das Erstellen der Objek
19. Mit den Quotienten l a 1 a11 sind die Elemente gegeben durch alt az lilk o bi lab Unter der Annahme az2 0 folgt der zweite Eliminationsschritt T1 T2 T3 LA 1 a am as au bi 22 23 24 2 0 0 a a 0 90 ud XY v2 T3 LA 1 a1 a2 a3 aya by 1 1 1 1 O sayy dag ay ib 0 0 ad 2 3 0 0 Oo a oe Wenn man die letzte Zeile mit dem Unbekanntenvektor multipliziert erh lt man die letzte L sungskomponente Setzt man diese in die vorletzte Zeile ein und l st nach der vorletzten Un bekanntenkomponente auf erh lt man die vorletzte L sungskomponente Dieses R ckw rts einsetzen f hrt man f r alle Zeilen durch und erh lt so die L sung allgemein n 2 en g pD a k i 1 Dieses Verfahren besitzt ein kubisches Laufzeitverhalten f r n Gleichungen m ssen O n Operationen ausgef hrt werden Dies ist f r kleine Problemgr en akzeptabel aber nicht f r solche die in komplexen Simulationen auftreten 2 2 MATHEMATISCHER HINTERGRUND 27 Iterative Verfahren Die zweite Klasse bilden die iterativen Verfahren die das endg ltige Resultat nicht schon nach einem Schritt ausgeben sondern erst nach mehreren Daf r sind die Einzelschritte deutlich bil liger Das Kriterium um die Qualit t des Iterationsverhalten zu bewerten hei t Konvergenzrate p und ist folgenderma en definiert dabei bezeichne x das Ergebnis nach k Iteration und x den Startwert 1 k _
20. bersicht ber die Pakete und Klassen 2 22 oo oo nn C 2 Das Paket CONTROL C 2 1 devisor control app 2 2 2 Cm none C 2 2 _devisor control event 22 22 2 CC mm C 2 3 _devisor control sUl e soe soe ee C 2 4 devisor control gui dynamicGul 2 2 2 2 22m C 2 5 _devisor control gui properties 2 2 2 mn n nennen C 2 6 devisor control gui images 2 2 2 Cm nn C 2 7 _devisor controlutil 22 222 CC onen C 3 Das Paket FRAMEWORK 2 EEE C 3 1 _ devisor framework foundation 2 222 222 nme C 3 2 __devisor framework il n 22 2 2 Co on n ee C 3 3 _devisor framework images 2 2 2 Kummer C 3 4 _devisor framework mainframe 2 2 2 2 nn C 3 5 __devisor framework options 2 2 2 2 mn nennen C 3 6 __devisor framework toolbox 2 22 aa C 3 7 _devisor framework viewel 22 2 2 Cm on C 4 DasPaket GRID s a e spoe om nn C 4 1 _devisor grid backend ae E ie oie de Wee iets I ee E C 4 2 _devisor grid dialogs a C 4 3 ee re Bra ee eee eae ee Br Pe C 4 4 devisorgridil8n 2 2 ee ee C 4 5 _devisor grid images 2 Como onen C 4 6 E De aa hai E WS E eke at GA EE ee ee oe C 4 7__devisor grid main 2 2 ta aa ia a e EE E a E E C 4
21. dul vorgestellt und gezeigt wie man sie bedienen kann Da in der dynamischen GUI immer Beschreibungen f r die einzelnen Komponenten mitgeliefert werden wird hier f r die sinnge m e Benutzung der dynamischen GUI eines Moduls auf diese Beschreibungen oder auf die Handb cher des jeweiligen Moduls verwiesen bersicht Die Durchf hrung einer vollst ndigen Konfiguration eines Moduls besteht immer aus drei Schritten Schritt 1 Aus einer Liste von Problemen z B Membranproblem wird ein Problem aus gew hlt Schritt 2 Das in Schritt 1 ausgew hlte Problem wird konfiguriert Schritt3 Das Modul wird unabh ngig vom ausgew hlten Problem konfiguriert Erst nach Beendigung des dritten Schritts ist die vollst ndige Konfiguration abgeschlossen 122 ANHANG A BENUTZERHANDBUCH Schritt 1 Auswahl eines Problems In Schritt 1 wird ein Problem aus einer Liste von Problemen ausgew hlt In Abb A 11 wird als Beispiel das Membranproblem gezeigt Im unteren Ausgew hltes Problem Panel ist die vollst ndige Beschreibung des ausgew hlten Problems sichtbar ber den Weiter Button gelangt man zu Schritt 2 Falls das Modul zu einem fr heren Zeitpunkt schon einmal konfiguriert wurde und bei dieser Konfiguration wieder das gleiche Problem gew hlt wird er folgt eine Abfrage ob die alten Einstellungen beibehalten werden sollen Falls dies der Fall ist sind die Einstellungen in Schritt 2 und Schritt 3 die gleichen wie beim l
22. 14x pil PROB Konvergenzraten gr er 0 5 sind schlecht kleiner als 0 1 sind gut CG Verfahren Um definitive Aussagen ber dieses Verfahren treffen zu k nnen mu die Koeffizientenmatrix A positiv definit sein Eine Matrix A RN hei t positiv definit wenn gilt x Ax gt 0 f rallexe RY 0 x Ax 0 nurf rx 0 Der zur Aufl sung erforderliche Aufwand l t sich durch die Verwendung einer der Aufgabe angepa ten Basis p des RN gezielt reduzieren Es besitze p die Eigenschaft mit dem Kronecker Symbol 6 Richtungen bzw Vektoren p mit diesen Eigenschaften hei en konjugiert oder A orthogonal Stellt man die gesuchte L sung u des Gleichungssystem ber der Basis p dar d h N u gt N P j l dann lassen sich die zugeh rigen Koeffizienten 7 7 1 N wegen der A Orthogonalit t explizit darstellen durch b pj S u 3 9 Tesco Ap Pj Konjugierte Richtungen sind in der Regel nicht a priori bekannt Der Grundgedanke der CG Verfahren besteht darin diese Richtungen mit Hilfe eines Orthogonalisierungsverfahrens aus den verbleibenden Defekten d b Aut in den Iterationspunkten u t rekursiv zu erzeugen Man stellt also die neue Richtung p in der Form k pi d 4 Y gp j l dar und bestimmt die Koeffizienten Bg R aus der verallgemeinerten Orthogonalitatsbedin gung Ap pj 0 5 1 S R k 28 KAPITEL 2 GRUNDLAGEN Die Richtungen d 1
23. 4 Und zuletzt das Hinzuf gen einiger Internationalisierungs Strings zu der Standard Datei devisor vision util FindConfigurablesil8n properties sowie u U auch zu den anderen Internationalisierungs Dateien in diesem Paket Die Durchf hrung dieser vier Schritte ist Gegenstand der n chsten vier Abschnitte Der Filter der gebaut wird ist der Identity Filter der auch schon so im VISION Paket enthalten ist Dieser Filter ver ndert die Daten nicht ist extrem einfach zu implementieren und daher gut geeignet die notwendigen Schritte zu erkl ren 169 170 ANHANG B ERWEITERUNGSM GLICHKEITEN Die neue Filter Klasse Zun chst wird eine Klasse ben tigt die von AbstractFilter erbt In Codebeispiel 110 ist zu sehen wie so eine Klasse im einfachsten Falle aussehen k nnte public class IdentityFilter extends AbstractFilter public IdentityFilter super public boolean filter public ParameterList getParameterList public ListOfErrors configure ParameterList aList Codebeispiel 10 Grundgeriist jeder Filterklasse Die fehlenden Methoden Natiirlich ist diese Klasse so noch nicht kompilierbar weil die geerbten Methoden noch zu implementieren sind public ParameterList getParameterList Diese Methode soll alle Parameter zur Verf gung stellen die von diesem Filter ben tigt werden Sie wird bei der Initialisierung des VISION Moduls aufgerufen um alle Para meter aller E
24. A 10 erfolgt ber den Downloaddialog Hier werden in einer Tabelle die vorhandenen zum Download zur Verf gung gestellten Ergebnisse angezeigt wobei zwischen einer vereinfachten und einer ausf hrlichen Auflistung der Eigenschaften des Ergeb nisses gew hlt werden kann Bei beiden Anzeigemodi wird als Tooltip eine Detail bersicht des Ergebnisses angezeigt Durch Doppelklicken kann bei zeitschrittabh ngigen Ergebnissen der Zeitschrittauswahldialog ge ffnet werden ber das Kontextmen oder ber Downloadbutton wird ein Ergebnis in die Warteschlange der Downloads eingereiht ebenfalls durch das Kontext men oder durch den Abbrechenbutton kann es nat rlich wieder daraus entfernt werden ber die Anzahl der Verbindungen legt man fest wieviele Ergebnisse gleichzeitig heruntergeladen werden d rfen A 4 CONTROL DIE STEUERUNG DES SYSTEMS 121 Fesur tomad 1 Download i 0 5 Avam able Resets Rest Name __ Sate z __Tyee Option Kusiankung Amide Notimpl CH Swe Total Inte Connections Amount am Tate CS max Progress Estate Time Remaiming Totak gt Dewnloss T X aren Hage Abbildung A 10 Der Ergebnisdownload A 4 7 Konfiguration eines Moduls F r die Konfiguration eines Moduls steht die dynamische GUI zur Verf gung Da die Konfi guration eines Moduls sich ndern kann und bei jedem Modul verschieden ist werden hier die einzelnen Komponenten der dynamischen GUI unabh ngig von irgendeinem bekannten Mo
25. GUICHECKBOX Format Double GUITEXTFIELD GUISLIDER GUIRADIOBUTTON GUICHECKBOX Format String GUITEXTFIELD GUITEXTAREA GUICHECKBOX GUIRADIOBUTTON Format Boolean GUICHECKBOX End_ScalarParameter Codebeispiel 163 ScalarParameter protocol definition SETSCALAR SetScalarParameter ID INT parameter id Value TYPE default End_SetScalarParameter Codebeispiel 164 SetScalarParameter protocol definition 282 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN VECTOR VectorParameter ID INT parameter id Name GOODSTRING parameter name ShortName GOODSTRING shotname Reconfigurable CONSTSTRING TRUE FALSE Description GOODSTRING text End_Description Format CONSTSTRING TYPE MYTYP I Values ntry Label GOODSTRING label T Gl w t Value MYTYPE value End_Entry End_Values Unit GOODSTRING unitname Format Integer GUITEXTFIELD GUISLIDER GUIRADIOBUTTON GUICHECKBOX Format Double GUITEXTFIELD GUISLIDER GUIRADIOBUTTON GUICHECKBOX Format String GUITEXTFIELD GUITEXTAREA GUICHECKBOX GUIRADIOBUTTON Format Boolean GUICHECKBOX Format Integer amp amp SIZEOF Values 3 GUICOLORCHOOSER
26. Man rufe das Programm install_patches auf womit auch implizit install_feat flow gestartet wird wobei vorher die unten definierten Umgebungs Variablen gesetzt werden m ssen 5 Bei der Konfiguration w hlt man die Architektur aus auf der FEATFLOWlaufen soll auf Intel Rechnern w re das also die Option b Intel x86 Linux EGCS 6 Performance libraries sollen nicht benutzt werden 7 AVS Modules sollen auch nicht benutzt werden 8 Auf die Frage Start installation gebe man y ein 9 Nach dem Kompilieren sollten alle weiteren Fragen mit no beantwortet werden A 2 2 Installation von DEVISOR Zum Installieren einfach das entsprechenden Installationsprogramm f r die benutzte Plattform ausf hren und den Anweisungen folgen Es werden alle Module inklusive des NEXUSservers installiert allerdings mu dieser noch f r das Zielsystem bersetzt werden A 2 3 Installation des Servers Der Server ist zusammen mit DEVISOR installiert worden Um ihn zu bersetzen und startbe reit zu machen gehe man in das unten definierte DEVISOR_SERVER Verzeichnis und gebe make ein Nun wird der Server bersetzt Die Datei modules conf mu an den entspre chenden Computer angepasst werden um die vorhandenen Module zur Verf gung zu stellen Anschlie end wird der Server mit nexus gestartet A 2 4 Einrichtung der DEVISOR Umgebung Um DEVISOR starten zu k nnen m ssen einige Umgebungsvariablen gesetzt sein DEVISOR Das Verzeichnis i
27. Modukyp Name des Moduls Beschrekung SON No nama No moduk Of this npa valabio GRO No nama No modula of thi ngpa walabie NUMERICS No narnia No moduk of this type walabie ETE No nanma No moduk of thi npa walabie ss bas nun Min me A Mit Ma ee dd Ao Aus gew lies Model Name des Moduls Ex ist kain Mock ausgewar Beschreibung Keine Beschreibung x Schites Abbildung A 3 Serververwaltung Serverliste aktualisieren 113 ber Server gt Server aktualisieren wird die komplette Serverliste d h die Mo dullisten aller verwalteter Server aktualisiert 114 ANHANG A BENUTZERHANDBUCH A 4 5 Projektverwaltung Es k nnen Projekte neu angelegt geladen gespeichert und geschlossen werden Neues Projekt anlegen ber Datei gt Neues Projekt oder Projekt gt Neues Projekt kann ein neues Pro jekt angelegt werden Es erscheint der in Abb A 4 gezeigte Dialog In dem Dialog kann der F Neues Projekt New Project Project Name A New Project Project Directory path to my project Clone Project meU r gt OCG VA OK x Cancel Abbildung A 4 Neues Projekt anlegen Projektname und das Projektverzeichnis angegeben werden Nach erfolgreicher Beendigung des Dialogs OK Button dr cken erscheint im Hauptfenster ein neues Projektfenster und es wird ein neues Projektverzeichnis angelegt Projekt laden ber Datei gt ffne
28. Punkt 1 hat die Koordinaten 0 0 0 Nun importiert man eine obj Datei in der auch ein Punkt mit den gleichen Koordinaten wie Punkt 1 existiert Es wird kein neuer Punkt erzeugt sondern der Punkt 1 hat jetzt als Parent die Kante und ein BoundaryTriangulation Objekt Im Moment wird das Java3D Dateiformat eins zu eins interpretiert und in ein Boundary Tri angulation Objekt bersetzt Allerdings enth lt dieses Format einiges an Redundanz so da einige unerw nschte Dreiecke zus tzlich gezeichnet werden In der n chsten GRID Version wird dieses Manko beseitigt indem man die unerw nschten Dreiecke herausfiltert A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER149 A 5 4 Geometrien In diesem Unterkapitel wird auf den allgemeinen Aufbau und Funktion der verwendeten Geo metrien genauer eingegangen und beschrieben welche Geometrie Untergeometrie von welcher ist und in welchem Modus die Geometrien nur auftreten d rfen Grundlegende Elemente Node Knoten Die Knoten werden durch ihre Koordinaten dargestellt Es sind jeweils drei reelwertige gt Koordinaten x y und z In 2D Modus wird die dritte Koordinate ignoriert Zus tzlich hat ein Knoten eine ganzzahlige Knotennummer die f r alle Knoten der Do main eindeutig ist und mit deren Hilfe die Knoten z B in Dialogen referenziert werden k nnen Die Objekte basieren auf dem FEAST Format und f r das genauere Verst ndnis der Ele mente wird angerate
29. These data sets can be any type of integer data that can be used to select anode or cell for display purposes The names for the flags and for the flag types are placed in selection buttons in a menu The integer data must be a number between 1 and ntypes 1 to 128 The endsflag string ends the surface flag data Surfids The keyword surfids indicates that an optional list of alternate surface id numbers follows These alternate id numbers are used for display and reference purposes within GMV Enter nsurface integers Element groups The groups keyword is used to denote the beginning sets of arbitrary ele ments A group is a named set of nodes cells faces or surfaces Up to 1000 different groups per type are allowed and each group is named by the user The endgrp keyword is used to end group input Each group is defined by an eight character name the element type node cell face or surface the number of elements in the group and the list of element numbers Comments The comments keyword means that ascii comments follow The endcomm string ends the comments Be sure that there is a blank before and after endcomm Codename codever simdate The codename codever and simdate keywords allows the name and version of the code as well as the date the simulation generated the file to be added to the file for identification purposes These keywords can be placed before the nodes keyword D 2 3 Reading some GMV data from a different file Cer
30. Wenn man nun nicht mehr diese bersicht haben m chte so dr ckt man den Button Ok um diesen Dialog zu verlassen Dieser Men punkt entspricht dem Button Domain Overview in der Werkzeugleiste Main Das Problem bei den Domains ist da man sie in einem beliebigen Ma stab erstellen kann Damit man Domains vergleichen besser verarbeiten oder einfach im gleichen Ma stab hat existiert der Men eintrag Domain normalisieren Dieser verkleinert bzw vergr ert und ver schiebt die Domain so da sie genau in den Bereich 1 1 auf allen drei Koordinatenachsen pa t Zum Schlu kommt der Men eintrag Exit mit dem das Programm verlassen wird nicht ohne eine entsprechende Abfrage ob man die nicht gespeicherten Informationen verlieren m chte Der Men punkt Bearbeiten Unter diesem Men punkt befinden sich diverse Werkzeuge um mit Hilfe der Maus Objek te zu selektieren bewegen drehen kopieren l schen eingeben und zu ver ndern All diese Werkzeuge entsprechen den Werkzeugen in der Bearbeiten Toolbar Das Werkzeug Kopieren macht eine interne Kopie der ausgew hlten Elemente in dieser Ver sion k nnen es nur Knoten und Kanten sein Die Auswahl geschieht mit dem Werkzeug Aus w hlen welches weiter unten erkl rt wird Wenn nichts ausgew hlt ist so ist auch die Kopie leer Zun chst sieht man gar nichts von den Auswirkungen dieses Werkzeugs Wenn man aber nun das Werkzeug Einf gen mit der linken Maustaste anklickt so wird
31. cells 5 hex 8 123458 7 6 pyramid 5 9 5 6 7 8 prism 6 10 1 2 17 5 8 tet 4 T2 a2 30 general 10 8844444444 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 19 27 28 20 20 28 21 131321 22 14 14 2223 15 23 24 16 15 24 25 17 16 25 17 18 26 26 18 19 27 material 6 0 mat 1 mat2 mat 3 mat 4 mat5 mat 6 LZ 74 5 Codebeispiel 95 GMV sample input 1 D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 259 polygons 1 4 100 100 100 100 100 100 100 100 100 100 100 100 2 4 100 100 100 100 100 100 100 100 100 100 100 100 3 4 100 100 100 100 100 100 100 100 100 100 100 100 4 4 100 100 100 100 100 100 100 100 100 100 100 100 5 4 100 100 100 100 100 100 100 100 100 100 100 100 6 4 100 100 100 100 100 100 100 100 100 100 100 100 endpoly tracers 10 0 20 40 60 80 100 120 140 160 180 0 20 40 60 80 100 120 140 160 180 0 20 40 60 80 100 120 140 160 180 pressure 0 5 10 15 20 25 30 35 40 45 temp 45 40 35 30 25 20 15 10 5 0 density 0 5 10 15 20 25 30 35 40 45 endtrace traceids 2 4 10 12 15 18 20 21 22 23 velocity 0 0050 0 05 5 0 10 5 5 5 LO 1T0 variable pressure 0 0510 15 20 temp 0 0510 15 20 density 0 0 5 10 15 20 endvars flags flagtype 3 0 good bad ugly L 2 82 1 stufftype 3 0 bing bang boom 23 21 Codebeispiel 96 GMV sample input 2 D 3 Spezifikation des Netzwerkprotokolls D 3 1 Der Aufbau des P
32. che und jedem Element alle Nachbarschaftsbeziehungen mit in die Datei geschrieben Dies macht das Format selbst f r das Modul VISION interessant s Kap 3 6 Die ausf hrliche Spezifikation findet sich im Anhang s Kap D 1 2 5 4 Formate f r Simulationsergebnisse F r die bermittlung und Archivierung von Simulationsergebnissen gilt prinzipiell dasselbe wie f r Gitterformate Es gibt un berschaubar viele In der Projektgruppe wurde das GMV Format s Kap D 2 gew hlt weil es offen frei und bereits an FEATFLOW angebunden ist 52 KAPITEL 2 GRUNDLAGEN 2 6 Verwendete Programme und Hilfsmittel 2 6 1 Java und Java Erweiterungen Java 1 4 x Die in der Projektgruppe gr tenteils verwendete Programmiersprache ist Java s 41 in der Version 1 4 x Vorteile von Java sind e freie Verf gbarkeit e Objektorientierung e Verfiigbarkeit zahlreicher Erweiterungspakete bspw zur digitalen Bildsignalverarbei tung und e Netzwerkorientierung Fr her hatte Java einen prinzipiellen Nachteil Java Compiler erzeugten keine Bin rdateien sondern lediglich ein maschinenunabh ngiges Format das zur eigentlichen Ausf hrung noch interpretiert werden mu te Dies resultierte in Performanzeinbu en und einem relativ hohen Speicherbedarf zur Laufzeit Moderne Java Compiler kompilieren mittlerweile just in time d h die performanzhemmende Interpretation findet nicht mehr statt Ja
33. ckgegeben ParameterList myList new ParameterList il8n Liste von Farben f r Farbw hler EntryList myEntryList new EntryList il8n myEntryList addEntry new Entry Red 255 i18n myEntryList addEntry new Entry Green 255 i18n myEntryList addEntry new Entry Blue 255 il8n Farbw hler f r Quads VectorParameter quadParameter new VectorParameter 4001 Farbe von Quads OF false w hlen Sie bitte die Farbe in der Quad Objekt ingef rbt werden sollen ScalarParameter FORMAT_INTEGER myEntryList new ColorChooserDescription il8n il8n Zur R ckgabeliste myList addParameter quadParameter Hier folgen noch einige hnliche Farbw hler Ein Ausschalter f r Begrenzungen ScalarParameter showBoundaries new ScalarParameter 4005 Begrenzungen anzeigen BA false Bitte legen Sie fest ob Begrenzungen 4 angezeigt werden sollen ScalarParameter FORMAT_BOOLEAN true N A N A N A new CheckBoxDescription il8n 118n Zur R ckgabeliste myList addParameter showBoundaries r return myList Codebeispiel 21 Die getParameterList Methode eines Mappers B 1 EINBAU WEITERER VISUALISIERUNGSTECHNIKEN IN DAS VISION MODUL183 public ListOfErrors configure ParameterList aList ResourceBundle il8n ResourceBundle getBundle devisor net interim interimil8n
34. der hier nicht weiter dokumentiert wird Das neu geladene Objekt ist markiert so da man bequem die La ge Gr e und Position der Auswahl ver ndern oder leicht kopieren kann siehe Kapitel A 5 3 Mit dem Men eintrag Drucken kann die aktuelle Domain ausgedruckt werden Es erscheint ein systemeigener Druckdialog mit dem man die Druckeinstellungen vornehmen kann Dieser Dialog unterscheidet sich von System zu System und auch von Drucker zu Drucker Deswe gen kann die genaue Bedienung des Dialogs in der entsprechenden System Quelle nachgelesen werden Der Men eintrag Domain durchsuchen ist eine gute Hilfsfunktion um die Objekte und de ren Eigenschaften in einer berichtlichen Form zu betrachten Es ffnet sich ein Fenster mit der aus diversen Explorerfenstern bekannten Baumstruktur Hier gewinnt man Einblick in den hier archischen Aufbau der Domain die aus ElementNodes BoundaryNodes BoundaryNodes3D Edges Tris Quads Tetras Hexas und Boundaries besteht Die Elemente in der Liste die wei tere Elemente enthalten sind mit einem Ordnersymbol gekennzeichnet die anderen also Ele mente die keine Unterelemente haben werden als ein Blatt Papier gezeichnet dessen rechte obere Ecke umgeknickt ist Links von den Ordnersymbolen befindet sich jeweils eine umgedrehte Lupe Mit dem Klick der linken Maustaste darauf l t sich Einsicht in die inneren Elemente dieses Ordners gewinnen die wiederum Ordner sein k nnen So kann man
35. ohne den Dialog zu schlie en DELETE l scht den aktuell ausgew hlten Knoten und CANCEL verl t den Dialog ohne nderungen Dies ist eigentlich kein Dialog sondern das Bild mit einem Fortschrittsbalken das beim Starten des Programms erscheint Hier wurde er nur der Vollst ndigkeit halber angegeben 3 5 DAS MODUL GRID 85 Die Dialoge werden in devisor grid main GridMainFrame eingetragen und global aktuali siert In der Methode createDialogs werden sie erzeugt Die Methode update aktualisiert alle sichtbaren Dialoge auf alle Ver nderungen in der Domain Ansonsten werden die Dialoge als Listener an die Men s und Werkzeugbuttons angeh ngt Die genauere Beschreibung dieses Vorgangs steht in B 4 Das Paket devisor grid event enth lt alle Event Behandlungsroutinen die man bei der Eingabe von Elementen und bei diversen anderen Mouse Optionen braucht Sie sind genauso wie die Dialoge selbsterkl rend Es sind im einzelnen AddCircleListener MoveSelectionListener AddCubicleListener MoveViewListener AddCylinderListener NewProjectListener AddEdgeListener RotateSelectionListener AddNodeListener ScaleSelectionListener AddQuad Listener SelectBoxListener AddSegmentListListener ShowDialogListener AddSphereListener ShowHierarchyListener AddTriListener ShowPointOfInterestDialogListener DeleteSelectionListener TriangulateListener ExitListener ViewBoxDialogListener GridKeyListener ZoomFactor Listener Um d
36. r die Erzeugung einer Statistik n tig sind Hier bei handelt es sich zwar um ein VISION Paket es wird jedoch nur in CONTROL verwen det 3 4 4 Das Paket app In diesem Paket werden die Projekte Server und der Wrapper verwaltet womit hier die kom plette Anbindung an das NET Modul erfolgt Die Klasse Control ist die Hauptklasse dieses Pakets Sie verwaltet zum einen den ControlWrapper und berpr ft die inbox des Wrappers ob Statistiken Fehler oder Statusmeldungen enthalten sind und leitet diese an das entsprechen de Projektfenster weiter Desweiteren wird eine Serverliste verwaltet und Methoden zum Laden und Speichern der Serverliste zur Verf gung gestellt Die Serverliste wird in dem lokalen Ver zeichnis des Benutzers gespeichert In der Serverliste realisiert durch die Klasse ServerList werden alle Server verwaltet dazu geh rt Host Port Alias Serverbeschreibung Benutzerna me und eine Liste mit allen auf diesem Server verf gbaren Modulen Zum anderen wird hier eine Projektliste verwaltet die alle geladenen Projekte enth lt Die Klasse ProjectObjectList enth lt diese Liste in der Projekte neu angelegt gel scht geladen und gespeichert werden k nnen Die Klasse ProjectObject verwaltet ein Projekt und die dazugeh rigen Modullisten in denen alle Module eines Typs verwaltet werden Eine Modulliste wird verwaltet in der Klas se ModuleObjectList in der neue Module eingef gt und wieder gel scht werden k nnen In der Klasse M
37. r die erste Funktion ein Oberfl chennetz bestimmt Im zwei ten Schritt wird aus der zweiten Funktion ein Shaded Plot erstellt welcher als Textur ber das Oberfl chennetz der ersten Funktion gelegt wird Diese Kombination der beiden Funktionen ist dann das H henfeld wobei nat rlich f r beide Schritte dieselbe Funktion benutzt werden kann Techniken f r dreidimensionale Funktionen In diesem Fall wird eine dreidimensionale Funktion 1 2 3 f x x2 x3 an Punkten vorgegeben wobei diese h ufig die Punkte eines uniformen dreidimensionalen Gitters sind Voxelmodelle Ein Voxel volume element ist im Gegensatz zu einem Pixel picture element das einen Punkt in einer Ebene darstellt ein Volumenelement im dreidimensionalen Raum und kann auf zwei unterschiedliche Weisen definiert sein e als W rfel der einen Wert ber den gesamten Inhalt repr sentiert oder e als Eckpunkt dieses W rfels Werte der Punkte innerhalb des W rfels werden dann durch Interpolation bestimmt Voxelmodelle sind im Prinzip nichts anderes als dreidimensionale Rasterbilder und eignen sich so sehr gut zur Darstellung von Objekten deren Inhalt ebenfalls beschrieben sein soll Ein Vo xelmodell ist ein dreidimensionales Array das jedem Voxel einen Wert zuweist und damit be liebige Schnitte durch Objekte erm glicht was bei reinen Oberfl chenmodellen nicht m glich ist da diese ja im Inneren keine Informationen besitzen F r die Darstellung d
38. single particle osi single line of partic show fine grid and maximum scale valt visualization metha radius for a particle single particle position single line of particles q show fine grid and coar maximum scale value L visualization method amp i radius for a particle rad gt el 4 gt OZA gt AT Einstellungen I ok X Abbrec Abbildung A 57 Die Parameter f r Particle Tracing e single particle Erm glicht einzelne Partikel durch Koordinatenangabe in das Gebiet zu plazieren Die Eingabe der Koordinaten fiir Partikel ist immer in 3D Ist das zu visualisierende Gebiet ein 2D Gebiet wird die dritte Koordinate nicht beachtet e single line of particles Dieser Parameter erm glicht es eine Linie zu definieren auf welcher in quidistanten Abst nden Partikel gesetzt werden Um diese Linie zu definie ren sind zwei Punkte notwendig Diese werden wie bei den single Particle Parameter durch Koordinaten eingegeben Die Abst nde zwischen den Partikeln auf einer Linie werden parametrisch angegeben e show fine grid and coarse grid Hier kann man angeben ob man zus tzlich zum Grob gitter auch das Feingitter angezeigt werden soll e maximum scale value Dieser Wert gibt den maximalen Wert der Legende an Um idea le Visualisierungen zu erm glichen mu dieser Wert an die Ergebnisse angepa t sein Werden die Werte nicht abgestimmt kann es sein da das Intervall der Farb
39. und BECKER CH FEATFLOW Finite element software for the incompres sible Navier Stokes equations User Manual Universit t Dortmund 1999 VARIOUS Java allgemein Techn Ber Sun Microsystems http java sun com docs books tutorial 1996 VARIOUS Java3D Techn Ber Sun Microsystems http java sun com products java media 3D index html 1996
40. 2 2 Coon nen 77 3 5 Das Modul GRID 222 Comm nn 78 3 5 1 Funktionalit t des Moduls o oo 78 3 5 2 Kommunikation mit CONTROL ber das N ET Modul ee skew eens S 79 3 5 3 Das Paket Framework 2 22 2 Cm mn nn 79 3 5 4 Das Paket devisor grid 222 oo onen 83 3 6 Das Modul VISION 2 222 Co Con nenne 86 3 6 1 Funktionalit t des Moduls 2 22 Ko mE Inn 86 3 6 2 Kommunikation mit CONTROL ber das NET Modul 86 3 6 3 Die Schnittstelle zum Netz Modul 2 222 22 222222 86 3 6 4 WVisionControl 2222 2 Coon 86 3 6 5 Das VISIONGRID Paket 2 2 n nen 87 3 6 6 VisionViewer 22 2 Coon 87 3 6 7 VisionMovie 2 2222 Co oo onen 87 3 6 8 Die Visualisierungs Pipeline des Vision Moduls 88 3 6 9 Die an a re ee ee ee ee Be es 88 3 6 10 Filte osre 0 2 4 mn a a EER E ee ein 94 INHALTSVERZEICHNIS 3 6 11 Mappen 2 2 2 onen 3 6 12 Renderer 222er 4 Projektdurchf hrung 4 1 Zeitlicher Ablauf 2 2 2222 oo onen 4 1 1 Seminarphase 2 2 2 Con nee 4 1 2 Spezifikationsphase 2 2 2 Coon 4 1 3 _Implementierungsphase 2 nooo 4 2 Einteilung in Een be ee ee
41. 2 6 2 C nd Fortran e 6 aoe he dow Ke eB we ee We ee eed 54 2 6 3 Entwicklungswerkzeuge 2 2 2 ee ee ee 54 2 6 4 FEATFLOW und ST ee ae Pie re 55 3 Systembeschreibung 57 3 1 Allgemeine Beschreibung 2 2 2 on nn 57 3 1 1 Datenflu zwischen den Modulen 2 2 2 2 222 2 222220 58 3 1 2 Beispielszenario o oo 58 3 1 3 Erg nzungen ao i a a ea ne 61 3 1 4 Zustands berg nge innerhalb der Module 61 3 2 Das Modul NET 2 2 62 3 2 1 _Paketstruktur und Modulbeschreibung 63 3 2 2 Fehlermeldungen 222 2 CC mm onen 64 3 2 3 Die Protokollkapselung durch das Paket interim 2 64 3 2 4 Die Schnittstelle zu CONTROL 2 2 2 m Emm nn 66 3 2 5 Die Schnittstelle zu beliebigen anderen Modulen 69 3 2 6 Die Schnittstelle zuGRID 2 2 2 2 Eon nn 70 3 2 7 Die Schnittstelle zu VISION 22 2 2 EEE nn 70 3 3 Das Modul NEXUS 2 Co oo none 70 3 4 Das Modul CONTROL 2 2 22 CC om ne 72 3 4 1 Funktionalit t des Moduls 0 0 0 000004 0s 72 3 4 2 Kommunikation mit anderen Modulen 73 3 4 3 Paketstruktun 22 22 Co Coon 73 3 4 4 DasPaketapp 2 moon 74 3 45 DasPaketguil 222m ee ann nd 74 3 4 6 Das Paket properties 2 2 nn 75 3 4 7 Das PaketdynamicGui ooa aa en 75 3 4 8 Das Paket event onoo oo mn 77 3 4 9 Das Paket tl aussen a er ee ee eu nf 71 3 4 10 Das Paket stats 2 22
42. 3 Awi Beete Dome Cahe herve Me com bhaby ame Lofe eor hems den Setoran rt Abbildung A 51 3D Cubicle malen N iar tee Pesun prebi Dime bm Dee fewer eek trto De Blnla 4 Ceu lt i lt em elgi zre WE bin bb bin U van and tarsa Abbildung A 52 3D Sphere zeichnen ANHANG A BENUTZERHANDBUCH 158 N De U Feee hobe Dome ameh Omen femme af 58 a ae n gt Biona S Abbildung A 53 3D Rechenbereich mit Quads f llen N Dee tree E IS a z L LIE if ie Beori tom mn Le Aus Quads werden Hexas 1 Abbildung A 54 3D A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER159 N Dei tree Gee bebem Dome Amin Orke Tem fret eetos mr Llel Anian asg Abbildung A 55 3D Aus Quads werden Hexas 2 N Dei tree Gee bebem Dome ameh Qne fome re beete Dome Bang SR AA S m bergen w Abbildung A 56 3D Aus Quads werden Hexas 3 160 ANHANG A BENUTZERHANDBUCH A 6 VISION Die Visualisierung der Ergebnisse A 6 1 Einleitung Da VISION ein Teil des DEVISOR Pakets ist ist es m glich die Pipe vom Kontrollmodul aufzurufen und die Ergebnisse direkt zur weiteren Bearbeitung weiterzuvermitteln A 6 2 Die Komponenten der Pipe Filter CutlinesFilter Der CutlinesFilter ben t
43. A 5 im HTML Format enthalten ist Zus tzlich existiert das Verzeichnis devisor grid images in der Paketstruktur das die Icons welche in dem Programm verwendet werden enth lt Die Bilder die die Dialoge verwenden befinden sich meist in dem Paket welches den gew nschten Dialog enth lt 86 KAPITEL 3 SYSTEMBESCHREIBUNG 3 6 Das Modul VISION Das VISION Modul wird innerhalb des DEVISORProjekts zur Visualisierung der aufkommen den Daten ben tigt Um die Visualisierung einer gro en Anzahl verschiedener Simulationsty pen zu unterst tzen werden eine ganze Reihe unterschiedlicher Visualisierungstechniken an geboten 3 6 1 Funktionalit t des Moduls e Kommunikation mit den anderen Teilen ber VisionControl sichern Extraktion der Rohdaten aus dem ankommenden Stream in eine VisionDomain Daten struktur Verschiedene Filter anwenden und bereitstellen um die Datenstruktur zu bearbeiten die von CONTROL angeforderten Visualisierungstechniken mittels verschiedenster Map per darstellen und e das Rendern des so erstellten Szenegraphen 3 6 2 Kommunikation mit CONTROL ber das NET Modul Das Netzmodul ist f r die Kommunikation des VISION Moduls mit dem CONTROL Modul zu st ndig Dazu werden die von CONTROL gesendeten Protokollbefehle in Java Methodenaufrufe umgesetzt Diese Methoden werden ber den Visionwrapper vgl 3 6 3 zur Verf gung ge stellt 3 6 3 Die Schnittstelle zum Netz Modul Die Schnittstel
44. Art und Weise strukturiert sind beispielsweise durch Polygone oder Kreise etc 5 Unstrukturierte Gitter engl unstructured grids verwenden verschiedene Zelltypen in einem Gitter Definition eines Finiten Elements Die konkreten Finiten Elemente werden charakterisiert durch die Geometrie des Teilgebietes K s o die Anzahl die Lage und die Art der Vorgaben f r die Ansatzfunktionen Die unabh ngig vorgebbaren Informationen werden in Anlehnung an die Mechanik Freiheits grade genannt Der Einflu der einzelnen Freiheitsgrade wird durch entsprechende Formfunk tionen erfa t Als Beispiel f r den Zoo von Finiten Elementen soll an dieser Stelle ein einfaches lineares Viereckselement erl utert werden s Abbildung 2 8 Die Freiheitsgrade f r die Funktionswerte liegen in den Ecken In der Praxis sind bilineare Ansatzfunktionen gebr uchlich wichtig ist da sie in einer Ecke den Wert 1 annehmen und 2 2 MATHEMATISCHER HINTERGRUND 23 Abbildung 2 8 rechteckiges Finites Element in den anderen 0 F r ein Einheitsrechteck d h 0 1 k nnen die Ansatzfunktionen folgenderma en aussehen Aa ei n A3 EN A 1 n Die i te Funktion ist dabei im 7 ten Eckpunkt gleich Eins in den anderen Eckpunkten gleich Null und dazwischen hat sie einen linearen Verlauf Abbildung 2 9 zeigt exemplarisch zwei dieser Funktionen Abbildung 2 9 Darstellung von Ansatzfunk
45. B 4 EIN NEUES ELEMENT IN GRID ERSTELLEN 209 ge ndert werden Dies ist eine recht umfassende nderung die in mehreren Modulen durch gef hrt werden mu Hier wird beschrieben wie man die Format nderung in Grid und in den Interims Objekten durchf hrt Die andere Seite der Kommunikation also vor allem der Server NEXUS und das Numerikmodul bleiben au en vor Um sich mit dem FEAST Format vertraut zu machen empfiehlt sich das Studium der entspre chenden Passagen dieses Endberichts siehe Kap D 1 An der Stelle in der die Boundary3D Objekte definiert werden mu die folgende Sequenz zur Beschreibung einer Cone definiert werden Codebeispiel 63 4 Typ 5 Kegel 0 0 0 0 0 0 Fu punkt 5 0 Radius 540 5 0 50 Normalenvektor Fu punkt Zweiter Punkt Zro Lede Qed Mittelpunkt Codebeispiel 63 Erweiterungsvorschlag fiir ein neues 3D Boundary Objekt Cone Dieses neue Element mu auch noch in dem Parser Interim Objekt devisor net interim GridParameter eingetragen werden und zwar sowohl in die Methode feastToDomain als auch in domainToFeast Das sind die Methoden die Strings im FEAST Format in die Domain Datenstruktur umwandeln und umgekehrt Dort mu bei der 3D Be handlung bei den Boundaries genauso wie f r BoundaryCylinder verfahren werden B 4 2 Modifikation an der Domain Da es sich um ein Boundary Objekt handelt geh rt die neue Klasse in das Paket devisor framework foundation boundary und
46. Codebeispiel 12 f r eine kurze Variante 176 ANHANG B ERWEITERUNGSM GLICHKEITEN protected BranchGroup buildSceneGraph In dieser Methode geht die bersetzung der GMV und Gitter Daten in einen SzeneGra phen vgl Kap 2 1 2 vor sich Die Attribute myLogger und myDomain stehen auch hier zur Verf gung vgl B 1 1 B 1 EINBAU WEITERER VISUALISIERUNGSTECHNIKEN IN DAS VISION MODUL177 protected BranchGroup buildSceneGraph BranchGroup bg new BranchGroup getExtremes liefert einen Point2d mit x als Minimum und y als Maximum Point2d Extremes getExtremes kxRKKK AK VALUE NODES xxxxxxxx Enumeration nodeEnum myDomain getValueNodes elements PointArray ist eine Klasse aus javax media j3d PointArray myPointArray new PointArray myDomain getValueNodes size PointArray COORDINATES PointArray COLOR_3 int i 0 while nodeEnum hasMoreElements ValueNode node ValueNode nodeEnum nextElement Point3d myPoint new Point3d node getCoord Color3f myColor getNodeColor node getScalarValue Extremes myPointArray setCoordinate i myPoint myPointArray setColor i myColor it 1 Shape3D points new Shape3D myPointArray points setAppearance getStandardAppearance bg addChild points Hier folgen noch diverse Zeil
47. Comboboxen w hlen In der ersten Combobox werden die Aliase aller A 4 CONTROL DIE STEUERUNG DES SYSTEMS 117 Server aus der Serverliste angezeigt Nach Wahl eines Servers werden alle auf diesem Server verf gbaren Module in der zweiten Combobox angezeigt Nachdem eins dieser Module ge w hlt wurde kann die Konfiguration beginnen Die zweite M glichkeit ein Modul zu w hlen besteht darin die Serververwaltung zu benutzen ber den Button Edit wird die in Abb A 3 gezeigte Serverwaltung ge ffnet Der einzige Unterschied ist da statt eines Schlie en Buttons ein OK und ein Abbrechen Button eingeblendet werden Das gew hlte Modul kann so mit OK best tigt werden Sobald ein Modul gestartet wurde kann es nicht mehr ge ndert werden bis es gestoppt wird Modul starten stoppen Uber die Buttons Start und Stop indem Module Control Panel kann ein ausge w hltes Modul gestartet und wieder gestoppt werden Beim Stoppen eines Moduls wird dieses auf der Serverseite beendet In dem Feld XDisplay kann angegeben werden auf welchem Bildschirm das Modul laufen soll Modul konfigurieren Die Modulkonfiguration erfolgt in dem Panel Problem Configuration Die Konfigu ration eines Moduls ist nur m glich wenn ein Modul in der Modulauswahl ausgew hlt wor den ist und dieses sich entweder in einem gestarteten aber nicht laufenden Zustand oder im Pause Zustand befindet Dann
48. Die verf gbaren Fehlercodes sind in der Datei deverror h zu finden void dllm_return_feat_errcode_ int ival Codebeispiel 73 Riickmeldebefehl fiir FEAT Fehlercodes Diese Routine tibersetzt einen Fehlercode der Softwarebibliothek FEAT in den entsprechende DEVISOR Fehlercode und ruft dann dllm_listen_return_ auf void dllm_listen_link_ int timestep int ret int value int retint double retdouble Codebeispiel 74 Abfrageroutine Die Routine lauscht auf dem lokalen Port und gibt falls eine Nachricht vorliegt den Befehlsco de in ret zur ck mit den Parametern value retint und ret double Liegt keine Nach richt vor wird in ret der Wert LOCNOCMD zuriickgeliefet Das Programm sollte dann nichts machen bzw mit dem letzten Kommando weitermachen Die Routine erwartet in timestep die Nummer des aktuellen Zeitschrittes void dllm_link_exit_ Codebeispiel 75 Endebefehl Diese Routine schlie t die lokale Verbindung und sollte vor dem Beenden des Programms aufgerufen werden void dllm_link_wait_ Codebeispiel 76 Wartebefehl Diese Routine wartet eine Sekunde void dllm_open_stat_ int itime void dllm_close_stat_ Codebeispiel 77 Statistikbefehle Diese Routine ffnet bzw schlie t die zum Zeitschritt it ime geh rige Statistikdatei void dllm_put_stat_int_ int value void dlim_put_stat_double_ double value Cod
49. EQ LOCUTUS_STOP then print FEAT2DTEST stop goto 1 endif Codebeispiel 57 Beispiel FeatPoisson Hauptschleife Codebeispiel 57 implementiert die Funktion Stop call is_running isstart is_paused ispause call if ICMD EQ LOCUTUS_STEP or isstart eq 1 and ispause eq 0 THEN Codebeispiel 58 Beispiel FeatPoisson Hauptschleife wird der Status des Programms abgefragt Nur wenn das An dieser Stelle Codebeispiel 58 Step Kommando erfolgt ist oder wenn das Programm gestartet wurde und sich nicht im Pau semodus befindet wird ein Rechenschritt ausgef hrt B 3 EINBINDUNG ANDERER PROGRAMMPAKETE call lable result_avai CALL ZTIME TIME WRITE MPROT TIME PREPARATION TIME CALL XLL21 LF 1 NEO RBNORM EPS EPS RBNORM IF ISOLV EQ 1 CALL XIE017 LA 1 LCOLA LLDA LU LF 1 NEO NIT ITE EPS OMEGA 1000 IF ISOLV EQ 2 CALL XII017 LA 1 LCOLA LLDA LU LF 1 NEQ NIT ITE EPS OMEGA 1000 IF ISOLV EQ 3 CALL XIRO17 LA 1 LCOLA LLDA LU LF 1 NEO NIT ITE EPS OMEGA 1000 IF ISOLV EQ 4 CALL XIS017 LA 1 LCOLA LLDA LU LF 1
50. Ebenso wie jedes einzelne Element der VisionDomain eine Interpolationsmethode besitzt hat auch das Feingitter eine solche Methode Sie basiert auf folgender Idee Wenn ein Feingitter vorhanden ist soll der Wert der f r diese Zelle ermittelt wird m glichst aus nah beieinander liegenden Knoten interpoliert werden Wenn eine Grobgitterzelle gefunden wurde die einen gegebenen Punkt enth lt zu dem ein Wert interpoliert werden soll dann unterscheidet sich das Ergebnis das aus den Knoten der Grobgitterzelle berechnet wird m glicherweise stark von dem Ergebnis das aus den Knoten der Feingitterzelle berechnet wird 92 KAPITEL 3 SYSTEMBESCHREIBUNG Ein Testdurchlauf mit Debug Ausgabe belegt diesen Unterschied neu 0 6315087895788593 0 002490700615176221 alt 0 24942118554156428 0 31097942923820826 neu 0 2484128520181635 0 3074341664388298 alt 0 2484128520181635 0 3074341664388298 neu 0 2570267201596842 0 2939423851236014 alt 0 2570267201596842 0 2939423851236014 neu 0 25917263573803867 0 2657353241525613 alt 0 25917263573803867 0 2657353241525613 Wobei neu der interpolierte Wert eines Partikels in einer Feingitterzelle beschreibt und alt der Wert desselben Partikels ermittelt durch eine Grobgitterzelle 3 6 DAS MODUL VISION ef new edge wh correspondi public int g int
51. Farbe als Kombination aus Rot Gr n und Blau Wert im Bereich von 0 bis 255 e TetraColor Gibt an in welcher Farbe die Kanten deren Parent Element ein Tetra ist gezeichnet werden sollen Einstellbar ist diese Farbe als Kombination aus Rot Gr n und Blau Wert im Bereich von 0 bis 255 e TriColor Gibt an in welcher Farbe die Kanten deren Parent Element ein Tri ist gezeichnet wer den sollen Einstellbar ist diese Farbe als Kombination aus Rot Gr n und Blau Wert im Bereich von 0 bis 255 e Show Boundaries as a grid Gibt an ob die in der Domain enthaltenen Boundary Objekte als ein semi transparentes Gitter gezeichnet werden sollen oder nicht e Show Boundaries as a filled shape Gibt an ob Boundary Objekte als semi transparente Fl che gezeichnet werden soll e Boundary Transparency Gibt den Transparenz Wert fuer die Boundary Objekte an Giiltige Werte liegen im Be reich zwischen 0 nicht transparent und 1 vollst ndig transparent A 6 VISION DIE VISUALISIERUNG DER ERGEBNISSE 163 NullMapper Der NullMapper stellt die Domain nicht dar sondern liefert eine leere Domain zur ck an den Renderer Dieser Mapper hat somit keine Parameter ParticleTracingMapper Der ParticleTracingMapper bietet auf der obersten Ebene folgende Parameter als Einstellungsm glichkeiten an lt 2 gt Particle Trace Mapper PTM Beschreibung Interprets values as direction and strength c f a stream and traces the path of particles v ithin
52. Float x coordinates y nyv Float y coordinates z nzv Float z coordinates OR for a logically rectangular brick mesh nodes 2 nxv nyv nzv x nxv nyv nzv Float x coordinates y nxv nyv nzv Float y coordinates z nxv nyv nzv Float z coordinates nodev nnodes Node points and number of points Instead of nodes x 1 y 1 z 1 Float first x y and z coordinates x 2 y 2 z 2 Float second x y and zcoordinates x nnodes y nnodes z nnodes Float last x y and z coordinates D 2 SPEZIFIKATION DES GMV FORMATS 247 cells ncells Cell data and number of cells cell_type number of elements Cell data format depends on cell type vertex or face data See examples Allowable cell types Note cell types can be mixed except for vface3d and vface2d general nfaces General type number of faces in cell nverts nfaces Number of vertices per face vertex_ids sum nverts Integer list of node numbers that define the polygonal faces Note the general type can be used to define any cell volume line 2 Linear cell with 2 vertex ids verts 2 vertex ids tri3 Triangular cell with 3 vertex ids verts 3 vertex ids quad 4 Quadrilateral cell with 4 vertex ids verts 4 vertex ids tet 4 Tetrahedral cell with 4 vertex ids verts 4 vertex ids hex 8 hexahedral cell with 8 vertex ids verts 8 vertex ids phex8 8 hexahedral cell with 8 vertex ids Patran order verts 8 vertex ids phex20 20 hexahed
53. Koordinaten beziehen sich auf ein festes Bezugssystem d h der Beobachter sieht Teilchen durch ein festes Fenster an sich vorbeiziehen lagrangesche Koordinaten beziehen sich auf ein bewegtes Bezugssystem d h der Beobach ter sitzt direkt auf einer sich verbiegenden Metallplatte Man mu zwischen zwei verschiedenen Zeitableitungsbegriffen unterscheiden Die materielle Zeitableitung du dt bezeichnet die Anderungsrate eines sich bewegenden Fluidpartikels w h rend die lokale Zeitableitung Ou Ot die nderungsrate in einem festes Punkt angibt Mit Hilfe der Kettenregel ergibt sich der Zusammenhang du dt u t v Vu was aufintegriert ber ein Kontrollvolumen V das Reynoldsche Transporttheorem s Formel 2 5 liefert Die Grundgleichungen der klassischen Kontinuumsmechanik basieren auf dem physikali schen Grundprinzip der Erhaltung d h Zustandsgr en wie z B Massedichte p x t tota le Energie bzw Temperatur T x t Impuls p x t v x t u s w werden als Dichtefunktionen beschrieben deren Integrale ber beliebige bewegte Kontrollvolumen sich beim Fehlen von u eren Einfl ssen nicht ver ndern F r die zeitliche Ver nderung der Masse my t eines solchen mit dem Geschwindigkeitsfeld v bewegten Volumens V t mit der Oberfl che S t gilt sog Reynoldsches Transporttheorem dmy d 1 f Op x t I 0 x t dz dV v nds 2 5 t dt Ju er vo ot as Da dies f r beliebige Volumen V t gelten
54. Kurzbeschrei bung die einem Kennzeichner den vom Benutzer ausgew hlten Wert zuweisen Der Grund ist offensichtlich Auf dem Weg vom Modul zum CONTROL Modul wird beispielsweise f r jeden Parameter seine GUI Repr sentation bertragen Der Wert den der Benutzer eintr gt wird zu r ck an das Modul bertragen Hier ist selbstverst ndlich keine vollst ndige GUI Beschreibung mehr n tig und es kann Bandbreite gespart werden Die Methoden sind so implementiert da sie auf die gleichen Instanzen der Parameterklassen aufgerufen werden k nnen und nur die ge nderten Werte bzw Benutzerselektionen eintragen Weiter hat jeder Parameter eine Iden tifikationsnummer die nicht global aber lokal f r jedes Modul eindeutig sein m ssen F r bestimmte Situationen sind auch feste Kennzeichner vorgeschrieben Details sind der Proto kollspezifikation s Kap D 3 zu entnehmen Ein Beispiel Jedes Modul darf nur eine Instanz der Klasse DataSourceParameter verwenden sie hat die feste Nummer 2 Diese Klasse kon figuriert die Datenquelle f r das Modul also beispielsweise f r VISION von welchem Nume rikserver Rohdaten zur Visualisierung angefordert werden sollen Die Klasse Module stellt nicht nur eine Beschreibung der eigentlichen Modulfunktionalit t dar sondern beinhaltet zus tzlich Attribute zur Speicherung des Zielrechners des Ports der Socket der assoziierten Datenstr me und des assoziierten KeepAliveThreads s u Damit die Interimsobjekte
55. Module wird auf die nachfolgen den Handb cher verwiesen A 4 CONTROL Die Steuerung des Systems A 4 1 Einleitung Mit CONTROL ist es m glich komplette Simulationen durchzuf hren indem ber CONTROL alle f r eine Simulation ben tigten Module zentral gesteuert und konfiguriert werden k nnen Dazu werden alle f r eine Simulation ben tigten Module in Projekten verwaltet Die Module k nnen ber eine dynamische GUI konfiguriert und ber eine Kassettenrekorderfunktion ge steuert werden Es kann jederzeit die Verbindung zu einem Modul abgebrochen und zu einem sp teren Zeitpunkt wieder aufgenommen werden Zus tzlich ist es m glich bei den Modu A 4 CONTROL DIE STEUERUNG DES SYSTEMS 111 len vorliegende Ergebnissse zu downloaden und falls dies vom Modul unterstiitzt wird sich Statistiken tiber den Verlauf anzeigen zu lassen A 4 2 Installation Zum Installieren einfach das entsprechenden Installationsprogramm fiir die benutzte Plattform ausfiihren und den Anweisungen folgen Es werden alle Module inklusive des NEXUSservers installiert allerdings mu dieser noch fiir das Zielsystem bersetzt werden siehe Kapitel A 2 S 108 Voraussetzungen Als Voraussetzungen wird mindestens Java 2 SDK Version 1 4 1 ben tigt und eine Java 3D SDK Version 1 3 erwartet Linux und Unix Systeme Nach Abspeichern des Installationsprogramms eine Shell ffnen in das Verzeichnis des Instal lationsprogramms wechseln und mit sh instal
56. NUMERICS erstellt Dort mu man nun den Server ausw hlen das ist der vorher augew hlte Alias Server Neben dem Server w hlt man FeatPoisson als das Module aus Nun wird auch der Startknopf freigegeben auf den man dann klicken mu Das Module wird gestartet und meldet sich mit einem OK Module Started in dem unteren Textfenster Jetzt mu das Problem konfiguriert werden Dies geht mit dem nun freigeschalteten Button Typ Dieser ffnet das Konfigurations Fenster Nun soll man ein Problem ausw hlen 110 ANHANG A BENUTZERHANDBUCH Bei dem Modul FeatPoisson steht nur das Membranproblem zur Auswahl Wenn man nun auf Weiter klickt werden die Parameter die zur Konfiguration des Mem branproblems notwendig sind eingeblendet Man kann hier wieder auf Weiter klicken denn eine Gitterdatei wurde hier schon per Default angegeben oder man w hlt eine andere Gitter datei im FEAST Format unter dem GridParameter Domain laden Nun kommt die Modul Konfiguration Diese ist auch schon von vorne hinein richtig eingestellt so da man auf den Button Ende klicken kann Nun ist man wieder beim Ausgangs Fenster angelangt Hier kann man auf den Start Button klicken um die Simulation des Membranproblems zu starten Ein paar Schritte kann man das System rechnen lassen bevor man mit VISION die Visualisierung startet Den Vorgang kann man sehr gut in dem unteren Status Fenster beobachten Beim Start von VISION werden die Schritte bis zu der Problemkonfigurati
57. Partikel Verfolgung Nur f r Test zwecke ParticleTracing2DMapper Ein Mapper f r 2D Partikel Verfolgung Nur f r Testzwecke ParticleTracingMapper Der Partikel Verfolgungs Mapper des Vision Moduls Simuliert die Bewegung von Partikeln im Str mungsfeld der VisionDomain ShadedPlotMapper Interpretiert die Werte der VisionDomain als Farbwerte innerhalb des Gitters Sphere2DMapper Interpretiert die Werte der VisionDomain als Durchmesser Position und oder Farbe von Kreisen Sphere3DMapper Interpretiert die Werte der VisionDomain als Durchmesser Position und oder Farbe von Kugeln C 7 11 devisor vision pipe renderer I_Renderer Dieses Interface schreibt Methoden vor die von allen Renderer Implementierungen angeboten werden m ssen AbstractRenderer Eine Klasse die allgemeine Funktionalit ten eines Renderers wie das In itialisieren eines Canvas3D Objekts anbietet und als Grundlage f r weitere Rendere rimplementierungen dienen kann SimpleRenderer Der Standard Renderer des VIsSIONModuls Die vom Mapper erzeugte Sze ne wird mit zwei Lichtquellen versehen und so transformiert da sie vollst ndig sichtbar ist C 7 12 devisor vision stats StatChart Diese Klasse stellt ein einzelnes Diagramm im StatWindow dar StatConfigurationDialog Hier wird ein Konfigurations Dialog erzeugt StatManager Kapselt die komplette Funktionalit t des Statistik Moduls StatWindow Zeigt einen oder mehrere StatCharts an C 7 13 devisor v
58. S Turek und seinem Team an den Universit ten Heidelberg und Dort mund seit Anfang der 90er Jahre entwickelt 56 KAPITEL 2 GRUNDLAGEN Kapitel 3 Systembeschreibung berblick und die Module im Detail 3 1 Allgemeine Beschreibung Das von der Projektgruppe entworfene und implementierte System bietet eine Komplettl sung f r den Bereich der numerischen Str mungssimulation Bei der Spezifikation wurde besonders auf die Modularit t die Erweiterbarkeit und die Netzwerkf higkeit geachtet Der DEVISOR besteht aus den folgenden Komponenten CONTROL stellt die zentrale Konfigurations und Steuerungseinheit des Systems dar Alle anderen Module k nnen ber komfortable graphische Benutzerschnittstellen konfiguriert und gesteuert werden GRID ist ein Geometrie und Gittereditor f r zwei und dreidimensionale Probleme NET bietet f r jedes Modul eigene spezialisierte Netzwerkschnittstellen und sichert in Kom bination mit dem Server NEXUS die Kommunikation zwischen verschiedenen Instanzen der Module ber ein Computernetzwerk NEXUS ist der Server des gesamten Systems Er bietet die Anbindung an alle Module und ins besondere die Anbindung an die verwendeten Numerikpakete FEATFLOW und FEAST VISION ist das Postprocessing Werkzeug im DEVISOR System und bietet verschiedene Vi sualisierungstechniken f r Ergebnisdaten einer Simulation Die Serverkomponente NEXUS wurde in der Programmiersprache C implementiert alle an
59. Techn Ber TogetherJ 6 0 Jan 2002 www togethersoft com BRODLIE ET AL Scientific Visualization Springer Verlag Jan 1992 CEDERQUIST Version Management with CVS Cederqvist et al Jan 2003 http www cvshome org docs manual cvs html COMER D E Computer Networks and Internets Prentice Hall Jan 1999 COMSOL FEMLAB 2 3 Comsol Group Jan 2003 http www femlab com DARMOFAL und HAIMES An Analysis of 3 D Particle Path Integration Algorithms In AIAA Paper San Diego CA Jan 1995 htttp raphael mit edu pv3 pv3 html DEUFLHARD und BORNEMANN Numerische Mathematik II Integration gew hnlicher Differentialgleichungen de Gruyter Jan 1994 FLUENT Fluent 6 1 Fluent Inc Jan 2002 http www fluent com FOLEY J D VAN DAM A FEINER S und HUGHES Computer Graphics Principles and Practice 2nd Edition Addison Wesley Jan 1996 GNU Free Software Foundation The GNU General Public Licence GPL Techn Ber Free Software Foundation The GNU General Public Licence GPL Jan 1991 http www gnu org licenses Licenses html GPL GONZALEZ R C und WOODS R E Digital Image Processing Addison Wesley Jan 1992 299 300 LITERATURVERZEICHNIS 16 GROSSMANN CH und ROOS H G Numerik partieller Differentialgleichungen Teub ner 1994 2 Auflage 17 HAIRER NORSETT und WANNER Solving Ordinary Differential Equations I Bd I Nonstiff Pro
60. Teilchens befindet engl point location cell search Solange sich das Teilchen im Rechengebiet befindet wird zun chst die Geschwindigkeit des Teilchens an der aktuellen Position bestimmt engl interpolation da die Geschwindigkeitswerte nur an den Eck Knoten der Zelle bekannt sind dann mit Hilfe obiger Gleichung die neue Position des Teilchens berechnet engl integration und abschlie end die neue Zelle bestimmt in der das Teilchen sich nun befindet Darstellung Generell gilt Der Basisalgorithmus wird gleichzeitig auf eine gewisse Anzahl an Partikeln angewendet und die verschiedenen im folgenden erl uterten Visualisierungstechniken unter scheiden sich nur darin wie die resultierenden Informationen kombiniert werden Zur besseren Vergleichbarkeit werden die Techniken anhand desselben Simulationsdatensatzes illustriert um direkt die Unterschiede in den berechneten Bildern ohne Ablenkung durch unterschiedliche Geometrien zu verdeutlichen Dabei handelt es sich um einen oszillierenden Flugzeugfl gel in 2D Alle vier Bilder sind 23 entnommen F r station re Fl sse gibt es im wesentlichen eine Visualisierungtechnik F r jedes Partikel separat werden die Tangenten an das Geschwindigkeitsfeld die durch die Integration der Teil chen von einer Position zur n chsten approximiert werden als Liniensegmente gezeichnet In der Literatur findet sich dies als streamlines Bei instation ren Fl ssen wurden drei Techniken Oscil
61. Vektorfeldes in diesem Punkt dargestellt Zur Codierung der Ge schwindigkeit gibt es mehrere Ans tze e durch die L nge der Pfeile normiert auf eine Referenzgeschwindigkeit e durch die Farbe der Pfeile und die Angabe einer Farbtabelle oder e durch die Pfeildicke Gerade die erste Variante kann schnell zu un bersichtlichen Darstellungen f hren Um sich schnell einen berblick ber das Vektorfeld zu verschaffen sind Pfeilplots jedoch konkurrenz los effizient Die Implementierung erfordert lediglich einige grundlegende Kenntnisse aus der Linearen Algebra Die Partikelverfolgungs Technik engl particle tracing l t sich sehr elementar veranschauli chen Gegeben ist ein Flu der innerhalb eines bestimmten Gebietes ruhig vor sich hin flie t oder in der Umgebung von Hindernissen Turbulenzen entwickelt In diesen Flu werden kleine 2 4 WISSENSCHAFTLICHE VISUALISIERUNG VON SIMULATIONSDATEN 45 Markierungsbojen eingebracht Bei diesem Experiment interessiert die Position der Markie rungsbojen nach einer gewissen Zeit Statt Markierungsbojen werden auch Farbpartikel bunte Tinte oder hnliche Substanzen ver wendet Mit Hilfe dieser Visualisierung des Flusses sollen beispielsweise folgende Fragen be antwortet werden e Wann und auf welcher Bahn verl t die Boje den betrachteten Teil des Flusses e Wird die Geschwindigkeit der Boje irgendwann null e Bleibt die Boje in einem Strudel gefangen d h wiederholt sich ein Teil des P
62. Vorgang zus tzlich die SHIFT Taste fest Abbildung A 36 Eine Segmentliste auf der Zeichenfl che Die Segmentliste wird nicht explizit numeriert wohl aber ihre Segmente Die Segmente er halten zus tzlich zu den Kanten und Knotennummer eine spezielle Segmentnummer die die Nummer der Liste und die Nummer innerhalb der Segmentliste enth lt getrennt durch einen Dezimalpunkt z B ist das Segment mit der Nummer 1 1 das erste Segment innerhalb der Segmentliste 1 So k nnen sp ter unmissverst ndlich die sogenannten Boundary Nodes zuge wiesen werden Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Bearbeiten SegmentList hinzuf gen In 2D existiert ein weiteres Randbeschreibungselement der volle Kreis Um diese zu erstellen gibt es das Werkzeug Circles hinzuf gen Der Kreis wird anhand von zwei Punkten berechnet 142 ANHANG A BENUTZERHANDBUCH einmal der Mittelpunkt und einmal der Radius eingegeben durch einen zweiten Punkt von dem der Abstand zum ersten Punkt bestimmt wird Abbildung A 37 Ein Kreis auf der Zeichenfl che Wie bei allen Randbeschreibungen kann man auch beim Kreis festlegen ob er nun bei der Be trachtung vom Rest ausgeschlossen wird externe Betrachtung oder ob er in die Betrachtung eingeschlossen wird und de
63. also durch den Benutzer ber die GUI die Verarbeitung der Daten in der Pipeline starten pausieren und stoppen Au erdem wird hier auch das Erstellen von Bildern einer Visualisierung sowie die Filmerzeugung aus mehreren Bildern kontrolliert 3 6 5 Das VISIONGRID Paket Das VISIONGRID Paket dient zur Visualisierung eines Gebiets Die zur Verf gung gestellten Methoden werden von dem GRID Modul benutzt um neben den drei Konstruktions Ansichten auch eine projizierte Ansicht zur Verf gung zu stellen 3 6 6 VisionViewer Mittels des VisionViewers wird das berechnete Ergebnis der ausgew hlten Visualisierung dar gestellt Diese Visualisierung kann dann mit Hilfe der Maus rotiert skaliert und verschoben werden bevor diese Einstellungen als Grundlage f r die Erzeugung des endg ltigen JPEG Bildes benutzt werden Die gemachten Einstellungen dienen auch bei den n chsten Visualisie rungs Schritten als Grundlage falls dann auf eine Bildschirm Anzeige verzichtet wird Das JPEG Format wurde aus mehreren Gr nden gew hlt e Es genie t eine weite Verbreitung und wird nicht nur von professionellen Betriebssyste men im Allg genauso unterst tzt wie von allen Windows Varianten sondern auch von den meisten Open Source Betriebssystemen e Es erm glicht gute Bildqualit t bei geringem Platzverbrauch e Die berf hrung einer Reihe von JPEG Bildern in einen Film des Quicktime Formates vgl Kapitel 2 5 2 ist vergleichsweise einfach
64. an appropriate copyright notice 293 and a notice that there is no warranty or else saying that you provide a warranty and that users may redistribute the program under these conditions and telling the user how to view a copy of this License Exception if the Program itself is interactive but does not normally print such an announcement your work based on the Program is not required to print an announcement These requirements apply to the modified work as a whole If identifiable sections of that work are not derived from the Program and can be reasonably considered independent and separate works in themselves then this License and its terms do not apply to those sections when you distribute them as separate works But when you distribute the same sections as part of a whole which is a work based on the Program the distribution of the whole must be on the terms of this License whose permissions for other licensees extend to the entire whole and thus to each and every part regardless of who wrote it Thus it is not the intent of this section to claim rights or contest your rights to work written entirely by you rather the intent is to exercise the right to control the distribution of derivative or collective works based on the Program In addition mere aggregation of another work not based on the Program with the Pro gram or with a work based on the Program on a volume of a storage or distribution medium does not bring the ot
65. and all its terms and conditions for copying distributing or modifying the Program or works based on it Each time you redistribute the Program or any work based on the Program the recipient automatically receives a license from the original licensor to copy distribute or modify the Program subject to these terms and conditions You may not impose any further re strictions on the recipients exercise of the rights granted herein You are not responsible for enforcing compliance by third parties to this License If as aconsequence of a court judgment or allegation of patent infringement or for any other reason not limited to patent issues conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not excuse you from the conditions of this License If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obli gations then as a consequence you may not distribute the Program at all For example if a patent license would not permit royalty free redistribution of the Program by all those who receive copies directly or indirectly through you then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program If any portion of this section is held invalid or unenforceable under any particular cir cumstance the balance of the section is intended to apply
66. angeordnet Da das Objekt aus vielen Knoten besteht hat man an jedem Knoten eine oder mehrere Informa tionen die den Glyph aufspalten Hierf r ist es nicht angemessen alle Knoten mit Glyphs zu gestalten da das Objekt in den Hintergrund ger t bzw nicht erkennbar wird Au erdem wird der Verlauf der Glyphs durch ihre hohe Anzahl nicht mehr klar erkennbar da sie sich unter Umst nden verzweigen bzw berlagern In diesem Fall hat der Benutzer die M glichkeit die Anzahl der Glyphs einzugeben wobei die max Angabe die Anzahl der Knoten des Grobgitters ist Auf diese Weise waren vier Mapper n tig um das gew nschte Ergebnis zu realisieren e Arrow3DMapper F r die Darstellung der dreidimensionalen Pfeile e Arrow2DMapper F r die Darstellung der zweidimensionalen flachen Pfeile e Sphere3DMapper F r die Darstellung der Kugeln e Sphere2DMapper F r die Darstellung der Kreise Shaded Plot Mapper Dies ist der Mapper f r die Visualisierungstechnik Shaded Plot s Kap 2 4 3 Er interpoliert f r jeden darzustellenden Punkt zwischen den in der VisionDomain enthaltenen Knoten den dazugeh rigen Wert und ordnet ihm eine Farbe zu Es entsteht je nach Konfiguration eine Art Farb berlauf ber die Fl chen oder Kanten der den Werteverlauf ber der Domain widerspie gelt Um dies zu bewerkstelligen m ssen die 2D Daten der Domaindatenstruktur so aufbereitet wer den da diese in den Szenegraphen eingeh ngt werden k nnen Dabei wi
67. bietet auf der Basis einer dynamisch generierten graphischen Be dienungsoberfl che die M glichkeit mit beliebigen Modulen Kontakt aufzunehmen sie zu konfigurieren und ihre Berechnungen zu verfolgen beispielsweise mit Hilfe eines Statistikplotters e GRID soll sowohl im Zwei als auch im Dreidimensionalen die Generierung und das Edi tieren von Geometrie und Gitterbeschreibungen ebenfalls in einer graphischen Oberfl che bieten Rand bzw Geometriebeschreibungen sollen in Form von Polygonsegmen ten Oberfl chentriangulierungen und einfachen Grundk rpern m glich sein bzw aus CAD Programmen importierbar sein Rechengitter k nnen durch Dreiecke und Tetra eder sowie Vierecke und Hexaeder definiert werden 1 4 STRUKTUR DES BERICHTS 5 1 4 VISION bietet die folgenden Visualisierungstechniken s Kap 2 4 f r zwei und dreidi mensionale Datens tze Isolines Shaded plots Glyphs Particle traces Cutlines Cutplanes Zus tzlich stellt das Modul ein Interface zur Verf gung das eine dreidimensionale Geo metrie und Gitterbeschreibung in einem komfortabel zu navigierenden 3D Fenster bie tet insbesondere mit frei w hlbaren Betrachterpositionen NET stellt die Kommunikation der Module untereinander sicher und definiert dazu ein bertragungsprotokoll Da die Einarbeitung in die Numeriksoftware nicht explizit von den Teilnehmern gefor dert war implementiert einer der Betreuer den Hintergrundserver NEXUS
68. darin computational steering so einzusetzen da man die Lastverteilung eines Parallelsystem interaktiv berpr fen und ver ndern kann Eine computational steering Umgebung besteht aus drei Hauptkomponenten dem Benutzerin terface der Anwendung und der Komponente f r Kommunikation und Datentransfer zwischen dem Benutzerinterface und der Anwendung Diese Komponenten k nnen in getrennten Prozes sen ablaufen und damit auf verteilten Systemen implementiert werden oder sie k nnen vereint als einzelner Proze auf einer Maschine implementiert werden Die Anwendung selbst k nnte in verteilten Prozessen realisiert sein Au erdem ist der Proze des computational steering nicht auf eine Anwendung oder einen Benutzer beschr nkt Ver schiedene Benutzer k nnten eine oder mehrere Anwendungen in einem gemeinschaftlichen Steuerungsproze simultan manipulieren Die Umgebung mu die Anwendung berwachen und von dieser angeforderte Informatio nen entnehmen um sie dem Benutzer zu pr sentieren Die Art der Informationen kann sich durch den Umfang der computational steering Anwendung unterscheiden Bei der Modeller forschung ist der Benutzer haupts chlich an den Ein und Ausgabeparametern interessiert Das Experimentieren mit Algorithmen w rde es erfordern dem Benutzer die Programmstruk tur der Anwendung offenzulegen Um eine Optimierung der Leistung durchf hren zu k nnen mu der Benutzer ber die Konfiguration und den Fortschritt des Programms
69. data Keywords are still eight characters long Nodes The nodes keyword describes the beginning of cell node data points and the variable nnodes on this line are the number of nodes i e the length of the node data arrays that follow The next three lines are the three floating point arrays that represent the X Y and Z coordinates of the nodes The nodes keyword has three alternate forms The first is used to generate a structured regular brick mesh Entering 1 for the number of nodes signifies this alternate syntax After 1 on the same line are the dimensions of the mesh first the number of nodes along the X axis then the number along Y and the number along the Z axis The three lines that follow contain the X Y and Z coordinates of the nodes along each axis which will be used by GMV to generate the entire mesh Note because GMV uses this information to generate a large mesh of cells the number of cells specified with the cells keyword must be zero The second alternate syntax for the nodes keyword is used to generate a logically rectangular structured mesh Entering 2 for the number on nodes signifies this alternate syntax After 2 and on the same line are the dimensions of the mesh first the number of nodes along the X D 2 SPEZIFIKATION DES GMV FORMATS 253 axis then the number along Y and the number along the Z axis The three lines that follow contain the X Y and Z coordinates of the nodes for all nodes nx ny nz which wil
70. data types abo ve Cond Expr if condition cond holds insert expression Expr SIZEOF Name number of subblocks of same type in given block name Protocol structure HEADER Header Version CONSTSTRING DeViSoR INT majornum INT minornum UserName GOODSTRING id CONSTSTRING NONE ProjectID GOODSTRING id CONSTSTRING NONE Subtype CONSTSTRING CONTROL SERVER CONTROL GID CONTROL METIS CONTROL VISION VISION SERVER CONTROL GRID CONTROL NUMERICS MessageType CONSTSTRING REGULAR ERROR Locale LOCALESTRING locale End_Header Codebeispiel 97 Header protocol structure FOOTER Footer EVILSTRING infostring End_Footer Codebeispiel 98 Footer protocol structure 262 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN LOE ListOfErrors ErrorHeader Type CONSTSTRING CRITICAL NONCRITICAL Description EVILSTRING infostring End_ErrorHeader Error ID INT id Source GOODSTRING modulename InstanceHandle GOODSTRING handle essage EVILSTRING infostring End_Message na End_Error ErrorResult EVILSTRING infostring End_ErrorResult End_ListOfErrors Codebeispiel 99 ListOfErrors protocol structure EOCONTROL SEQ1 gt SEOSERVER SEQ2 SEQ
71. der Ansicht im aktiven Fenster ver ndern Zoom Stufe zur cksetzen stellt die Vergr erung auf den Standard Wert zur ck Reinzoo men bzw Rauszoomen vergr ern bzw verkleinern die gegenw rtige Ansicht Alles zeigen setzt die Zoomstufe so da die ganze Domain in das aktive Fenster pa t Die derzeitige Zoomstufe wird unten links im Fenster angezeigt Bei zu kleiner Zoomstufe wird das Gitter ausgeblendet ber Point of interest l t sich die Ebene setzen in der in den Fenstern Aufsicht Vorder ansicht und Seitenansicht gearbeitet wird Im Fenster Aufsicht wird die Ebene die Tiefe in der gearbeitet wird durch den Z Wert bestimmt sie l t sich ber den Z Wert bestimmen 146 ANHANG A BENUTZERHANDBUCH Entsprechendes gilt f r f r die Seitenansicht X und die Vorderansicht Y Im Expertenmodus dieses Dialogfensters lassen sich neben diesen Werten f r die Auf Vorder und Seitenansicht die beiden brigen Koordinaten setzen die bestimmen welcher Punkt in der Mitte des Fensters angezeigt wird Mit Anzeigebereich kann festgelegt werden welche Objekte der Domain angezeigt werden sollen Es lassen sich zwei Punkte jeweils gegeben durch ihre drei Koordinaten eingeben die einen achsenparallelen Raum aufspannen Alle Objekte die vollst ndig in diesem Raum liegen werden angezeigt Im Experten Modus l t sich der sichtbare Bereich f r jedes Fenster einzeln setzen Sichtbarkeit erm glicht es einzelne Boundaries au
72. der Domain ausgef hrt werden Dabei ist mit der Domain alles gemeint was an Gitterelementen erstellt worden ist Mit dem Men eintrag Neue Domain wird eine neue Domain erzeugt Die alte Domain wird gel scht falls nicht vorher gespeichert wurde A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER135 Der Men eintrag ffnen ffnet einen Standard Dateiauswahldialog Hier kann man bestim men welche Datei nun als Domain geladen werden soll Ge ffnet werden k nnen Dateien im FEAST Dateiformat die Dateinamen m ssen auf feast enden Dieser Men eintrag entspricht dem Button ffnen in der Werkzeugleiste Main Der Men eintrag Speichern ffnet einen Standard Dateiauswahldialog Hier kann man bestim men unter welchem Dateinamen und im welchen Format die Domain gespeichert werden soll Wie der Standard Speicherdialog aussieht und zu bedienen ist kann an den entsprechenden Stellen nachgelesen werden GRID speichert die Domain im FEAST Dateiformat Aus dem 2D Modus werden nur die 2D Objekte der Domain gespeichert und etwa Cubicles ignoriert die nur in 3D Modellen existie ren aus dem 3D Modus nur 3D Objekte hier werden etwa SegmentLists nicht gespeichert Mit dem Men eintrag Importieren lassen sich Objekte in die aktuelle Domain laden Dabei hat man die M glichkei au er den Standard FEAST Dateien auch Java ob j Dateien als Bounda ryTriangulation zu laden Wiederum erscheint ein Standard Dateiauswahldialog
73. die eigentliche Spezifikation Zuerst wurden im gro en Plenum Ideen gesammelt und es wurde sich auf Minimalziele geeinigt Schon fr h stand das modulare Konzept so da die Einteilung in Kleingruppen vorgenommen wurde Die detaillierte Spezi fikation wurde dann in diesen Kleingruppen vorgenommen wobei allerdings in regelm igen Abst nden Zwischenergebnisse im Plenum diskutiert wurden und die Spezifikation der Modul konnektivit t vorgenommen wurde Parallel zur Planung wurden auch bereits erste Prototypen definiert W hrend der Semesterferien fanden keine Aktivit ten statt 4 1 3 Implementierungsphase Zeitgleich mit Beginn des Sommersemesters wurde mit der Implementierung begonnen Schon bald stellte sich heraus da die Spezifikation in weiten Teilen nicht vollst ndig war Insbe sondere mu ten die Visualisierungspipeline und das Netzwerkprotokoll deutlich berarbeitet werden Nach Ende der sehr zeitaufwendigen Implementierung wurden die Module integriert und ge testet Die Integration ging sicher wegen der im zweiten Anlauf dann gut durchgef hrten Spezifikation recht problemlos voran Das offizielle Ende der Projektgruppenarbeit stellt dieser Endbericht dar 4 2 Einteilung in Kleingruppen W hrend der Planungsphase wurde die folgende Einteilung in Kleingruppen beschlossen Name Modul Hendrik Becker VISION Christian Engels VISION Markus Glatter VISION Dominik G ddeke NE
74. diese Extras nicht zur eigentlichen Visualisierungs Pipeline geh ren sondern benutzt werden wenn die Pipeline ihre Arbeit abgeschlossen hat Es handelt sich dabei um den SnapshotTaker der f r die JPEG Generierung der Ergebnisse zust ndig ist und um den MovieMaker der aus den gesammelten Ergebnis Bildern einen Film generiert Der Extras Abschnitt ist nicht zur Erweiterung vorgesehen und sollte nicht ver ndert werden Der Grund warum er sich trotzdem in dieser Datei befindet liegt darin da auch diese Extras konfiguriert werden k nnen und Parameterlisten zur Verf gung stellen K nnten Um unseren neuen Filter hinzuzuf gen brauchen man nichts zu tun weil es schon einen Ein trag f r einen Filter mit dem Klassen Namen devisor vision pipe filter IdentityFilter gibt Ansonsten m ssten nur drei Zeilen eingef gt werden beginnend mit lt filter gt und endend mit lt filter gt Dazwischen k me dann der Eintrag lt classname gt voll qualifizierter Klassen 174 ANHANG B ERWEITERUNGSM GLICHKEITEN name lt classname gt Bei all dem sind die Einr ckung wie auch der Zeilenumbruch irrelevant es dient aber der Lesbarkeit wenn der Stil der Datei eingehalten wird Die Internationalisierung Um in den GUI Elementen des CONTROL Moduls den Namen und einige Beschreibungen unseres neuen Filters anzeigen zu k nnen mu zumindest noch die Datei FindConfigurables i18n properties im Paket devisor vision util bearbeitet werden Hier befinden sich
75. dreimal so teuer wie der Thomas Algorithmus Allerdings liegt die Ausf hrungszeit auf einem Vektorrechner deutlich darunter Zun chst wird angenommen ein idealer Vektorrechner mit einer Vektorl nge von n existiere In diesem Fall belaufen sich die Kosten auf eine Skalar Vektor Multiplikation und zwei Vektor Vektor Multiplikationen zur Aufstellung der Hilfsvektoren auf weitere 6 Vektor Vektor Multi plikationen und 4 Vektor Vektor Additionen im Reduktionsschritt und noch mal drei Vektor Vektor Multiplikationen und zwei Vektor Vektor Additionen beim R ckw rtseinsetzen insgesamt also Kosten von 18 Vektoroperationen Falls wieder n 2 gilt so erfordert die L sung des Tridiagonalsystems durch zyklische Reduktion nur noch 18gq statt 18n Operationen bzw da q logy n asymptotisch logarithmische Kosten In realistischen Szenarien kommt noch ein logarithmischer Faktor f r die Kombination einzeln gel ster Teilsysteme hinzu Dieses Beispiel hat gezeigt da die Vektorisierung hochgradig nichttrivial ist und bewirken kann da ein Programm nach der Anpassung auf anderen Architekturen deutlich an Perfor manz einb t 2 3 3 Parallelarchitekturen Nach diesem ausf hrlichen Exkurs in die Welt der Vektorrechner werden im folgenden einige Details bei der Implementierung auf parallelen Rechnern angedeutet Steht eine schnelle Verbindung zwischen den Knoten zur Verf gung k nnen Algorithmen ent worfen we
76. edgeNumber int type quant int quan switch case Vis qua brea case Vis qua brea case Vis qua brea case Vis qua brea if myDo This methods computes th next fr number for a ich can then be added to the ng vector tNextFreeEdgeNumber 1 myDomain getType ity of new elements per cell tityOfRefinedElements 0 type ionDomain ELEMENT_TYPE_HEXA ntityOfRefinedElements 8 k ionDomain ELEMENT_TYPE_QUAD ntityOfRefinedElements 4 k ionDomain ELEMENT_TYPE_TRI ntityOfRefinedElements 3 k ionDomain ELEMENT_TYPE_TETRA ntityOfRefinedElements 4 k main getVisionEdges size 0 edgeNumber VisionEdge myDomain getVisionEdges lastElement getNumber dgeNumber edgeNumber getNumber int Math pow quantityOfRefined refinementLevel 1 if visionEdges size 0 edgeNumber VisionEdge visionEdges lastElement return edgeNumber Elements getNumber 1 Codebeispiel 6 Ermittlung neuer Elementnummern 93 Auf den folgenden zwei Bildern sind die Wege von Partikel zu erkennen die mittels eines Feingitters ermittelt wurden und Wege die ausschlie lich mittels eines Grobgitters ermittelt wurden Auch hier ist erkennbar da die Werte und dadurch auch die Wege de
77. ein Shaded Plot berechnet werden Der Isolinienfilter Dies ist ein Filter f r die Visualisierungstechnik Isolinien s Kap 2 4 3 Dieser Filter erstellt eine neue Domain in der Punkte mit gleichen Werte zu einem Linienzug verbunden werden Die entsprechenden Isowerte zur Ermittlung der Isolinien k nnen beliebig eingestellt werden Abbildung 3 5 Beispiel f r Isolinien Der Surface3D Filter Dieser Filter erm glicht es Knoten aus 2D Daten entsprechend der Gr e ihrer Werte in ei ner dreidimensionalen Form darzustellen Es wird dazu eine neue Domain mit Z Koordinaten erzeugt die aus den skalaren Werten der entsprechenden Knoten und einem Skalierungsfaktor gewonnen werden Der Skalierungsfaktor dient hierbei zur Verbesserung der Darstellung um die entstehende Domain weder zu verzerrt noch zu glatt darstellen zu k nnen 3 6 11 Mapper Domain Mapper Der Domain Mapper stellt eine Ausnahme unter den Visualisierungstechniken dar da ihm im strengen Sinne keine wissenschaftliche Visualisierungstechnik zugrunde liegt Er beschr nkt sich auf die Darstellung der jeweiligen Domain und seiner Elemente also im wesentlichen auf das Grobgitter Dabei stellt er standardm ig die Elemente mit bestimmten Farben dar e Tri Elemente durch blaue Kanten e Quad Elemente durch rote Kanten 96 KAPITEL 3 SYSTEMBESCHREIBUNG e Tetra Elemente durch gr ne Kanten und e Quad Elemente durch rote Kanten Des weiteren biet
78. einige Vorteile gegen ber den Oberfl chenrekonstruktionsverfah ren da zum Beispiel durchscheinende Objekte nicht pl tzlich solide werden oder extra be handelt werden m ssen Stattdessen werden zun chst jedem m glichen Voxeltyp ber Klassi fikationstabellen ein Farb und ein Transparenzwert zugewiesen Dann wird das Voxelmodell entlang eines Sichtstrahles auf eine Ebene projiziert wobei die Farb und Transparenzwerte der einzelnen Voxel zu einem Pixel in der Sichtebene kombiniert werden Um die Werte der Voxel die ein Sichtstrahl entlangwandert zu kombinieren gibt es verschiedene M glichkeiten welche zu unterschiedlichen Ergebnissen f hren e Maximalwertverfahren Der Wert des Pixels wird durch den Maximalwert bestimmt auf den der Strahl beim Durchwandern des Volumens trifft Diese Methode wird z B zum 44 KAPITEL 2 GRUNDLAGEN Erstellen von Magnetresonanz Angiogrammen engl magnetic resonance angiogram in der Medizintechnik benutzt e Durchschnittsverfahren Der Wert des Pixels wird durch den Durchschnitt aller Voxel werte bestimmt die der Sichtstrahl trifft Dadurch wird im Allgemeinen eine Art R nt genbild des Volumens erzeugt e Additionsverfahren Beim Additionsverfahren werden einfach die Transparenzwerte der Voxel addiert w hrend die Farbwerte meist gemischt werden um den Pixel zu be stimmen Diese Methode wird angewendet um durchscheinende Bereiche ber undurch sichtigem Material sichtbar zu machen
79. englisch sprachigen Beschreibungen der Pakete Die Eintr ge f r die Pipeline Komponenten befinden sich am Ende der Datei und obwohl es egal ist an welcher Stelle die neuen Eintr ge erfol gen kann es der Wartbarkeit des Programmpaketes zugute kommen wenn die Eintr ge an den offensichtlichen Stellen erfolgen d h dort wo auch die Eintr ge f r die anderen Filter sind Die Eintr ge f r den Filter sind auch hier wieder vorhanden und an ihnen kann gut erkannt werden welche Zeilen f r Pipeline Komponenten im Allgemeinen notwendig sind IdentityFilter name Identity Filter IdentityFilter shortname IF IdentityFilter description This filters nothing away Der Teil vor dem Gleichheitszeichen ist unschwer als Name der Klasse die die Pipeline Komponente enth lt zu erkennen gefolgt von einem Punkt und einem der drei Schl sselw r ter name shortname oder description F r jede Pipeline Komponente mu hier jedes der drei Schl sselw rter genau einmal vorkommen Der Teil nach dem Gleichheitszeichen definiert den Inhalt des entsprechenden Schl sselwortes f r diese Komponente Das Schl sselwort name bekommt den englischen Namen dieser Klasse shortname bekommt eine Abk rzung dieses Namens und description enth lt eine Beschreibung der Pipeline Kom ponente ACHTUNG Die Eintr ge d rfen nur eine einzige Zeile einnehmen die aber beliebig lang sein darf Wenn Zeilenumbr che z B in der Beschreibung gew nscht werden so
80. er age Se a A Benutzerhandbuch A l Ben tigte Pakete s a sa vasea sag eet ka as eea i d ea ia A 2 Installation s is oo oo ven A 2 1 Installation des Numerikpakets FEATFLOW 2 222220 A 2 2 Installation von DEVISOR 000 A 2 3 Installation des Servers 2 22 oo on a A 2 4 Einrichtung der DEVISOR Umgebung A 3 Schnellstart Simulation des Membranproblems A 4 CONTROL Die Steuerung des Systems de dis ee wastes dir ale ee Gee Go N A41 Einleit ngj 4 244 Ge wa as ae ee ER Eee ee we A42 Installation s occi sonu oo ee A 4 3 Allgemeine Beschreibung 2222 A 4 4 Serververwaltung log dis dod Ab de ota bo gaa ee Sd a A 4 5 Projektverwaltung NS Re Ge HE HL Se we ee A 4 6 Steuerung eines Moduls 2 a A 4 7 Konfiguration eines Moduls 2 2 A 5 GRID Ein Gittereditor f r zwei und dreidimensionale Gitter A Syl Einleit ng weg 34 45 208 3 Br a ee ae as eat A 5 2 Installation 2 oo e nern A 5 3 Die Komponenten des Editors 2 22222 A34 Geometrien u zu Sa eR Re Ea ee a A 5 5 _Ein2D Beispielproblem 222 A 5 6 Ein 3D Beispielproblem o oaoa A 6 VISION Die Visualisierung der Ergebnisse 2222200 A 6 1 Einleitung asus A 6 2 Die Komponenten der Pipe 2 2 Cm nme B Erweiterungsm glichkeiten B 1 Einbau weiterer Visualisierungstechniken in das VISION Modul
81. erfolgt die Konfiguration des Moduls ber die dynamische GUI Falls ein Modul zum ersten Mal konfiguriert wird mu ber den Button Gesamt das Mo dul einmal komplett konfiguriert werden Nach erstmaliger Konfiguration kann zus tzlich der Problem Button verwendet werden um das ausgew hlte Problem zu konfigurieren ohne dieses neu ausw hlen zu m ssen Eine genauere Beschreibung der dynamischen GUI erfolgt in Kap A 4 7 Der Kassettenrekorder Nachdem ein Modul gestartet und mindestens einmal konfiguriert wurde steht die Kassetten rekorderfunktion in dem Operation Control Panel zur Verf gung Hierbei wird der Start Button von jedem Modul unterst tzt um das Modul zum Laufen zu bringen alle anderen Funktionen sind hingegen optional und werden vom Modul festgelegt Hier eine Auf listung der Funktionen 118 ANHANG A BENUTZERHANDBUCH Start Das Modul l uft nun auf dem Server Falls Pause unterst tzt wird wechstelt Start in Pause ansonsten wird der Button deaktiviert Bei einem VISION oder GRID Modul z B wird bei Start das Mo dul gestartet bei einem Numerikmodul startet die Berechnung Stop Bei einem Numerikmodul beispielsweise wird eine laufende Berech nung gestoppt Forward Falls dies vom Modul unterst tzt wird kann z B in einem Numerikmo dul ein Zeitschritt weiter gegangen werden Rewind Falls dies vom Modul unterst tzt wird Kann z B beim Nume
82. erneuten Versendung f hren und gew hrleistet die korrekte Reihenfolge ankommender Pakete unabh ngig vom Weg den sie durch das Netzwerk nehmen Sockets Sockets sind die Ein und Ausgabestellen eines Rechnerverbunds und zwar auf Programm ebene nicht auf Hardwareebene Jedes Programm kann u U viele Sockets an eine bestimmte Internetadresse binden und danach Nachrichten mit dieser Gegenstelle austauschen Prozesse und Threads Ein Programm ist zun chst statisch Sobald es gestartet wird geh ren neben dem auszuf hren den Code noch Speicherbereiche in dem Werte abgelegt werden k nnen ein Stack usw zur Laufzeitversion des Programms Einen solchen Verbund bezeichnet man als Proze Ver schiedene gleichzeitig ablaufende Instanzen eines Programms sind verschiedene Prozesse Soll innerhalb eines Prozesses zus tzliche Nebenl ufigkeit erreicht werden um z B nicht blockierend auf ein Lesen aus einer Socket zu warten sind Threads leichtgewichtige Prozes se n tig Computer mit mehreren Prozessoren ordnen typischerweise verschiedenen Prozes sen verschiedene Prozessoren zu bei Einprozessorsystemen wie handels blichen PCs werden verschiedene Prozesse bzw Threads in Zeitscheiben eingeteilt und teilen sich h ufig konkur rierend die CPU F r ausf hrlichere Informationen ber Rechnernetzwerke und Betriebssysteme wird auf die Lehrb cher 34 8 36 verwiesen 2 1 2 Computergrafik Affine Transfor
83. erzeugt 12 Da der Editor noch keine Undo Funktion unterst tzt sicherheitshalber speichern 13 Einen Sphere mit Mittelpunkt 0 0 0 und Radius 2 anlegen Dazu e entweder das Maus Werkzeug Sphere e oder den Sphere Dialog w hlen 14 Jetztmu der Rechenbereich mit Hexas gef llt werden Dazu werden ebenenweise Quads definiert die anschlie end zu Hexas erg nzt werden 156 ANHANG A BENUTZERHANDBUCH N Dee tree Seer behi Deme bme Drees fewer item De N Tamm 120m as Abbildung A 50 3D Anzeigebereich vorbereiten Nacheinander die Ebenen Z 4 Z 2 Z 2 und Z 4 ausw hlen Damit in den Ebenen stets neue Punkte angelegt werden und die Eckpunkte der Quads nicht aus den bereits bestehenden Punkten in anderen Ebenen gew hlt werden die Umschalttaste beim Zusammenklicken der Quads gedr ckt halten Bei Bedarf kann auch der Anzeigebereich auf die jeweilige Ebene eingeschr nkt werden Damit die Quads Hexas bilden k nnen mu bestimmt werden wie sie zueinan der liegen Das passiert mit Edges F r die ersten Edges in der Seitenansicht die X Ebene auf 2 einstellen und die Eckpunkte der Quads die einen Hexa bilden werden miteinander verbinden Das gleiche f r die Ebene X 2 Anschlie end im Hexa Dialog die Hexas aus den passenden Quads und Edges zu sammensetzen A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER157 N beter tee Gree Erwin Caterer feet Dees fewer
84. gung stehen 3 4 7 Das Paket dynamicGui Dieses Paket enth lt die dynamische GUI mit der es m glich ist ein Modul zu konfigurieren Die Konfiguration eines Moduls besteht in der Regel aus drei Schritten 1 Mit der Methode getProblemList des ControlWrapper wird die Problemliste des Mo duls geholt Aus diese Liste von Problemen mu ein Problem ausgew hlt werden 2 F r das ausgew hlte Problem wird mit der Methode getParameterList vom Control Wrapper die Parameterliste geholt Diese kann dann konfiguriert werden 3 Schlie lich wird mit der Methode getConfigurationList vom ControlWrapper eine Parameterliste f r die problemunabh ngige Konfiguration geholt 4 Nach Beendigung der Konfiguration wird mit der Methode configureModule des Con trolWrapper das Modul konfiguriert Die Klasse JModuleConfigurationDialog ist die Hauptklasse der dynamischen GUI und er zeugt einen Dialog mit dem die Durchf hrung eines kompletten Konfigurationsdurchlaufs m glich ist Analog z B zu einem Installationsdialog wird hier die Konfiguration in mehreren Schritten durchgef hrt Je nachdem bei welchem Schritt man sich gerade befindet wird das jeweilige Panel f r den aktuellen Schritt gezeigt Dabei kann man immer vor und zur ck gehen und erst nach einem kompletten Durchlauf kann die Konfiguration abgeschlossen werden Im ersten Schritt wird die Problemliste geholt und alle darin enthaltenen Probleme in einer Tabelle aufgelistet Dies geschieht in
85. in die Auswahl aufgenommen werden sollen Damit werden auch deren Knoten ausgew hlt Wenn man Objekte wieder entfernen m chte dr ckt man die Shift Taste und klickt mit der linken Maustaste auf Objekte die nicht mehr ausgew hlt werden sollen Diese sind damit nicht mehr ausgew hlt Man kann direkt die Objekte bearbeiten wenn mann auf diese doppelklickt Zun chst erscheint ein kleines Popup Fenster neben dem Mauszeiger Dieses enth lt alle Elemente die sich unter dem Mauszeiger befinden Es k nnen mehrere Objekte in 3D hintereinanderliegen so da es nicht klar ist welches der Benutzer meint Au erdem auch wenn man nur auf einen einzigen Knoten klickt m chte man evtl die von ihm abh ngige Kante oder das von der Kante abh ngi ge Tetra Objekt bearbeiten Man sucht sich das Objekt welches man wirklich meint aus und es ffnet sich ein dem Objekt entsprechendes Editorfenster siehe unten in dem man genaue Einstellungen bez glich des ausgew hlten Objekts vornehmen kann Wenn man die gesamte Auswahl aufheben m chte so versucht man am Besten einen freien Bereich des Arbeitsfensters auszuw hlen Wenn man Objekte selektiert hat hat man eine ganze Reihe von m glichen Operationen die man auf diese Auswahl anwenden kann man kann sie verschieben drehen skalieren kopieren und l schen Zum Verschieben existiert der Men eintrag Auswahl verschieben direkt unter Ausw hlen Bevor man diese Funktion nutzen kann m ssen Elemente aus
86. informiert sein Zum Beispiel mu bei parallelen oder verteilten Systemen die Verteilung der Anwendung auf die verschiedenen Prozessoren oder Plattformen bekannt sein sowie die Netz und Prozessor last Um Steuerungsaktionen starten zu k nnen mu die Umgebung Zugang zu den Eingabe parametern der Anwendung dem ausf hrenden Code oder der Konfiguration der Anwendung haben Der Zugang zu den berwachten Informationen und den Steuerungselementen kann asynchron oder synchron zur Anwendung ablaufen Zum Beispiel k nnten die Daten der An wendung nicht immer g ltig und einige Eingabeparameter w hrend einer Berechnung nicht ver nderbar sein Da computational steering ein in hohem Ma e interaktiver Proze ist bekommt das Benut zerinterface eine entscheidende Bedeutung in der computational steering Umgebung Das Be nutzerinterface hat zwei Aufgaben Zuerst mu die aus der Anwendung gewonnene Informa tion dem Benutzer pr sentiert werden Idealerweise geschieht dies durch die Visualisierung wobei dies auch durch eine einfache Textanzeige geschehen kann Die zweite Aufgabe des Benutzerinterfaces ist es dem Benutzer die Manipulation der Steuerungselemente f r die An wendung zu erm glichen Diese Manipulationen k nnen durch Textfelder die Benutzung von einfachen graphischen Interaktionsobjekten wie Schiebereglern oder Kn pfen mittels direk ter Manipulation in der Visualisierung oder durch komplexe 3D Eingabe Interaktionsobjekte geschehe
87. k nnen und an andere Module weitergegeben werden Dazu kapselt sie Informationen die sie eindeutig einer Quelle zuordnen lassen sowie eine Liste in Form einer ListOfErrors siehe Kap C 5 3 von Fehlermeldungen Diese Klasse kann komplett ber ihren Konstruktor verwendet werden C 5 2 devisor net wrappers Dieses Paket beinhaltet die zentralen Schnittstellen zwischen Modulen und dem Netzwerk ControlWrapper Diese Klasse stellt f r jeden Protokollbefehl s Kap D 3 eine Methode zur Verf gung die eben diese Protokollsequenz mit dem CONTROL Modul als Sen der durchf hrt Au erdem wird eine Art Posteingang angeboten in dem Huckepack Nachrichten s Kap 3 2 4 abgelegt werden ModuleLock Diese Klasse implementiert einen einfachen lock Mechanismus und macht so den ControlWrapper threadsafe NotificationQueue Diese Klasse kapselt eben diesen Posteingang in Form einer FIFO War teschlange Es k nnen Objekte vom Typ Statistics und ListOfErrors s Kap C 5 3 eingef gt werden Sie ist f r den single consumer multiple producers Einsatz synchro nisiert KeepAliveThread Diese Klasse kapselt ein ping Signal f r bestehende Verbindungen Zu s tzlich zur einfachen ping Antwort k nnen als Antwort Objekte vom Typ Statistics und ListOfErrors s Kap C 5 3 empfangen werden AbstractModuleWrapper Dies ist die abstrakte Superklasse aller Modulwrapper mit Aus nahme des CONTROL Moduls An
88. kz h v p 5k2 tk 5 kg v p kg ty h 1 pet p g et 2k 2k3 k4 Dieses Verfahren konvergiert f r A 0 wie O h gegen die L sung d h man gewinnt pro Schritt mehrere Stellen Genauigkeit 2 5 Verwendete Datenformate 2 5 1 Bilddateiformate Im Bereich der Bildverarbeitung finden heutzutage ein Vielzahl von Bilddateiformaten Anwen dung Diese geben dem jeweiligen Anwender die M glichkeit abh ngig von seinen weiteren Pl nen das f r ihn sinnvollste Format zu verwenden Er kann also ein Bildformat danach w h len ob Plattenspeicher gespart werden soll oder ob eine bestimmte Detailtiefe des Bildes f r die jeweilige Anwendung vorliegen mu Jedes Pixel Bildpunkt einer 24 Bit Grafik ben tigt 3 Byte Speicher Manche Bildformate wie TIFF oder BMP behandeln Bilder 1 1 d h da sie ein Bild in der Gr e speichern die dem theoretisch errechneten Wert entspricht Andere Formate wie TIFF komprimiert PICT oder Photoshop komprimieren Bilder ohne Informa tionsverlust Dazu werden gleichfarbige Bildanteile zusammengefa t Dieses Verfahren spart 50 KAPITEL 2 GRUNDLAGEN Plattenplatz und Ubertragungszeit verlangsamt aber das ffnen der Datei durch ein Programm Weitere Formate wie beispielsweise das JPEG Format komprimieren Bildinformationen ver lustbehaftet d h vergessen Informationen zugunsten h chster Verdichtungsraten Eine umfassende bersicht ber die hier nur zitierten Techniken bietet 15
89. mehr sondern eine endliche Folge von Zeitpunkten to tn Durch die Diskretisierung ist das Problem in einem Teilaspekt komplexer geworden Die Ge schwindigkeit steht nur noch in Knoten zur Verf gung und mu bei Positionen innerhalb der Zellen interpoliert werden beispielsweise durch gewichtete Mittelung der Eckwerte der Zelle Wichtig ist die Unterscheidung zwischen zwei Arten von Geschwindigkeitsfeldern In statio n ren Fl ssen engl steady flows ist wie eben definiert v zeitunabh ngig d h der Flu bleibt zu jedem Zeitpunkt gleich Im Gegensatz dazu ist im instation ren Fall engl unsteady flow der Flu sowohl orts als auch zeitabh ngig v Q x T R ndert sich also im Verlauf der Simulation Die analytische L sung des Partikelverfolgungs Problems gen gt der folgenden gew hnlichen Differentialgleichung exakter dem folgenden Anfangswertproblem PO L pie plo po 46 KAPITEL 2 GRUNDLAGEN bzw im instation ren Fall dp t dd Physikalisch entspricht die erste Ableitung einer Ortsfunktion nach der Zeit einer Geschwin digkeit dies erkl rt die linke Seite der Gleichung Auf der rechten Seite steht direkt die Aus wertung des Geschwindigkeitsfeldes f r denselben Zeitpunkt an derselben Position Setzt man dies gleich ergibt sich das obige Anfangswertproblem u p t t p to po Der Basisalgorithmus Im ersten Schritt mu die Zelle gefunden werden in der sich die Startposition des
90. mit eingetragenen H henlinien s Abb 2 19 a vorstellen die nichts anderes als Isolinien sind da sie alle Punkte der gleichen H he miteinander verbinden Um Isolinien auf einem Gitter zu erstellen markiert man erst alle Gitterpunkte je nachdem ob sie ber oder unter dem gesuchten Isowert c liegen positiv bzw negativ Jetzt gibt es zwei unterschiedliche Ans tze das Problem weiter anzugehen Beim Cell Order Verfahren geht man Zelle f r Zelle im Gitter ab und bestimmt ob es minde stens einen Vorzeichenwechsel zwischen den Eckpunkten dieser Zelle gibt Ist dies der Fall dann schneidet die Isolinie die Zelle mindestens einmal Im Fall da das Vorzeichen viermal wechselt wird die Zelle sogar von zwei Isoliniensegmenten geschnitten und es existieren zwei M glichkeiten wie diese Segmente durch die Zelle verlaufen s Abb 2 18 Abbildung 2 18 Zwei M glichkeiten wie Isolinien durch eine Zelle verlaufen k nnen In diesem Fall mu man sich f r einen dieser m glichen Verl ufe entscheiden Dazu interpoliert man den Funktionswert in der Mitte der Zelle ist dieser kleiner als c w hlt man den 1 Fall ist er gr er als c dann den 2 Fall Es wird nach der Fl che zwischen den Isolinien entschieden Die Schnittpunkte der Zellkanten werden durch lineare Interpolation zwischen den Eckpunkten bestimmt und miteinander durch ein Isoliniensegment verbunden Danach geht man ber zur n chsten Zel
91. nehmen und e Renderer die f r das kompilieren der Java3D Szene Graphen und das Verwalten der Konfiguration des virtuellen Universums zust ndig sind Die verschiedenen Module arbeiten dabei auf einer gemeinsamen Datenstruktur 3 6 9 Die Datenstruktur Die Datenstruktur f r die Visualisierungspipeline setzt sich aus der Domain des Frameworks devisor framework foundation domain und den GMV Daten zusammen Um den speziel len Anforderungen der verschiedenen Visualisierungstechniken zu entsprechen wurden jeweils neue Klassen erstellt welche von den Foundation Klassen devisor framework foundation erben und diese um die ben tigten Funktionen erweitern Mittels dieser Klassen ist es m glich ber Nachbarschaftsbeziehungen innerhalb eines Gebietes die einzelnen Elemente anzuspre chen um auf diesen Berechnungen durchzuf hren Die GM V Daten liefern neben den aktuel len Werten wie Druck Temperatur etc zu den einzelnen Zeitschritten der Berechnung auch Informationen ber die Verfeinerung der einzelnen Elemente Um diese Informationen mit der Domain verschmelzen zu k nnen gibt es das devisor vision ds Paket Datenstruktur VisionDomain Die VisionDomain stellt die Datenstruktur des Grobgitters f r die Visualisierungen dar Die VisionDomain ist im wesentlichen f r zwei Aufgaben zust ndig die Datenstruktur zu erstellen und sie dann in jedem Zeitschritt zu aktualisieren Die VisionDomain ist in der Lage selbstst ndig aus eine
92. of the cell to the left of the face cellno2 Cell number of the cell to the right of the face The cell numbers must be between 0 and ncells where 0 indicates no cell exists on that side of the face Note face data includes cell information do NOT mix both cells and faces within one GMV input file nodeids Alternate node id numbers for display ids nnodes Integer alternate node ids cellids Alternate cell id numbers for display ids ncells Integer alternate cell ids faceids Alternate face id numbers for display ids nfaces Integer alternate face ids material nmats data_type Material data number of materials and data type O cells 1 no des matnames nmats 8 character material names matids ncells Integer material ids for cells or matids nnodes Integer material ids for nodes velocity data_type Velocity data and data type O cells I nodes 2 faces u ncells v ncells For cells w ncells or u nnodes v nnodes For nodes w nnodes or u nfaces v nfaces For faces w nfaces variable Keyword indicating that other cell or node data sets follow The data sets have the form anyname data_type An eight character name for the data the data type O cells l nodes 2 faces data ncells nnodes or nfaces array of float data Examples DO NOT use quotes in actual file density 0 density_data ncells D 2 SPEZIFIKATION DES GMV FORMATS 249 temp 0 temp_data ncells pressur
93. present version but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Program specifies a version number of this License which applies to it and any later version you have the opti on of following the terms and conditions either of that version or of any later version published by the Free Software Foundation If the Program does not specify a version number of this License you may choose any version ever published by the Free Software Foundation If you wish to incorporate parts of the Program into other free programs whose distributi on conditions are different write to the author to ask for permission For software which is copyrighted by the Free Software Foundation write to the Free Software Foundation we sometimes make exceptions for this Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally NO WARRANTY BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE THERE IS NO WARRAN TY FOR THE PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND EIT HER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO TH
94. sie von der Klasse AbstractRenderer aus demselben Paket erbt 2 Die Implementierung der fehlenden Methoden 3 Das Zuf gen des neuen Pipeline Elements zu der XML Datei devisor vision util Configurables xml 4 Und zuletzt das Einf gen einiger Internationalisierungs Strings zu der Standard Datei devisor vision util FindConfigurablesil8n properties sowie u U auch zu den anderen Internationalisierungs Dateien in diesem Paket Der Renderer der gebaut wird wird die Funktion des SimpleRenders nachvollziehen dem einzigen Renderer der bisher im VISION Modul existiert Er sorgt f r eine einfache Beleuch tung setzt Grenzen f r Sichtbarkeitsberechnungen und f gt die Reaktionen auf Mausbewegun gen hinzu Die neue Renderer Klasse F r neue Java Klasse die von der Klasse AbstractRenderer erbt vergleiche Codebeispiel 18 B 1 EINBAU WEITERER VISUALISIERUNGSTECHNIKEN IN DAS VISION MODUL179 Die fehlenden Methoden Diese Klasse ist noch nicht kompilierbar weil noch einige Methoden zu implementieren sind public ParameterList getParameterList F r eine Erkl rung dieser Methode vergleiche den Abschnitt dar ber in Kap B 1 1 Siehe B 1 4 f r ein umfangreiches Beispiel und Codebeispiel Kap 11 f r eine kurze Variante public ListOfErrors configure ParameterList aList F r eine Erkl rung dieser Methode vergleiche den Abschnitt dar ber in Kap B 1 1 Sie he Kap B 1 4 f r ein umfangreiches
95. soll ergibt sich f r stetige Dichtefunktionen die folgende Erhaltungsgleichung 1 Ordnung sog Kontinuit tsgleichung Hp V pv 0 2 2 MATHEMATISCHER HINTERGRUND 19 Auf analogem Wege erh lt man aus dem Erhaltungssatz f r die Temperatur unter Ber cksichti gung von Quelltermen q und einem W rmediffusionsfaktor x R in einem ruhenden Medium v 0 die folgende Erhaltungsgleichung 2 Ordnung sog W rmeleitungsgleichung TH VP KVT 9 Physikalische Anschauung erfordert da L sungen zu diesen Gleichungen bei physikalisch sinnvollen Anfangs und Randbedingungen stets positiv sind p gt 0 T gt 0 Die entspre chenden Erhaltungss tze f r Dichte Impuls und Energie f hren unter geeigneten zus tzlichen Annahmen mit der Kontinuit tsgleichung auf die sogenannten Navier Stokes Gleichungen f r inkompressible Fl ssigkeiten d h Fl ssigkeiten die auch unter Druck ihre Dichte und Tempe ratur nicht ndern Ov vAv tv Vv Vp f V v 0 2 6 2 2 2 Diskretisierung Nachdem ein mathematisches Modell in Form von Differentialgleichungen vorliegt ist die Frage was man tun kann um aus diesem eine L sung zu gewinnen um eine Vorhersage f r den zugrundeliegenden Naturvorgang treffen zu k nnen Bei einfachen Gleichungen wie zum Beispiel f r die W rmeleitungsgleichung ist es vielleicht mit viel Erfahrung Geduld und In tuition m glich direkt durch scharfes Daraufschauen eine analytische L sung
96. sondern die komplette Visualisierungsumgebung die es erlaubt die drei Fenster und die Koordinatenachsen darzustellen und die absoluten Koordinaten der Rohdaten in der Domain in relative Koordinaten der Ansichtsfenster umzurechnen Dieses Paket stellt die Schnittstelle zwischen den Elementen der Domain und dem Editor bereit Auch wenn es m glich ist die ViewerPanels ohne den Editor zu benutzen machen manche Methoden nur Sinn wenn man sie aus Sicht des Editors benutzt z B setSelection Die wichtigste Klasse ist DrawingArea Sie definiert die Zeichenfl che mit den ihr zugeh ri gen Komponenten Sie enth lt eine Instanz der Klasse Domain und eine Instanz einer Unter klasse der Klasse ViewerPanel als Hauptattribute Somit wird die Verbindung zwischen den entity und view Datenstrukturen hergestellt Nat rlich enth lt sie auch die Optionen die die Darstellung benutzergerecht modifizieren die Objekte z B in einem bestimmten Grade trans parent darstellen etc 3 5 DAS MODUL GRID 83 Die Aufgabe dieser Klasse ist zu bestimmen welche Elemente der Domain in der zugewiese nen ViewerPanel aktuell sichtbar sind um sie anschlie end korrekt bezogen auf die relativen Koordinaten des Viewer Fensters und den Zoom Faktor zu zeichnen Es werden ein Gitter drawGrid und die Koordinatenachsen drawAxes im Hintergrund ge zeichnet um dem Benutzer das ma stabgerechte Eingeben der Elemente zu erleichtern Die Achsen werden in der gleichen Farbe
97. sowie deren Elternobjekte enthalten Zus tzlich sind in den GMV Daten auch Knoten Koor dinaten und Werte des Feingitters enthalten Um zu vermeiden da f r jeden Zeitschritt f r jede Zelle des Grobgitters also f r jedes Ele ment der VisionDomain ein Feingitter erstellt wird bietet die VisionDomain die Methode public FineGrid createFineGridCell int aGridCellNumber an Die Motivation f r diese Methode besteht darin da zu jedem Zeitschritt je nach ausge w hlter Visualisierungstechnik nicht auf jeder Zelle des Grobgitters gearbeitet werden mu Mit der genannten Methode kann in diesem Fall nur f r ben tigten Zellen ein Objekt der Klas se FineGrid erstellt werden mit welchem man nun Berechnungen durchf hren kann Damit die VisionDomain in der Lage ist ein Feingitter Objekt zu erstellen m ssen jedoch f r jeden Zeitschritt die Kompletten Informationen der GMV Daten pr sent sein Der Gewinn besteht darin da zwar alle Daten gespeichert werden der tats chliche Rechenaufwand Er stellen der Objekte Ermittlung und Setzen der Referenzen sich jedoch nur auf die wirklich angeforderten Zellen beschr nkt Die GMV Daten beinhalten zus tzlich folgende Informationen e Feingitter Information Diese Information besteht darin da f r alle Elemente des Gebiets z B Quads Hexas Tris und Tetras beschrieben wird welche Knoten sie enthalten Der GMVWrapper liest diese Informationen und erstellt damit jeweils ein Objekt
98. ufig stark an der getParameterlist Methode Das ist auch hier der Fall public ListOfErrors configure ParameterList aList return NoErrors create Codebeispiel 12 Die einfachste M glichkeit Parameterlisten auszuwerten Da bei der getParameterList Methode keine Parameter zur Verf gung gestellt wer den werden auch keine zur ckgeliefert Der R ckgabewert ist eine Liste von Fehlern die beim Konfigurieren des Filters auf getreten sind Da der Filter nicht konfiguriert wird k nnen auch keine Fehler auftreten aber auch hier f hrt ein die R ckgabe von null u U zum Absturz oder zu Fehlverhalten des Programms Deswegen wird ein leerer Fehler erzeugt und zur ckgegeben F r ein umfangreiches Beispiel vgl auch hier Kap B 1 4 public boolean filter Diese Methode wird aufgerufen sobald VisionControl vom CONTROL Modul das Si gnal bekommt mit der Visualisierung zu beginnen Hier soll die eigentliche Arbeit auf der VisionDomain stattfinden in der Regel eine billige Datenreduktion um die nach folgende teure Visualisierung zu beschleunigen Zu dem Zeitpunkt an dem eine die filter Methode einer bestimmten Filter Klasse auf gerufen wird haben alle evtl vorgeschalteten Filter ihre Arbeit an der VisionDomain bereits beendet und die weitere Verarbeitung wird aufgeschoben bis diese Methode er folgreich beendet werden konnte Die Klasse hat also exklusiven Zugriff auf die in
99. und Position w hlen ber die Buttons W hle an w hle ab und Invertieren kann entschieden werden ob die markierten Zeitschritte wirklich aus gew hlt abgew hlt oder ausw hlen abw hlen jeweils ausgetauscht werden soll Das gleiche ist auch mit der Maus m glich Dazu mu man einfach mit der Maus ein Intervall markie ren und die rechte Maustaste bet tigen damit das in Abb A 24 abgebildete Popup Men er scheint In dem Popup Men stehen wieder die M glichkeiten w hle an W hle ab und Invertieren zur Verf gung Zus tzlich werden die Position und der Wert des mar kierten Intervalls angegeben Um zwischen lediglich markierten und wirklich ausgew hlten Zeitschritten unterscheiden zu k nnen sind markierte Zeitschritte lila wirklich ausgew hlte Zeitschritte rosa und nicht ausgew hlte Zeitschritte wei Schritt 3 Konfiguration des Moduls Hier wird nun das Modul unabh ngig vom ausgew hlten Problem konfiguriert Der Aufbau der Oberfl che ist ja schon in Schritt 2 beschrieben worden Erst im dritten Schritt wird der Ende Button aktiv und damit kann erst hier mit Dr cken dieses Buttons die Konfiguration erfolgreich abgeschlossen werden A 5 GRID Ein Gittereditor f r zwei und dreidimensionale Git ter A 5 1 Einleitung GRID ist ein 3D und 2D Gittereditor zur Erstellung von Basisgittern f r die Verwendung in numerischen Simulationsprogrammen wie z B FEATFLOW
100. und Hilfsprogramme dorthin Als Beispiel k nnen die Skripte der anderen Module dienen e modus Definition des Modulhandling f r externe Module ist hier immer der Wert PARSER_MODUS_NOPIPE_INDIRECT zu setzen if enablemodule MODULE_TYPE_FEATPOISSON 1 modules mc moduleid mc modules mc callsign MODULE_TYPE_FEATPOISSON strcpy modules mc name FeatPoisson modules mc type MODULETYPE_NUMERICS strcpy modules mc descr FEAT2D Testmodul Poisson mit LOCUTUS Linkmodul strcpy modules mc appl feat2dtest e u S strcpy modules mc initappl modules module_featpoisson init_module3 PARSER_MODUS_NOPIPE_INDIRECT modules mc modu Codebeispiel 39 Moduldefinition F r ein Modul k nnen mehrere Probleme definiert werden Ein Problem setzt sich aus der De finition der Parameter der Statistikwerte und der Resultate zusammen Die Parameter werden in einer Parameterdatei definiert die bergabe an das Programm ist aber sehr programmspezi fisch und mu deshalb im Server selbst kodiert werden Fuer die Parameter k nnen alle Typen benutzt werden die das DEVISOR Framework vorsieht In der modules Struktur ist ein Array prb vorhanden welches die m glichen Probleme de finiert Die Variable maxprb gibt die Anzahl der definierten Probleme an Codebeispiel 40 zeigt die Definition des Membranproblems Die Komponente 1p gibt an welche Ste
101. und besonders um auch asynchron zu den oben aufgelisteten Methoden Nachrichten vom Zielmodul zum CON TROL Modul transferieren zu k nnen wurde der KeepAliveThread spezifiziert Er wird am Ende der oben aufgelisteten Methoden automatisch gestartet und zu Beginn des n chsten Me thodenaufrufs wieder beendet und l uft asynchron zu den Aufrufen der ControlWrapper Methoden In beliebig einstellbaren Zeitintervallen generiert dieser Thread eine spezielle Pro tokollsequenz und sendet sie ber die im Konstruktor per Module Referenz bergebene Ver bindung an das Zielmodul Drei Szenarien werden als Antwort unterst tzt 1 Das Modul antwortet mit einer speziellen Protokollsequenz dies entspricht dem klassi schen ping Signal 2 Das Modul sendet angefallene Fehler oder Statusmeldungen in Form einer ListOfEr rors im Huckepack Stil zur ck 3 Das Modul schickt anfallende Statistikdaten zur ck falls es diese Option als Parameter bietet In den letzten beiden F llen werden die empfangenen Objekte in der inbox des ControlWrap pers eingeordnet Dies ist eine Instanz der Klasse NotificationQueue die eine synchronisier te Warteschlange f r das single consumer multiple producers Szenario implementiert und im wesentlichen die zwei Methoden f r das Einh ngen und die Extraktion von Objekten bietet Aus Gr nden der besseren Zuordnung zu den einzelnen Modulen zur Erinnerung ein Con trolWrapper bietet die Verbindung zu beliebig vielen Module
102. werden in einer Klasse gesammelt die Klasse NetException Sie erweitert die Klasse Exception aus der Java Klassenbibliothek um folgende Funktionalit ten e Angabe der Klasse in der der Fehler erstmals auftritt e Fehlerliste um mehrere Fehler zu b ndeln und e Kaskadierbarkeit Alle Methoden des gesamten Pakets werfen sofern sie Kontakt zum Netzwerk haben eine Instanz dieser Exception Insbesondere bei den verschachtelten Parsern s u ist diese Klasse sehr hilfreich Auftretende Exceptions m ssen lediglich an den Konstruktor dieser Klasse ber geben werden um automatisch mitverwaltet und durch die Verschachtelungshierarchie zum Anwender gereicht zu werden 3 2 3 Die Protokollkapselung durch das Paket interim Das Paket interim enth lt eine gro e Anzahl an Objekten zur Kapselung der Protokollinterna und insbesondere der Parser die die beiden Datenrepr sentationen objektbasiert und proto kollbasiert ineinander umwandeln Bez glich des implementierten Protokolls sei auf Anhang D 3 verwiesen Die Idee hinter diesem Paket ist einfach zu verstehen Im wesentlichen gibt es zu jedem Teil einer Protokollsequenz eine eigene Klasse die sich selbst aus einem Datenstrom rekonstruie ren und auch zur ck in das Protokollformat schreiben kann Zu jeder Klasse gibt es also eine quivalente Repr sentation in Form eines Auszugs aus einer Protokollsequenz Konkret mu die jeweilige Klasse dazu das Interface Parsable aus
103. wird das Modul gestartet Erzeugt auch das Hauptfenster JCheckConnectionDialog Bei Anlegen eines neuen Servers kann in diesem Dialog die Ver bindung getestet werden JClockLabel Eine Uhr JCloseableTabbedPane Die TabbedPane f r ein Modul JComponentCellRenderer Stellt beliebige JComponents in einer JTable dar JComponentTableCellEditor Erlaubt beliebige JComponents in einer JTable zu editieren JConvergenceBar Da l uft was JDeViSoRPropertiesDialog Ein Dialog um Einstellungen des CONTROL Moduls zu ver n dern z B Hintergrundfarbe Sprache JDeViSoRSplashDialog Splashscreen f r das Starten von CONTROL JDevisorAboutDialog Ein sch ner Aboutdialog JErrorPanel In diesem Panel werden Statusmeldungen Fehlermeldungen und Statistiken ei nes Moduls ausgegeben JModuleAdministrationPanel Ein Panel zur Steuerung eines Moduls C 2 DAS PAKET CONTROL 215 JMultiLineToolTip Erm glicht ToolTips mit mehreren Reihen JNewProjectDialog Ein Dialog zum Anlegen eines neuen Projekts JNewServerDialog Ein Dialog zum Anlegen eines neuen Servers JProjectInternalFrame Ein internes Fenster zur Verwaltung eines Projekts JProjectRadioButtonMenultem Wird zum Umschalten der einzelnen Projektfenster benutzt JResultDownloadDialog Ein Dialog f r den Download von Ergebnissen JResultTable Eine Tabelle zur Darstellung der Ergebnisse im Downloaddialog JServerList Ein Dialog f r die Serverauswahl und verwaltung ResultObjectTableModel Zur Ver
104. zeichnen m chte dann kann man durch das Klicken der rechten Maustaste dem Programm diesen Wunsch mitteilen Die Eingabe des Objektes wird sofort unterbrochen Die eben vorgestellten Prinzipien gelten f r alle nachfolgenden Elemente so da diese Eigenschaft nicht mehr explizit erw hnt wird Allgemein gilt wenn Unterelemente Knoten Kanten Tris und Quads existieren K nnen sie ohne weiteres f r ein aus diesen Elementen bestehendes Objekt ver ndert werden Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Bearbeiten Edges hinzuf gen Ein weiteres Werkzeug ist Tris hinzuf gen Damit kann man durch die Markierung von drei Punkten mit Hilfe der Maus ein Tri Objekt erstellen Da es ein Fl chenobjekt ist wird es aus gef llt Abbildung A 34 Ein Tri auf der Zeichenfl che Die Numerierung von Tri Objekten sieht dann f r ein Tri mit der Nummer 1 so aus 1 Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Bearbeiten Tris hinzuf gen Um die zweite in GRID m gliche Fl chenform Quads zu erzeugen existiert das Werkzeug Quads hinzuf gen Genauso wie bei den Tris bestimmt man hier durch Angabe der vier Kno ten das Objekt Die Nummerierung von Quad Objekten sieht dann f r ein Quad mit der Num mer so aus 1 Abbildung A 35 Ein Quad auf der Zeichenfl che Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Be
105. zu bestimmen Bei komplexeren Systemen wie den Navier Stokes Gleichungen ist dies nicht mehr m glich daher ist man in diesem Fall auf ein numerisches Verfahren angewiesen Es gibt eine Reihe von Verfahren wie z B das Differenzenverfahren bei dem die Differential operatoren durch Differenzenquotienten ersetzt werden wie z B ajor H N 1 Das Verfahren um das es im folgenden etwas konkreter gehen wird heiBt Finite Elemente Verfahren Anders als beim Differenzenverfahren bei dem die punktweise Giiltigkeit der Gleichung ge fordert wird wird eine unter gewissen Zusatzforderungen quivalente Variationsgleichung zu grunde gelegt die eine bereinstimmung nur in einem gewissen Mittel fordert Die Methode der Finiten Elemente soll an folgendem Beispiel betrachtet werden f r kleines h u x b x u x c x u x f x in Q 0 1 u 0 u 1 0 Dabei seien b c und f gegebene stetige Funktionen und das Problem besitze eine L sung d h es existiere eine zweimal stetig differenzierbare Funktion u C Q N C Q welche der Gleichung gen gt Damit gen gt diese L sung auch der folgenden Gleichung Ju o cujude fode Q Q mit beliebigen stetigen Funktionen v Gen gt umgekehrt eine Funktion u C f r beliebiges stetiges v dieser Beziehung so gen gt u auch der Differentialgleichung 20 KAPITEL 2 GRUNDLAGEN Weitergehende Untersuchungen zur Theorie bez glich Existenz und Eindeutigkeit sollen an di
106. 0 0 sina 0 cosa 0 0 0 0 1 Ry p a Eine Rotation des Vektors p um die z Achse um den Winkel a lautet cosa sina 0 0 sina cosa 0 0 Rz p a 0 0 1 0 p 0 0 0 1 Eine beliebige Rotation im Raum kann durch eine Folge von Translationen und elementaren Rotationen um die Koordinatenachsen durchgef hrt werden Dies wird in 13 beschrieben Projektionen Projektionen dienen dazu dreidimensionale Objekte auf einer Ebene beispielsweise auf dem Bildschirm darzustellen Hier wird das Prinzip beispielhaft fiir polygonale Fl chen vorge stellt O B d A seien die Objekte durch ihre Eckpunkte gegeben so k nnen alle Eckpunkte separat transformiert und wieder verbunden werden Zur besseren Darstellung werden oft ver deckte Linien eliminiert oder au erhalb des gew nschten Bereichs liegende Teile an einem Sichtfenster bzw Sichtvolumen abgeschnitten Details dazu finden sich in 13 Projektionen werden durch die folgenden Angaben spezifiziert e Betrachterstandpunkt p R3 10 KAPITEL 2 GRUNDLAGEN e Projektionsebene E p aa 8b C R e Projektionsrichtung en Projektoren r e Sichtvolumen V durch die Angabe der vorderen und hinteren Clip Ebene Ey und Eh Die Schnittpunkte der Projektoren durch die Eckpunkte des Objekts mit der Projektionsebe ne bilden die Projektion Sie wird durch die L sung eines linearen Gleichungssystems eines Strahl Ebene Schnittproblems durchgef hrt Paralle
107. 1415 0 1 alpha beta Platzhalter Randnummer Codebeispiel 91 Spezifikation des FEAST Formats in 3D Knoten Die Unterscheidung erfolgt wieder ber die letzte Zahl Kanten Kanten werden ebenfalls analog zum Zweidimensionalen ber Start und Endknoten Kantenstatus und Randbedingung angegeben Kantenlist Lb 2 7 0 Startknoten Endknoten Kantenstatus 0 none l inner 2 exter boundary Randbedingung 0 dirichlet 1 neumann Codebeispiel 92 Spezifikation des FEAST Formats in 3D Kanten Fl chen Eine Fl che ist definiert durch Angabe des Typs Drei oder Viereck den drei oder vier Kanten des Fl chenstatus und der Randbedingung Es stehen drei oder viereckige Fl chentypen zur Verf gung 0123410 Typ 0 quad Kante 1 4 Fl chenstatus O none 1 inner 2 exter boundary Randbedingung 0 dirichlet 1 neumann 1 132 327 20 Typ 1 tri Kante 1 3 Fl chenstatus O none 1 inner 2 exter boundary Randbedingung 0 dirichlet 1 neumann Codebeispiel 93 Spezifikation des FEAST Formats in 3D Fl chen Elemente Das Format unterst tzt Hexaeder und Tetraeder Elemente Ein Hexaeder ist defi niert durch seine 8 Knoten Die Reihenfolge der Knoten und Kanten ist der folgenden Skizze zu entnehmen Der n chste Block gibt die Fl chennachbarn an danach die Indizes der noch nicht genannten Nachbarzellen die durch nur eine Kante benachbart sind ei
108. 2D und die Dateiversion FEAST ID String 2D Modus 2 Dateiversion major 0 Dateiversion minor Codebeispiel 83 Spezifikation des FEAST Formats in 2D Header Anzahlen Der n chste Block enth lt die Anzahlen an Parallelbl cken Knoten Elementen Kanten und R ndern jeweils in einer separaten Zeile 4 Anzahl Parallelbloecke 25 Anzahl Macro Knoten 16 Anzahl Macro Elemente 40 Anzahl Macro Kanten 2 Anzahl Boundaries Codebeispiel 84 Spezifikation des FEAST Formats in 2D Anzahlen Randbeschreibungen So oft wie im vorherigen Block angegeben folgt nun eine Randbe schreibung Sie besteht aus der Anzahl der Teil Segmente die den Rand definieren gefolgt von einer Liste eben dieser Segmente Als Segmenttypen stehen Linien und Kreise zur Verf gung jeweils mit IDs 0 respektive 1 Eine Linie ist definiert durch ihren Start und Endpunkt jeweils in kartesischen Koordinaten ein Kreis durch seinen Mittelpunkt den Radius und den Start und Endwinkeln gemessen im Bogenma gegen den Uhrzeigersinn von der 3 Uhr Position positive x Achse aus D 1 SPEZIFIKATION DES FEAST FORMATES F R DIE GITTERDEFINITION 237 4 Anzahl Segmente auf Boundary 1 0 Typ des ersten Segments Linie 0 0 0 0 Startpunkt 1 0 0 0 Endpunkt 0 Typ des zweiten Segments L
109. 3 EQ1 HEADER CMD FOOTER EQ2 HEADER LOE FOOTER EQ3 HEADER CMDREPLY FOOTER Codebeispiel 100 SeqControl protocol structure D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 263 Command definitions CMD 0 Subtype CONTROL SERVER Command GetRunningModules End_Command Codebeispiel 101 GetRunningModules protocol command CMDREPLY 0 Subtype CONTROL SERVER GetRunningModulesReply Description EVILSTRING info End_Description oduleO ED INT id ProjectID GOODSTRING projectid InstanceHandle GOODSTRING handle Name GOODSTRING name Type CONSTSTRING GRID METIS NUMERICS VISION GID Description EVILSTRING info End_Description End_Module End_GetRunningModulesReply a na Codebeispiel 102 GetRunningModulesReply protocol command CMD 0B Subtype CONTROL SERVER Command Get InactiveModules End_Command Codebeispiel 103 GetInactiveModules protocol command 264 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN C Get InactiveModulesReply Description EVILSTRING info End_Description oduleO na DREPLY OB Subtype CONTROL S TD INT id ProjectID GOODSTRING projectid InstanceHandle GOODSTRING handle Name GOODSTRING name Type CONSTSTRING GRID METIS NUMERICS VISION GID Description E
110. 30P t MN ACT MAX 1 27 Surface 3D Fer 6300 Abbildung A 18 Mehrfachauswahl von Parametern Beschreibung Visualization Method Visualization Method Visualization Method Color Colon M Einstellungen X Abbrec Thirknace Thicknace Abbildung A 19 Einfachauswahl auswahldialog gestartet in dem eine FEAST Datei ausgew hlt werden kann Die ausgew hlte FEAST Datei kann man sich auch ansehen indem man den Zeige Domain Button dr ckt Dann erscheint der in Abb A 21 abgebildete Dialog Die Funktionen des FEAST Betrachters sind eingeschr nkt aber es ist m glich ber die in der Men leiste gegebenen Icons zu zoomen und mit der Maus die Domain zu verschieben aust Our angresen Dem een un tom Domain fee deme Abbildung A 20 Auswahl einer FEAST Datei Eingabe von Funktionen Mit dem in Abb A 22 gegebenen Parameter ist es m glich Funktionen einzugeben Das wird z B in FEATFLOW genutzt Die obere Tabelle enth lt defaultm ig vorgegebene Funktions parameter die um eigene Parameter mittels Parameter hinzuf gen erg nzt werden k nnen Dann erscheint am Ende der Tabelle eine editierbare neue Reihe Mit Parameter l schen hingegen kann ein ausgew hlter Funktionsparameter wieder gel scht werden A 4 CONTROL DIE STEUERUNG DES SYSTEMS 127 Abbildung A 21 Ein FEAST Betrachter Defa
111. 6 Quad Objekten Sie k nnen genauso wie die Tetras nur im 3D Modus erzeugt werden Sie haben auch die Eigen schaften Matrixblock Parallelblock Verfeinerungslevel und noch zus tlich ein An isotropie Faktor und 6 reelwertige Faktoren die wie bei 2D Objekten die Richtung der Verfeinerung bestimmen Boundaries Dieser Kapitel behandelt die m glichen Randbeschreibungen in GRID Sie sind wiederum qui valent mit den Randbeschreibungen des FEAST Formats Hier werden sie aus der Anwender Sicht vorgestellt BoundaryCircle Das einfachste Randobjekt ist der Kreis Er besteht aus einem Mittelpunkt und einem Radius Der Kreis kann wie schon oben erw hnt allein oder als Kreisseg ment in einer BoundarySegmentList siehe unten vorkommen Deswegen ist es prinzipi ell m glich anhand von zwei Winkeln wiederum ausgehend von der Drei Uhr Position auf dem Kreis das Segment anzugeben Die Drei Uhr Position bestimmt den Winkel 0 von dort ausgehend werden die Winkel gegen den Uhrzeigersinn gr er Ein Kreis kann nur im 2D Modus vorkommen BoundarySegmentList Eine BoundarySegmentList besteht aus sogenannten Segmenten Die se k nnen Kreissegmente oder Kanten sein Sie bilden immer ein geschlossenes Polygon SegmentListen k nnen nur im 2D Modus erstellt werden Sie brauchen nicht konvex zu sein BoundaryCubicle BoundaryCube Ein BoundaryCubicle Objekt ist so etwas wie ein Boundary Hexa Objekt im 3D Modus Es besteht auch aus 8 Knoten Allerd
112. 8_ devisor grid options ooo e ee C5 Das Pak NET aoe aie sre 8 00000 wo A OR ae we ew ee 5 C 5 1 devisor net 2 22 CC onen C 5 2 _devisor net wrappeis 2 osoo C 5 3 __devisor net interim 22 22 Coon C 5 4 __devisor net example 22 22 Co Come C 5 5__devisor net debug 2 22 2 Comm INHALTSVERZEICHNIS C 6 Das Paket NEXUS C 6 1 API Dokumentation C 7 Das Paket VISION C 7 1 _ devisor vision 222222000 C 7 2 devisor vision ds 2 2 C 7 3 _devisor vision exceptions C 7 4__devisor vision grid C 7 5 _devisor vision gul 2 2 C 7 6 _devisor vision movie C 7 7___devisor vision particle C 7 8 _devisor vision pipe C 7 9 devisor vision pipe filter C 7 10 devisor vision pipe mapper C 7 11 devisor vision pipe renderer C 7 12 devisor vision stats 2 C 7 13 devisor vision util C 7 14 devisor net wrappers D Format und Protokollspezifikationen D 1 Spezifikation des FEAST Formates f r die Gitterdefinition D 1 1 FEASTBD 2 2 20200 D 1L2 FEAST3D 2 22020 D 2 Spezifikation des GMV Formats D 2 1 I
113. ANHANG B ERWEITERUNGSM GLICHKEITEN generation of source file bdry f u trcpy buffer routertablelactrtl wdpath treat buffer bdry f un fh fopen buffer w par routertable actrtl apara while par NULL if par gt type PARA_FUNCTION amp amp par gt parameterid LVD_FEPO_RHS fprintf fh DOUBLE PRECISION FUNCTION RHS X Y IA IDA BFIRST DT n fprintf fh IMPLICIT DOUBLE PRECISION A C H O U W Z LOGICAL B n convert_function fh par forintf fh END n par par gt next fclose fh Codebeispiel 48 Parameterkonfiguration 4 Als letzter Abschnitt werden die Statistikwerte definiert Statistikwerte k nnen skalare Integer oder Double Werte sein Analog zu den Resultaten werden sie durch eine Struktur tstat definiert Codebeispiel 49 zeigt eine solche bspstat anzstat 3 strcpy bspstat sname 0 Number of Iterations bspstat stype 0 STAT_TYPE_SCALARINT strcpy bspstat sshortname 0 NIT strcpy bspstat sname l Convergance rate bspstat stype l STAT_TYPE_SCALARDOUBLE strcpy bspstat sshortname l CONVRATE Gl a r strcpy bspstat sname 2 Calculation time strcpy bspsta sshortname 2 TIME bspstat stype 2 STA YPE_SCALARDOUBLE modules mc prb 0 stat amp bspstat Codebeispiel 49 Definition der Statist
114. ATUS_STARTED started unconfigured ModuleStatus TAPER ECORDER_STOP no resu 0 no timestep yet lts available Codebeispiel 29 Konstruktor des Moduls 191 Danach geht es an die Implementierung der eigentlichen Modulfunktionalit t aus Gr nden der Einfachheit wurde dies hier in einer inneren Klasse vorgenommen um die Beispiele nicht durch zu viele Getter und Setter zu verkomplizieren Die innere Klasse erweitert Timer Thread ei ne von Java zur Verf gung gestellte Klasse zur automatischen Wiederholung immer gleicher Aufgaben Codebeispiel 3 an 1 gibt die Implementierung der wichtigsten Methode dieser Klasse 192 ANHANG B ERWEITERUNGSM GLICHKEITEN public void run first perform increment and update status timesteptt ms setTimeStep timestep value incrementValue then generate result and statistics if neccessary if generateResults write result to file using the filename convention File file new Fil INCREMENTSIMULATOR result timestep trys 4 FileWriter out new FileWriter file String s INCREMENTSIMULATOR Result for timestep timestept n out write s 0 s length s Current Value value out write s 0 s length out close update result list availableTimeSteps addElement new TimeStep timestep time date file length wrapper getInterim
115. Beispiel und Codebeispiel Kap 12 fiir eine kurze Variante public void setBranchGroup BranchGroup aBranchGroup Diese Methode wird aufgerufen wenn die Pipeline soweit durchlaufen ist da ein voll st ndiger Szenegraph vgl Kap 2 1 2 berechnet wurde damit nach ihrem Ende das Attribut protected Canvas3D myCanvas3D als Ergebnis vorliegt Die Attribute myLogger und myDomain stehen auch hier zur Verf gung vgl Kap B 1 1 180 ANHANG B ERWEITERUNGSM GLICHKEITEN Sets the scene to be rendered and re initializes the Canvas3D object on which rendering will be done param aBranchGroup public void setBranchGroup BranchGroup aBranchGroup super setBranchGroup aBranchGroup This is inherited from AbstractRenderer configureCanvas Here we set the basics mySimpleUniverse new SimpleUniverse myCanvas3D mySimpleUniverse getViewer getView setBackClipDistance 10000d mySimpleUniverse getViewer getView setFrontClipDistance 01d mySimpleUniverse getViewingPlatform setNominalViewingTransform myMouseConfig myMouseManipulator getMouseConfig creating transformations based on mouse movements myManipulator new MouseManipulator myBranchGroup myBranchGroup myManipulator getAttachedBranchGroup myMouseConfig myMouseConfig myManipulator getMouseConfig myLogger debug Mou
116. Bundle ms setResultsAvailable true catch Exception ex enqueue error message if that didn t work generate statistics if generateStatistics ParameterList pl new ParameterList wrapper getInterimBundle pl addParameter new ScalarParameter 1 Progress PG false Progress of INCREMENTOR ScalarParameter FORMAT_INTEGER Integer toString value Rn Integer toString value Integer toString value new TextFieldDescription wrapper getInterimBundle wrapper getInterimBundle Statistics stat new Statistics date time timestep pl wrapper getInterimBundle Codebeispiel 30 Innere Klasse Incrementor B 2 TUTORIAL ZUR INTEGRATION EINES NEUEN MODULS IN DAS SYSTEM 193 wrapper getOutbox enqueue stat wrapper getProjectID Integer toString wrapper getModuleID wrapper getInstanceHandle Codebeispiel 31 Innere Klasse Incrementor Wichtig Zus tzlich zur eigentlichen Funktionalit t muss lediglich Verwaltungsarbeit betrieben werden bzw mit dem Kontrollmodul ber die outbox des Wrappers kommuniziert werden Nun kann das Interface Wrappable implementiert werden Dies erfordert jedoch nur noch Flei arbeit im wesentlichen m ssen nur Referenzen aktualisiert bzw Statusmeldungen gene riert werden Methoden die bereits vom Wrapper abgeblockt werden m ssen nur mit einer leeren Standardimplement
117. Buttons erscheint ein Standardfarbauswahldialog in dem eine Farbe gew hlt werden kann Die gew hlte Farbe wird in dem Farbfeld angezeigt A 4 CONTROL DIE STEUERUNG DES SYSTEMS 125 amt color arte obri Beschreibung ant color area color dann prip Walle Farlie Abbildung A 17 Farbauswahl Auswahl von Parametern F r die Auswahl von beliebigen Parametern gibt es vier verschiedene Parameterpanels zwei davon sind in Abb A 18 und Abb A 19 zu sehen Mit dem in Abb A 18 dargestellten Para meter ist eine Mehrfachfachauswahl von Parametern m glich Die linke Liste enth lt alle zur Auswahl stehenden Parameter die Liste auf der rechten Seite enth lt hingegen alle bereits aus gew hlten Parameter wobei hier Parameter mehrfach ausgew hlt werden k nnen Hier eine bersicht ber die Buttons Der in der linken Liste ausgew hlte Parameter wird der rechten Liste hinzugef gt Der in der rechten Liste ausgew hlte Parameter wird aus der rechten Liste entfernt T Der in der rechten Liste ausgew hlte Parameter wird um eins nach oben verschoben l Der in der rechten Liste ausgew hlte Parameter wird um eins nach unten verschoben Einstellungen F r den in der rechten Liste ausgew hlten Parameter wird ein Dialog ge ffnet in dem der Parameter konfiguriert wer den kann Zus tzlich kann man den Konfigurationsdialog f r einen Parameter aus der rechten Liste f
118. D INT parameter id Name GOODSTRING parameter name ShortName GOODSTRING shotname le CONSTSTRING TRUE FALSE Reconfigurab Description GOODSTRING inimumSets aximumSets SelectedIds INT id GUICOMBOBOX End_SelectionParameter text End_Description i INT minimumsets INT maximumsets SCALAR VECTOR GRID FUNCTION SELECTION NOD End_SelectedIds GUISELECTION GUIRADIOBUTTON GUICHECKBOX Gl a Codebeispiel 172 SelectionParameter protocol definition End _SetSel SETSELECTION SetSelectionParameter ID INT parameter id SETSCALAR SETVECTOR SETGRID SETFUNCTION SETSELECTION lectionParameter Codebeispiel 173 SetSelectionParameter protocol definition PJ n SETDATASOURCE DATASOURCE DataSourceParameter EDs 2 Host GOODSTRING host Port INT port oduleID INI InstanceHandle GOODSTRING instanceHandle ResultID INT DataField GOODSTRING gmvlabel SelectedTimeSteps moduleid resultid INT timestep 0 End_SelectedTimeSteps d_DataSourceParameter DATASOURC Gl Codebeispiel 174 DataSourceParameter protocol definition D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS GUI Definition
119. E QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRI TING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY MODIFY AND OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE BE LIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUEN TIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INAC CURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES END OF TERMS AND CONDITIONS 296 ANHANGE LIZENZ Appendix How to Apply These Terms to Your New Programs If you develop a new program and you want it to be of the greatest possible use to the public the best way to achieve this is to make it free software which everyone can redistribute and change under these terms To do so attach the following notices to the program It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty and each file should have at least the copyright line and a pointer to where the full notice is found one line to give the program s name and a brief idea of what it does Copyright C yyyy
120. Endbericht der Projektgruppe 423 DEVISOR Lehrstuhl f r Graphische Systeme Fachbereich Informatik Lehrstuhl f r Angewandte Mathematik und Numerik Fachbereich Mathematik Universit t Dortmund WiSe 2002 03 SoSe 2003 Teilnehmer Hendrik Becker Christian Engels Markus Glatter Dominik G ddeke Eduard Heinle Mathias Kowalzik Patrick Otto Wissam Ousseili Thomas Rohk mper Mathias Schwenke Nicole Skaradzinski Tom Vollerthun Betreuer Claus Peter Alberts J rg Ayasse Christian Becker ii Inhaltsverzeichnis 1 Einleitung 1 1 Motivation und Projektidee 2 2 2222 20 1 2 Einordnung des Projekts 2 2 2222 1 3 Aufgabenstellung 2 Co nun 1 4 Struktur des Berichts 2 2 2 Comm nn 2 Grundlagen 2 1 Allgemeine Grundbegriffe 2 2 2 2222 00 2 1 1 _Computernetzwerke o oo 2 1 2 _Computergrafik 2 2222 2222 2 1 3 _ Konzepte des computational steering 2 2 Mathematischer Hintergrund 2 2 1 Modellierung 2 2 22 2 2 2 Diskretisierung o 2222 22mm 2 2 3 _ Wahl der Basisfunktionen und Zerlegung des Gebiets 2 2 4 _ Berechnung der Integrale 2 2 2 2 2 5 _ L sung des Gleichungssystems 2 2 6 Zeitschrittverfahren 2 2 2222220
121. ExceptionDialog TriDialog GridSplashDialog ViewBoxDialog HelpDialog VisibilityDialog HexaDialog Die meisten dieser Dialoge sind gleichartig aufgebaut und unterscheiden sich nur in ihrer Funk tionalit t Die meisten sind dazu da dem Benutzer die M glichkeit zu geben neue Elemente in die Datenstruktur und auf die Zeichenfl che einzuf gen Um noch mehr ber die Funktionalit t der Dialoge zu erfahren siehe das Handbuch von GRID in Kapitel A 5 Hier wird exemplarisch der NodeDialog vorgestellt um die Funktionalit t die allen Dialogen zugrunde liegt vorzustellen Der Konstruktor von NodeDialog ruft die Methode createDialog auf mit der der Dialog ge zeichnet wird Es wird eine JComboBox f r die Auswahl der schon vorhandenen Knoten drei JTextPanes zur Eingabe der Koordinaten und vier JButtons OK APPLY CANCEL und DELETE dargestellt Die Methoden update updateCombo und selectionChanged sorgen daf r da die ComboBox mit den vorhandenen Knoten stets aktuell bleibt auch wenn Knoten au erhalb von dem Dialog erstellt werden z B mit dem AddNodeListener Die Methode assignNode synchronisiert die Anzeige mit dem bergebenen Knoten Sie wird beim Erstel len eines neuen Knotens aufgerufen Am wichtigsten ist die Methode actionPerformed in der die Ereignisse behandelt werden wenn einer der Buttons gedr ckt wird Beim Button OK werden die Einstellungen bernommen und der Dialog wird geschlossen APPLY macht das gleiche
122. FOUNDATION stellt Klassen und Methoden zur Verf gung um kom plexe Gitter und Geometrien verwalten zu k nnen Hier k nnte beispielsweise ein automatischer Gittergenerator aufsetzen 3 1 4 Zustands berg nge innerhalb der Module Es gibt sechs verschiedene Zust nde im Leben eines Moduls 62 KAPITEL 3 SYSTEMBESCHREIBUNG UNKNOWN f r ungestartete Module STARTED f r gestartete aber unkonfigurierte bzw noch nicht rechnende Module CONFIGURED f r konfigurierte noch nicht rechnende Module RUNNING f r rechnende Module PAUSED f r Module die bereits gerechnet haben und aktuell pausiert sind und INACTIVE f r bereits geschlossene Module von denen allerdings noch Ergebnisse herunter geladen werden k nnen Die Regeln f r die Zustands berg nge sind wie folgt definiert wobei die im Protokoll s Kap D 3 spezifizierten Bezeichner die einzelnen berg nge benennen STARTMODULE startet ein Modul CONFIGUREMODULE konfiguriert es START startet seine Berechnung PAUSE h lt diese an STOP beendet sie FORWARD REWIND STEP spulen Berechnungen vor oder zur ck CLOSEMODULE beendet ein Modul und RESTARTMODULE erweckt es falls das Modul dies unterst tzt wieder zum Leben Der Mealy Automat in Abbildung 3 2 dokumentiert die konkreten Zustands berg nge der Operator soll dabei alle anderen nicht explizit f r den jeweiligen Zustand erw hnten Re geln ersetzen Das Verhalten ist in diesen F ll
123. ICHT und 3D Ansicht im 3D Modus oder nur aus der OBEN Ansicht im 2D Modus s Kapitel A 5 3 e die Statuszeile s Kapitel A 5 3 Das Hauptfenster e00 X Domain Bearbeiten Dialoge Ansicht Optionen Fenster Projekt Bearbeiten Dialoge R sm H 0 a a lz Aktualisieren 20 0 E 2 5570 e FH E E E E E E I HEH H Klicken oder ziehen um Knoten auszuw hlen STRG dr cken um die Auswahl zu erweitern Shift um Abbildung A 25 Das Hauptfenster Das Hauptfenster enth lt im 2D Modus nur die OBEN Ansicht Mit der Maus k nnen hier je nach eingestelltem Maus Modus Finite Elemente und Boundaries erstellt werden Im 3D Modus zeigt das Hauptfenster vier Ansichten nderungen in einer Ansicht wirken sich direkt auf die anderen Ansichten aus 132 ANHANG A BENUTZERHANDBUCH Die Ansichten AUFSICHT SEITENANSICHT VORDERANSICHT In der linken oberen Ecke werden die absoluten Koordinaten angezeigt die der aktuellen Mausposition entsprechen Die dritte Koordinate die keine direkte Beziehung zur Mausposition hat kann ver ndert werden indem man die rechte Maustaste gedr ckt h lt und die Maus nach oben bzw u
124. ID CONTROL METIS GetParameterListForReply SCALAR VECTOR NODE SELECTION GRID FUNCTION DATASOURCE End_GetParameterListForReply Codebeispiel 114 GetParameterListForReply protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS GetConfigurationListFor ModuleID INT module id End_Command ERICS CONTROL GRID D CONTROL METIS CMD 5 Subtype CONTROL NUM CONTROL VISION CONTROL GI Command Codebeispiel 115 GetConfigurationListFor protocol command 267 CMDREPLY 5 Subtype GetConfigurationListForReply CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS ECTION SCALAR VECTOR NODE SEL GRID FUNCTION DATASOURC End_GetConfigurationListForRep E ly Codebeispiel 116 GetConfigurationListForReply protocol command CMD 6 Subtype Command GetCompleteConfiguration ModuleID INT module id InstanceHandle End_Command CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS INT handle Codebeispiel 117 GetCompleteConfiguration protocol command 268 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN CMDREPLY 6 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS GetCompleteConfigurationReply
125. IONEN CMD 18 Command CloseModule ModuleID INT module id InstanceHandle INT handle EndCommand Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Codebeispiel 143 CloseModule protocol command LOE CMDREPLY 18 Subtype CONTROL NUMERICS CONTROL GRID CloseModuleReply End_CloseModuleReply CONTROL VISION CONTROL GID CONTROL METIS Codebeispiel 144 CloseModuleReply protocol command CMD 19 Subtype CONTROL SERVER Command DisconnectModule ModuleID INT module id InstanceHandle INT handle EndCommand Codebeispiel 145 DisconnectModule protocol command LOE CMDREPLY 19 Subtype CONTROL SERVER DisconnectModuleReply End_DisconnectModuleReply Codebeispiel 146 DisconnectModuleReply protocol command CMD 20 Subtype CONTROL SERVER Command ConnectModule ModuleID INT module id InstanceHandle INT handle EndCommand Codebeispiel 147 ConnectModule protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 277 z RVER CMDREPLY 20 Subtype CONTROL S ConnectModuleReply LOE End_ConnectModuleReply Codebeispiel 148 ConnectModuleReply protocol command CMD 21 Subtype CONTROL SERVER Command ClearResult oduleID INT
126. Informationen ber Partikel vorliegen Zu jedem Zeitschritt wird durch die PipeInstance die Methode protected BranchGroup buildSceneGraph aufgerufen so da sich hier der Platz f r die Erh hung des Z hlers befindet Die folgende Methode beinhaltet somit das Grundger st der Partikelverfolgung protected BranchGroup buildSceneGraph this checkFirstPoints legend new LegendLabel legend setColorsStyle legendStyle max max 1 if timestepCounter 0 init initComputation timestepCountertt else step oneStepOfComputation timestepCountertt rest myLogger debug Building scene graph BranchGroup bg new BranchGroup bg addChild mapEdges if showBoundaryGrid showBoundaryShape bg addChild mapBoundaries bg addChild mapParticles if this showFineGrid bg addChild mapFineGridEdges myLogger debug Finished building scene graph return bg Codebeispiel 9 Grundgeriist der Partikelverfolgung Ist eine Berechnung am Anfang d h der Mapper wird das erste Mal mit Daten gefiillt werden folgende Schritte realisiert e Es wird das Element gesucht in welchem sich das aktuelle Partikel befindet Hierf r wird auf den devisor vision ds Klassen eine lineare Suche durchgef hrt Ist ein entsprechendes Element vorhanden wird das Partikel als Point3D oder Point2D in den Vektor private Vector firstPoints 3 6 DAS MODUL
127. KUMENTATION Die Klasse BoundingBox erleichtert es Boundingboxen von Objekten zu berechnen Mit der Methode add k nnen neue Punkte hinzugef gt werden Mit getUpperLeft und getLower Right kann man dann die Extremkoordinaten abfragen Die Klasse GeometryExtractor extrahiert eine Menge von Dreiecken Geometry Triangle aus einem Java3D Szenegraphen C 3 7 devisor framework viewer Das Paket viewer enth lt Klassen die die Schnittstelle zwischen den Foundationklassen und Java Swing bilden DomainOptions dient der Verwaltung der Anzeigeoptionen DrawingArea erbt von der Klasse JPanel und zeigt eine feste Ansicht der zugeordneten Domain Klasse Die Ebenen die dargestellt werden k nnen sind die XY die XZ und die YZ Ansicht MoveListener aktualisiert die Koordinaten die in der ViewerPanel dargestellt werden Painter Klassen die von Painter erben k nnen mit der Methode addPainter einer Drawin gArea zugewiesen werden Sie werden dann jedesmal aufgerufen wenn diese aktuali siert wird Mit removePainter k nnen sie wieder entfernt werden ViewerPanel ist Elternklasse f r alle Panels die Domains darstellen k nnen ViewerPanel2D dient der Darstellung von Domains in 2D Jede Instanz enth lt eine Dra wingArea ViewerPanel3D dient der Darstellung einer Domain in 3D Hierzu wird ein devisor vision grid DomainPanel eingebunden C 4 Das Paket GRID Dieses Paket beinhaltet Klassen zum Modul devisor grid C 4 1 devisor grid back
128. LF NBLOCF DIMENSION ARRDA NBLOCA ARRDF NBLOCF DIMENSION BSNGLA NBLOCA BSNGLF NBLOCF COMMON NWORK IWORK IWMAX L NNARR DWORK NNWORK COMMON ERRCTL IER ICHECK COMMON CHAR SUB FMT 3 CPARAM COMMON TRIAD NEL NVT NMT NVE NVEL NBCT NVBD COMMON TRIAA LCORVG LCORMG LVERT LMID a ADJ LVEL LMEL LNPR LMM VBD LEBD LBCT LVBDP LMBDP COMMON OUTPUT M MT MKEYB MTERM MERR MPROT MSYS MTRC IRECL8 EQUIVALENCE DWORK 1 VWORK 1 KWORK 1 EXTERNAL PARX PARY TMAX EXTERNAL COEFFA RHS UE EXTERNAL S2DI0 S2DBO EXTERNAL E011 1000 DATA KABAN 2 KFN 1 DATA BCONA TRUE BCONF FALSE DATA ARRDA DA ARRDF DF 5 DATA BSNGLA FALSE BSNGLF FALSE INTEGER isstart ispause INTEGER IRET ISOCKET IPAR MAXNITER IRSOCKET DOUBLE PRECISION DPAR LOGICAL FIRST Gl DE Gl T T Codebeispiel 50 Beispiel FeatPoisson Initialisierung 204 ANHANG B ERWEITERUNGSM GLICHKEITEN Codebeispiel 50 stellt den Initialisierungsblock dar include locutusf h include fpardef h IC C Tnit ialization IC FIRST TRUE call getarg 1 CFILE1 read CFILE1l I5 IH call getarg 2 CFILE1 read CFILEl I5 ISOCKET call getarg 3 CFILE1 read CFILEl I5 IRSOCKET call dllm_init_relink IH ISOCKET IRSOCKET IRET
129. Listener behandelt die Ereignisse beim Rotieren der Aus wahl ScaleSelectionListener Dieser Listener behandelt die Ereignisse beim Skalieren der Auswahl SelectBoxListener Dieser Listener behandelt die Ereignisse beim Ausw hlen der Zeichenele mente ShowDialogListener Dieser Listener behandelt die Ereignisse beim Anzeigen der Dialoge C 4 DAS PAKET GRID 221 ShowHierarchyListener Dieser Listener behandelt die Ereignisse beim Anzeigen des Hier archiefensters ShowPointOflnterestDialogListener Dieser Listener behandelt die Ereignisse beim Anzei gen des PointOfInterest Dialogs TriangulationListener Dieser Listener behandelt die Ereignisse beim Erstellen einer Boun daryTriangulation Dieser Listener wird erst in der n chsten Version von GRID verf gbar sein ViewBoxDialogListener Dieser Listener behandelt die Ereignisse beim Anzeigen eines View BoxDialogs ZoomFactorListener Dieser Listener behandelt die Ereignisse beim Einstellen des Zoomfak tors C 4 4 devisor grid i18n Dieses Paket beinhaltet keine Klassen sondern die Lokalisierungsdateien gridil8n Mit die sen wird die Mehrsprach F higkeit von GRID gew hrleistet C 4 5 devisor grid images Dieses Paket enth lt ein paar Bilder die in GRID verwendet werden Weitere Bilder befinden sich in devisor framework images C 4 6 devisor grid info Dieses Paket beinhaltet alle Dateien die zu den Hilfe Men punkten in GRID geh ren C 4 7 devisor grid main Di
130. MBESCHREIBUNG zwei verschiedene Kanten in der Elternliste eines Knotens bedeutet dies da diese Kanten be nachbart sind Analog sind zwei Facetten 3D oder Tris 2D benachbart wenn sie zusammen in der Elternliste einer Kante stehen Der java util Vector der die Eltern enth lt kann mit der Methode getParents abgefragt werden Au erdem erh lt jedes Objekt eine f r seinen Typ eindeutige Nummer Es folgt eine kurze Erl uterung welche Information die einzelnen Klassen speichern die In formationen ber die Eltern sind in jedem Objekt vorhanden e Basis Objekte ElementNode enth lt die Koordinaten eines Knotens Edge enth lt Referenzen auf zwei Knoten die den Start und den Endpunkt der Kante beschreiben e Finite Elemente Face ist eine abstrakte Klasse die eine Facette beschreibt Sie besteht aus einer festen Anzahl von Kanten Face2D ist ebenfalls eine abstrakte Klasse Diese beschreibt eine Facette in der Ebene Diese Klasse enth lt zus tzliche Informationen die es erm glichen die Fa cette in der Ebene weiter zu verfeinern Tri ist eine Facette die aus drei Kanten besteht im geometrischen Sinne also ein Dreieck Quad ist eine Facette die aus vier Kanten besteht Im geometrischen Sinne stellt sie ein Viereck dar Body stellt einen K rper im Raum dar Er kann aus einer festen Anzahl von Seiten fl chen Face bestehen und enth lt zus tzlich Informationen wie der K rper
131. OL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Codebeispiel 135 GetCompleteStatistics protocol command Subtype CMDREPLY 14 CONTROL GID GetCompleteStatisticsReply Statistics0 Date GOODSTRING date Time GOODSTRING time TimeStep INT timestep SCALAR VECTOR End_Statistics End_GetCompleteStatisticsReply CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL METIS Codebeispiel 136 GetCompleteStatisticsReply protocol command 274 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN CMD 15 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command GetAvailableResults ModuleID INT module id InstanceHandle INT handle eEnd_Command Codebeispiel 137 GetAvailableResults protocol command CMDREPLY 15 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS GetAvailableResultsReply ResultO ResultID INT id Name GOODSTRING name Type CONSTSTRING GMV FEAST PS MOVIE IMAGE JASCIIDATA Description EVILSTRING info End_Description BaseFilename EVILSTRING basefilename AvailableDataFields GOODSTRING gmvlabel NONE End_AvailableDataFields NumberOfTimeSteps INT nofts AvailableTimeSteps INT timestep GOODSTRING creationtime GOODSTRING creationdate LONG size 0 End_AvailableTime
132. Operstion ok OKOpersion started Abbildung A 1 Das Hauptfenster Beschreibung z B Betriebssystem des ausgew hlten Servers In der unteren Liste Modul beschreibung werden alle Module angezeigt die auf dem ausgew hlten Server verf gbar sind Unter Ausgew hltes Modul kann man noch einmal die komplette Beschreibung des ausgew hlten Moduls nachlesen Es folgt nun eine Erl uterung der Buttons Hinzuftigen Es erscheint der in Abb A 2 gezeigte Dialog und es kann ein neuer Server wie oben beschrieben angelegt werden Editieren Es erscheint wieder der Dialog aus Abb A 2 diesmal jedoch mit den Angaben des ausgew hlten Servers L schen Der in der Serverliste ausgew hlte Server wird gel scht Aktualisieren Die Liste der verf gbaren Module des ausgew hlten Servers wird aktualisiert A 4 CONTROL DIE STEUERUNG DES SYSTEMS Neuer server Neuer Server Rechneralias Inumbercruncher Host bigserverfarm com Port jar Benutzername herbert Passwort Verifizieren L U P L l L l Verbindung Test L Zok KK Abbrechen Abbildung A 2 Neuen Server anlegen Host Port Berutzemame Alias local oat 4711 Baruizeamane alias Jocalhoit 4711 Banuizamame Serverbeschreibung m Beschrekung imecutes Dfeniteren Muoschem Amtuamst Messias
133. Projekt kann ein bereits existierendes Projekt geladen wer den Dazu erscheint ein Standarddialog zur Dateiauswahl Gespeicherte Projekte haben immer die Endung devisor Projekt speichern ber Datei gt Speichern wird das Projekt des aktiven Projektfensters gespeichert A 4 CONTROL DIE STEUERUNG DES SYSTEMS 115 Projekt schlie en ber Datei gt Schlie e Projekt kann das aktive Projektfenster geschlossen werden ber Datei gt Alle schlie en k nnen alle ge ffneten Projekte geschlossen werden A 4 6 Steuerung eines Moduls In Abb A 5list ein Projektfenster zu sehen Da alle Module gleich behandelt werden besitzen auch alle Module die gleiche Oberfl che Wieviel davon zur Verf gung steht h ngt vom jewei ligen Modul ab z B kann es sein da keine Statistiken angeboten werden z B beim GRID Modul oder die Kassettenrekorderfunktion nicht voll unterst tzt wird In den linken Panels U A New Project NUMERICS GRAD VISION G amp D METIS Select Server and Module oa Meter loeti ot pi Problem Confegeranion I Operation Cesaret gt su Bs U 4 gt Abbildung A 5 Projektfenster Server Modul und Download wird durch rote und gr ne LEDs der Status eines Moduls angezeigt ber die Modulleiste des Projektfensters k nnen Module neu ge ffnet neu angebunden oder geschlossen werden Die Modulpunkte sind nach Modultypen sortiert In den h
134. Schicht f r Schicht die betreffenden Ordner ausklappen und die darin enthaltenen Informationen betrachten Auf der untersten Ebene die ser Hierarchie befinden sich die genauen Koordinaten und die Eltern Parents der Elemente Mit den Eltern sind alle Elemente einer Hierarchieebene h her gemeint die das aktuelle Ele ment teilen z B wenn ein Knoten gleichzeitig der Startpunkt einer Kante ist und der Endpunkt einer anderen dann sind die beiden Kanten Eltern des Knotens Diese Eltern Information ist vor allem wichtig f r das L schen der Elemente siehe unten Denn wenn ein Knoten zu dem mehrere Kanten adjazent sind die zu mehreren Quad Elementen geh ren und die wie derum zu mehreren Hexas geh ren gel scht wird werden auch all die abh ngigen Elemente gel scht Diese unumg ngliche Eigenschaft f hrt dazu da manchmal eine einzige Operation weitreichende Folgen haben kann 136 ANHANG A BENUTZERHANDBUCH Weiterhin ist diese Ansicht wichtig um z B in die in den Arbeitsfenstern nicht immer sichtbare Elementennummern Einsicht zu haben damit man in den ensprechenden Dialogen die richtige Nummer eingibt siehe unten Links oben in dem Domain Overview Fenster befindet sich eine Update Checkbox die bei dem entsprechenden Mausklick darauf die aktuellen Ver nderungen auf der Zeichenfl che in die Baumstruktur bernimmt So kann man dieses Fenster st ndig parallel zum Hauptfenster offenhalten und hat trotzdem die aktuellste bersicht
135. Steps End_Result End_GetAvailableResultsReply na Codebeispiel 138 GetAvailableResultsReply protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS CMD 16 Subtype CONTROL SERVER VISION SERVER Command GetResult oduleID INT module id InstanceHandle INT handle ResultID INT result id NumberOfTimeSteps INT nots RequestedTimeSteps INT timestep 0 End_RequestedTimeSteps End_Command Codebeispiel 139 GetResult protocol command CMDREPLY 16 Subtype CONTROL SERVER VISION SERVER GetResultReply RESULT O End_GetResultReply RESULT byte 1 status 0 lt gt no error byte 2 9 size LSB MSB byte 10 10 size data 275 Codebeispiel 140 GetResultReply protocol command CMD 17 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command AskForNotify End_Command Codebeispiel 141 AskForNotify protocol command CMDREPLY 17 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS AskForNotifyReply STATISTICS LOE CONSTSTRING IAMALIVE End_AskForNotifyReply Codebeispiel 142 AskForNotifyReply protocol command 276 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKAT
136. T Eduard Heinle NET Mathias Kowalzik CONTROL Patrick Otto VISION Wissam Ousseili VISION Thomas Rohk mper GRID Mathias Schwenke GRID Nicole Skaradzinski CONTROL Tom Vollerthun VISION Gegen Ende der Implementierungsphase wurde diese Einteilung naturgem immer weiter ge lockert Anhang A Benutzerhandbuch A 1 Ben tigte Pakete Zun chst wird Java 2 SDK ab Version 1 4 x ben tigt um DEVISOR ausf hren zu k nnen F r VISION wird Java3D ben tigt und zwar ab der Version 1 3 1 Auch das aktuellste Java Media Paket JMF sollte installiert sein Die neuesten gcc und g77 Compiler ab Version 3 2 werden f r FEATFLOWbendtist Die aktuellste Distribution von FEATFLOW ist fiir das korrekte Arbeiten mit dem DEVISOR Paket unumg nglich genauso wie die als Teil von NEXUsdistribuierten FEATFLOW Patches A 2 Installation Am Anfang m ssen folgende Verzeichnisse erstellt werden devisor devisor solverengines devisor devisor A 2 1 Installation des Numerikpakets FEATFLOW Die folgenden Schritte beschreiben Schritt f r Schritt die Vorgehensweise bei der FEATFLOW Installation 1 Die aktuelle Distribution von FEATFLOW kann von www featflow de herunterge laden werden Alternativ kopiert man sich die Datei von der PG CD pgcd tar gz 2 Dann entpackt man alles in devisor solverengines 3 Man wechselt in das Verzeichnis devisor devisor server featflow_mod 107 108 ANHANG A BENUTZERHANDBUCH 4
137. TZERHANDBUCH Abbildung A 48 2D Circle malen A 5 6 Ein 3D Beispielproblem Das dreidimensionale Beispielproblem sieht hnlich aus wie das unter beschriebene Problem Es besteht aus einem achsenparallelen Cubicle als u erem Boundary und einer Sphere als innerem 1 GRID starten 2 In den 3D Modus wechseln 3 In den Optionen den Gitterabstand auf 1 stellen das Maus Snapping einschalten den Snapping Abstand f r X Y und Z auf 1 stellen 4 Den Anzeigebereich uf X 5 Y 5 Z 5 X 10 Y 5 Z 5 einstellen 5 In die Fenster zoomen so da der Anzeigebereich ausreichend gro dargestellt wird Den Bereich in die Mitte des Fensters schieben 6 Damit das 3D Fenster stets aktualisiert wird die Funktion zum automatischen Update ausw hlen 7 Das Cubicle Werkzeug ausw hlen A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER155 Abbildung A 49 2D Rechenbereich mit Quads f llen 8 Mit dem Point of interest Dialog oder der rechten Maustaste im Aufsicht Fenster in die Ebene Z 4 wechseln 9 Den ersten Punkt 4 4 4 anlegen 10 Mit dem Point of interest Dialog oder der rechten Maustaste im Aufsicht Fenster in die Ebene Z 4 wechseln 11 Den zweiten Punkt 9 4 4 anlegen Der Cubicle Modus erwartet da die Rotation angegeben wird Da das Cublicle nicht gedreht werden soll noch ein weiteres Mal an diese Stelle klicken das Cubicle wird nun
138. VILSTRING info End_Description End_Module End_GetInactiveModulesReply T RVER Codebeispiel 104 GetInactiveModulesReply protocol command CMD 1 Command GetAvailableModules End_Command Subtype CONTROL SERVER Codebeispiel 105 GetAvailableModules protocol command C GetAvailabl DREPLY 1 Subtype CONTROL SERVER eModulesReply Description EVILS End_Description odule na ID INT id InstanceHandle CONSTSTRING NON Name GOODSTRING name Type CONSTSTRING GRID METIS NUMERICS VISION GID Description EVILSTRING info End_Description End_Module End_GetAvailableModulesReply RING info Gl Codebeispiel 106 GetAvailableModulesReply protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 265 CMD 2 Subtype CONTROL SERVER Command StartModule ModuleID INT module id Display EVILSTRING display End_Command Codebeispiel 107 StartModule protocol command CMDREPLY 2 Subtype CONTROL SERVER StartModuleReply InstanceHandle GOODSTRING handle End_StartModuleReply Codebeispiel 108 StartModuleReply protocol command CMD 2B Subtype CONTROL SERVER Command ReStartModule ModuleID INT module id InstanceHandle INT instanceha
139. VISION 103 aufgenommen Zus tzlich wird die Anzahl der Partikel welche in einer Berechnung ber cksichtigt wer den soll in particlesAliveCount gespeichert F r jedes Partikel wird dann auch noch sein Zustand d h ob es noch innerhalb des Gebiets ist oder nicht in particlelsAlive new boolean particlesAliveCount gespeichert Es wird f r jedes Partikel ein Objekt der Klasse ParticleFunction und eines der Klasse RungeKutta erstellt Im Gegensatz dazu werden w hrend einer Berechnung f r jedes lebendiges Partikel folgen den Schritte ausgef hrt e Die neue Position des Partikel wird berechnet e es wird berpr ft ob ein Element existiert welches diese neue Position enth lt Ist dies der Fall wird es in dem Vektor private Vector particlesTraces gespeichert Dieser Vektor besteht aus Vektoren welche jeweils f r ein Partikel alle Po sitionen beinhalten Die oben genannten Punkte werden jeweils nach den Elementtypen und nach der Dimension der Punkte unterschieden und ausgef hrt Die Visualisierung Die Visualisierung wird mittels einer BranchGroup realisiert Das Hinzuf gen von Kindern und die dadurch enstehenden Linien und Partikeln werden in der Methode protected BranchGroup mapParticles erschaffen Hier werden je nach Visualisierung die Partikel mit Linien verbunden 3 6 12 Renderer Der Renderer verwaltet die Einstellungen des Java3D Universums und initialisiert den Kompi lierungsvorgang auf d
140. VisionEdges als Kinder Diese Kinder haben umgekehrt das VisionQuad als Parent eingetragen In einem ersten Schritt werden alle benachbarten Elemente ermittelt und in einen Vektor einge tragen Das Element in dem sich das aktuelle Partikel vorher befand wird ebenfalls in diesen 100 KAPITEL 3 SYSTEMBESCHREIBUNG Vektor eingef gt und zwar als erstes Element Danach werden diese Elemente mittels der be reits vorgestellten Methoden untersucht ob sie das aktuelle Partikel enthalten Ist das der Fall dann wird das entsprechende Element zur ckgeliefert ansonsten wird das Verfahren auf die benachbarten Elemente ausgeweitet hexa null which means beeing at one inner step of a computation 7 if aktHexa null neighbours addElement aktHexa while size gt 0 amp amp hexaFound amp amp neighbourAvailable neighbourAvailable false if aktHexa VisionHexa neighbours remove 0 null if aktHexa isInBoundingBox point if aktHexa isInElement point hexaFound true return aktHexa int allNeighbours aktHexa getNeighbourHexas length for int i 0 i lt allNeighbours i t t if aktHexa getNeighbourHexas i null neighbourAvailable true d for int i 0 i lt allNeighbours i tt t if aktHexa getNeighbourHexas i null neighbours addElement aktHexa getNeighbourHexas i size Codebeispiel 8 Zellsuche ber Nachbarschaftbe
141. aan mode i 1 N Q Q Da die L sung u in V liegen soll besitzt sie ebenfalls eine Darstellung der Form 2 2 MATHEMATISCHER HINTERGRUND 21 N un x gt sii a zi Einsetzten und Herausziehen der Summe ergibt N dis Vovoan Inside i 1 N ja Q Die Funktionen hei en Ansatz bzw Testfunktionen Obwohl es m glich ist verschie dene Funktionenr ume zu verwenden sog Petrov Galerkin Verfahren wird meistens jedoch ein gemeinsamer Funktionenraum verwendet sog Galerkin Verfahren Setzt man als Testfunktionen v die N Basisfunktionen ein entsteht ein lineares Gleichungs system der Form As b mit den Unbekannten s s sn den Matrixeintr gen tij Ja V V di dQ und der rechten Seite b fo fndi dQ f r i 1 N Folgende Fragen bleiben zu kl ren e Wahl der Funktionen und Zerlegung des Gebiets 22 e Berechnung der Integrale e L sen des Gleichungssystems 2 2 3 Wahl der Basisfunktionen und Zerlegung des Gebiets Die Wahl der Basisfunktionen auch Ansatz oder Testfunktionen genannt ist f r die Reali sierbarkeit und Effizienz des Verfahrens von gro er Bedeutung Im Unterschied zu klassischen Ans tzen mittels global einheitlich definierter Funktionen werden bei der Methode der Finiten Elemente st ckweise definierte Funktionen in der Regel Polynome zugrunde gelegt Die da bei erzeugten diskreten Probleme besitzen eine spezielle Struktur und es lassen sich ang
142. able_ Codebeispiel 68 Befehl zur Ergebnisfreigabe Nach Aufruf dieser Routine wird dem aufrufenden Server signalisiert da Resultate zur Ver f gung stehen void dllm_is_running_ int iret void dllm_is_paused_ int iret Codebeispiel 69 Befehle zur Abfrage des Status Die Routine liefert in iret TRUE falls das Modul gestartet wurde bzw falls das Modul mit dem Pause Befehl angehalten wurde ansonsten FALSE void dllm_init_relink_ int ih int uis int uirs int ret Codebeispiel 70 Initialisierungsbefehl Diese Routine reinitialisiert eine TCP Verbidnung die vorher von einem VINCULUM Modul initiiert wurde Das Instancehandle ih das Sockethandle uis und das Remotesockethandle uirs werden dem Modul ber die Kommandozeile bermittelt und m ssen der Routine ber geben werden In ret wird das Ergebnis des Befehls zur ckgegeben void dllm_init_link_ int ih int ret int ia Codebeispiel 71 Initialisierungsbefehl Diese Routine initiiert die initiale Verbindung zum Servermodul Ihr wird das Instancehandle ih bergeben Zur ckgegeben werden die Statusvariable ret und die Socketkennung ia void dllm_listen_return_ int ret int ianswer Codebeispiel 72 Allgemeiner Riickmeldebefehl C 6 DAS PAKET NEXUS 227 Diese Routine liefert an den aufrufenden Server das Ergebnis zum bermittelten Kommando ret zur ck Der Fehlercode wird in ianswer gesetzt
143. ain zu setzen Dieser beschreibt ab wann zwei Knoten innerhalb der Datenstruktur als gleich anerkannt werden Das bedeutet auch wenn Mousesnapping auf O steht und man zwei Punkte nebeneinander setzt deren Ab A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER147 stand den Epsilon Wert berschreiten wird intern nur ein einziger Punkt erzeugt und die von den zwei Punkten abh ngigen Elemente h ngen von nun an an dem gleichen Punkt Deswegen sollte man bevor man mit der Arbeit an einer Domain beginnt dem gew nschten Zoomlevel ensprechende Mouse Snapping und Epsilonwerte einstellen Die voreingestellten Werte haben sich optimal f r die Zoomstufe beim Starten des Programms 1 0x erwiesen In Farbeinstellungen lassen sich die Farben f r die einzelnen Objekte anpassen Es lassen sich Farben f r die ersten 16 Boundaries festlegen existieren mehr als 16 Boundaries so wieder holen sich die Farben zyklisch Farbtransparenz erm glicht die Einstellung der Transparenz mit der die F llung von Boun daries von 2D Elementen Tris und Quads sowie von 3D Elementen Tetras und Hexas ver sehen wird Einzugeben sind ganze Zahlen zwischen 0 und 100 wobei 0 f r vollkommen trans parent und 100 f r nicht transparent steht Um Einstellungen auf das 3D Fenster anzuwenden mu dieses zun chst aktualisiert werden durch Anklicken des Aktualisieren Knopfes Es lassen sich mehrere der Optionen Dialoge ffnen um schnell versc
144. al excep tion the source code distributed need not include anything that is normally distributed in either source or binary form with the major components compiler kernel and so on of the operating system on which the executable runs unless that component itself accompanies the executable 294 ANHANGE LIZENZ If distribution of executable or object code is made by offering access to copy from a designated place then offering equivalent access to copy the source code from the same place counts as distribution of the source code even though third parties are not compelled to copy the source along with the object code You may not copy modify sublicense or distribute the Program except as expressly pro vided under this License Any attempt otherwise to copy modify sublicense or distribute the Program is void and will automatically terminate your rights under this License Ho wever parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance You are not required to accept this License since you have not signed it However nothing else grants you permission to modify or distribute the Program or its derivative works These actions are prohibited by law if you do not accept this License Therefo re by modifying or distributing the Program or any work based on the Program you indicate your acceptance of this License to do so
145. al keywords can be entered one for cells and one for nodes However both keywords must contain the same material names in the same order Material data can be used to distinguish between different classes of cell or node data besides the normal engineering material definitions For example the material data can be density layers for an ocean model horizons in seismic data or rock layers in a reservoir model Material data input may also be performed by consulting a remote file see the fromfile des cription below but only if the remote file contains only one material keyword D 2 SPEZIFIKATION DES GMV FORMATS 255 Velocities The keyword velocity indicates that optional velocity data follows Again the da ta_type value of 0 indicates cell centered velocities a value of 1 indicates node centered ve locities and a value of 2 indicates face centered velocities The next three lines of data are the u x component v y component and w z component velocity floating point arrays Cell centered velocities will be averaged and saved as node centered velocities Also speed and kinetic energy variable fields will be automatically generated and added to the end of the input variable fields Face centered velocities can only be entered when faces or vfaces are used to define cells Up to three velocity keywords can be entered one for cells one for nodes and one for faces Variable data fields The variable keyword is used to denote the beginnin
146. ame Der Name der Variablen die gefiltert werden soll z B pressure A 6 VISION DIE VISUALISIERUNG DER ERGEBNISSE 161 Surface3DFilter Dieser Filter ben tigt f r eine korrekte 3D Darstellung einer 2D Domain einen Skalierungsfaktor um die Z Werte geeignet darstellen zu k nnen scale parameter Der Skalierungsfaktor mit dem die Z Werte auf eine geeignete Skala skaliert werden k nnen Mapper Arrow2DMapper Der Arrow2DMapper visualisiert Vektoren in einer 2D Domain durch ge richtete Pfeile Die Parameter Visualization Method Beeinflusst die Art in der die Werte dargestellt werden Einstellbar sind Visualisierung durch a Dicke der Pfeile b L nge der Pfeile und c Farbe der Pfeile Maximum Arrow Length Legt die maximale L nge der Pfeile im erzeugten Scene Graphen fest Arrowlength Legt die konstante L nge der Pfeile bei ausgew hlter Visualisierungsmethode Visuali sierung durch Farbe fest Arrowwidth Legt die konstante Dicke der Pfeile fest Arrowcolor Legt die konstante Farbe der Pfeile bei ausgew hlter Visualisierungsmethode Visuali sierung durch L nge Dicke fest MaxColor Value Bestimmt die obere Schranke des Farbraums auf der verwendeten Legende MinColor Value Bestimmt die untere Schranke des Farbraums auf der verwendeten Legende Arrow3DMapper Der Arrow3DMapper visualisiert Vektoren in einer 3D Domain durch ge richtete Pfeile Die Parameter Visualization Method Beeinfluss
147. amme und Tortendiagramme Balkendiagramme engl bar charts stellen Va riablen als horizontale oder vertikale Balken dar deren Werte durch die L nge repr sentiert wird Eine verwandte Art stellen die Tortendiagramme dar bei denen Variablen als Torten st cke eines Ganzen visualisiert werden die die Relationen zwischen den verschiedenen Wer ten wiedergeben Histogramme Histogramme stellen eine etwas andere Art der Visualisierung dar denn hier werden die Daten nicht direkt dargestellt sondern die H ufigkeit von Werten Daf r wird der Wertebereich der Funktion in Intervalle unterteilt und dann f r alle Intervalle die Anzahl aller Werte die in dieses Intervall fallen bestimmt Die so ermittelten H ufigkeiten werden danach als Balkendiagramm ausgegeben Techniken f r zweidimensionale Funktionen Bei den zweidimensionalen Funktionen x1 2 f x1 2 gibt es zun chst analog zu den eindimensionalen Funktionen die M glichkeit Balken oder Histogramme einzusetzen da die se sich ohne Probleme erweitern lassen Weiterhin unterscheidet man zwei Klassen von Funk tionen je nachdem wie die Funktionswerte vorliegen ob sie auf einem wie auch immer struk turierten Gitter oder beliebig verstreut liegen 40 KAPITEL 2 GRUNDLAGEN Isolines Isolinien engl isolines verbinden im zweidimensionalen Raum alle Punkte die den gleichen Wert haben wobei diese Werte Parameter der Darstellung sind Als Beispiel kann man sich hier Landkarten
148. and the section as a whole is intended to apply in other circumstances It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system it is up to the author donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License 10 11 12 295 If the distribution and or use of the Program is restricted in certain countries either by pa tents or by copyrighted interfaces the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries so that distribution is permitted only in or among countries not thus ex cluded In such case this License incorporates the limitation as if written in the body of this License The Free Software Foundation may publish revised and or new versions of the General Public License from time to time Such new versions will be similar in spirit to the
149. andlung die Hilfe Datenbank und die Benutzer Optionen Daten strukturen gemeint Am wichtigsten ist das Paket devisor grid main das die Startklasse GridApp und die Haupt fensterklasse GridMainFrame enth lt Mit GridApp wird das Programm gestartet und es wer den Einstellungen aus einer Konfigurationsdatei oder falls nicht vorhanden hartkodiert ber nommen GridMainFrame enth lt Instanzen von fast allen Klassen von devisor framework und devisor grid und verwaltet diese Sie kann als die Kernklasse des GRID Pakets bezeichnet werden Sie ist die Kontrollklasse die sowohl ber die Schnittstelle zum Benutzer als auch ber die Zuweisung an die Entity Klassen verf gt Die Funktionalit t wird ber weitere Klassen abgebildet z B werden die Elemente ber Dialoge oder MouseListener gesetzt die aber At tribute von GridMainFrame sind und dadurch direkt mit aktualisiert werden wenn sich etwas an den internen Datenstrukturen ndert F r viele der Kn pfe mit einer simplen Funktionali t t wie z B Beenden wurde keine explizite Event Handler Klasse geschrieben sondern je weils eine interne Klasse vom Typ ActionListener definiert in der dann die Event Behandlung stattfindet GridMainFrame enth lt vier Instanzen der Subklassen des devisor framework viewer ViewerPanel Auf diesen wird dann aus verschiedenen Sichten die Domain dargestellt Beim ersten Start kann es sehr wohl sein da die Konfigurationsdatei noch nicht erstellt w
150. angen Der Abschnitt schlie t mit einer theoretischen Un tersuchung der Anwendbarkeit von computational steering Konzepten 6 KAPITEL 1 EINLEITUNG e Kapitel 2 3 f hrt in das wissenschaftliche Rechnen ein Die praktische Umsetzung der mathematischen Verfahren in Simulationszyklen ist der Kernpunkt dieses Abschnitts e Kapitel 2 4 f hrt in die Grundlagen der wissenschaftlichen Visualisierung von skalaren und vektoriellen Daten ein Da es eine Unmenge an Verfahren gibt wird zun chst eine Katalogisierung vorgenommen um dann einige typische Beispiele zu erl utern e Kapitel 2 5 beschreibt im Anschlu die verwendeten Datenformate die die Projektgrup pe teils zur Dateneingabe teils zur Ausgabe der Programmergebnisse verwendet e Kapitel 2 6 schlie t mit der Erl uterung der von der Projektgruppe verwendete Program me sowohl Programmierumgebungen im weitesten Sinne als auch ein exemplarisches Paket zur numerischen Str mungssimulation Es kann jedoch nur ein kurzer berblick gegeben werden f r weiterf hrende Details wird auf Sekund rliteratur verwiesen Das darauf folgende Kapitel 3 stellt das von der Projektgruppe entwickelte System vor und zwar zun chst das allgemeine Konzept und danach die konkrete Arbeitsweise der verschiede nen Teilprogramme In diesem Abschnitt findet sich beispielsweise die Beschreibung wichtiger Algorithmen sofern nicht bereits im Grundlagenkapitel2 gescheh
151. arbeiten Soweit es nicht anders in den Optionen siehe unten festgelegt ist A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER141 Quads hinzuf gen Die bisher erw hnten Elemente k nnen sowohl in 3D als auch in 2D Domains vorkommen Die folgenden Boundary Elemente k nnen nur erstellt werden wenn sie in dem ihnen zuge h rigen Modus aktiv sind Beim Umschalten der Modi siehe unten werden die nicht zu dem Modus geh rende Elemente ausgeblendet aber nicht entfernt Dies gilt vor allem beim Un schalten von 2D in den 3D Modus Das Werkzeug SegmentList hinzuf gen ist ein 2D Wekzeug Damit kann man eine Boun dary Randbeschreibung vom Typ Boundary Segment Liste erstellen Diese besteht aus einer Menge von Kanten und einer Menge von Kreissegmenten Dieses Polygon darf nicht offen sein Man kann wie gewohnt durch Klicken auf die entsprechenden Knotenpositionen die Kan ten nacheinander erzeugen wobei angenommen wird da der Endknoten der letzten Kante des letzten Kreissegments der Startknoten der n chsten ist Der Endknoten des letzten Seg ments mu der Startknoten des ersten sein Um Kreissegmente im Uhrzeigersinn zu erzeugen h lt man die linke Maustaste gedr ckt und zieht in die beliebige Richtung ein Kreissegment wird mitgezeichnet Wenn man die Maustaste losl sst wird das Segment gezeichnet Wenn man Kreissegmente gegen den Uhrzeigersinn haben m chte dann h lt man bei dem gerade beschriebenen
152. as Beispielmodul n tig sind ExampleCommunicationThread Eine Erweiterung der abstrakten Klasse Abstract Commu nicationThread ExampleMC Aus didaktischen Gr nden wurde der Aufbau der n tigen Parameterlisten in diese isolierte Klasse verlagert C 5 5 devisor net debug Dieses Paket beinhaltet einige Testklassen um das Netzwerkpaket isoliert von graphischen Benutzeroberfl chen automatisch testen zu k nnen Au erdem dienen sie als Beispiel f r die Programmierbarbeit des Systems ControlProto Eine kleine Klasse mit graphischem Frontend mit der Protokollbefehle aus Da teien geladen werden k nnen und an einen Server bermittelt werden k nnen Sie dient zum interaktiven Testen des Servers ControlTest Die ausf hrliche Beispielklasse zur Programmierbarbeit Der Name ist etwas ir ref hrend getestet wird das Netzwerk aus der Sicht des CONTROL Moduls bzw unter Verwendung des ControlWrapper GridTest VisionTest Diese Klassen simulieren den automatischen Start und die Konfigurati on der Module GRID und VISION 226 ANHANG C API DOKUMENTATION C 6 Das Paket NEXUS In diesem Unterkapitel werden die Routinen des Linkmoduls mit den Parameterlisten darge stellt die die Kommunikation zum Serverproze realisieren Die Bindungs haben einen Unter strich im Namen der in C Programmen auch angegeben werden mu w hrend der Unterstrich in Fortran Programmen weggelassen werden mu C 6 1 API Dokumentation void dllm_result_avail
153. at contain the number of vertices in the facet and the nodes that define the facet Surface materials The keyword surfmats denoting surface material data is an optional but highly recommended input data type Up to 128 materials are allowed After the keyword line of surface material data is the surface facet centered material ids this is an integer array Surface velocities The keyword surfvel indicates that optional surface velocity data follows The next three lines of data are the u x component v y component and w z component surface velocity floating point arrays Speed and kinetic energy variable fields will be automa tically generated and added to the end of the surface input variable fields Surface variable data fields The surfvars keyword is used to denote the beginning of any other surface data fields The data are entered as a group for each field variable Up to 100 different field variables are allowed and each field variable is named by the user The endsvars keyword is used to end the field data input Each field data variable is defined by two input lines The first line contains the eight character name of the variable The second line is the floating point array for the surface data D 2 SPEZIFIKATION DES GMV FORMATS 257 Surface Selection Flags The surfflag keyword means that integer selection flag data sets follow Up to 10 different types of selection flags and up to 128 different flag values per flag are allowed
154. ation um und bergibt die Daten an eine Methode des Zielmoduls 5 Das Zielmodul reagiert entsprechend und generiert entweder eine Statusmeldung eine Liste bereits generierter Ergebnisse oder hnliches 6 Diese Informationen gehen als R ckgabewert wieder an den Wrapper der sie auf analoge Weise auf den Weg zum Kontrollmodul schickt Insbesondere gibt es f r jedes Datum das ber das Netz verschickt werden soll zwei qui valente Repr sentationen Programmintern werden die Daten objektbasiert bzw record basiert verwaltet F r die Versendung ber das Netzwerk gibt es jeweils eine Repr sentation als Teil des von der Projektgruppe spezifizierten Protokolls Beide Darstellungen sind bijektiv ineinan der berf hrbar die Umwandlung bernehmen die Komponenten NEXUS und NET 3 1 2 Beispielszenario Es soll das Szenario aus Abbildung 3 1 betrachtet werden Der Benutzer verwendet eine In stanz des CONTROL Moduls auf seinem lokalen Computer Er m chte eine Simulation auf einem entfernten Supercomputer durchf hren und die Ergebnisse direkt auf einer Graphik workstation in Form einer Animation visualisieren lassen Der gerenderte Film soll ebenso wie die Zwischenergebnisse die die Numeriksoftware produziert hat auf seinen lokalen Rech ner zur Weiterverwendung transferiert werden Eine genauere Detailstufe blendet die Netzwerkkomponenten ein Auf jedem Rechner l uft eine Instanz des Servers NEXUS Die in Java implementierte
155. ationsm glichkeiten C 5 DAS PAKET NET 225 CompleteConfiguration Ein einfacher Container um alle Informationen die zur Konfigura tion eines Moduls mit einem Problem n tig sind zusammen verwalten zu k nnen Kon kret handelt es sich um das zu l sende Problem die gesetzten Parameter und die globale Konfigurationsliste Statistics Ein Statistik Objekt kapselt alle zu einem Zeitschritt geh renden Statistikdaten Die Daten selbst stehen in Form einer Referenz auf eine ParameterList gef llt mit Instan zen der Klasse ScalarParameter zur Verf gung StatisticsList Eine einfache Listenumgebung f r obige Objekte Result TimeStep Instanzen dieser Klasse kapseln Ergebnisdaten oder konkreter Referenzen auf vorhandene Ergebnisdateien Ein Result kann zun chst mehrere Zeitschritte umfas sen die zu einem Zeitschritt geh renden Informationen werden dann in Referenzen auf Instanzen von TimeStep gespeichert ResultList Eine einfache Listenumgebung f r Ergebnisse C 5 4 devisor net example Dieses Paket enth lt ein vollst ndig implementiertes Beispielmodul das auch Kernkomponente des Tutorials zur Integration eines neuen Moduls ist s Kap B 2 ExampleModule Diese Klasse kapselt das Beispielmodul und implementiert seine zugege benerma en nicht wirklich sinnvolle Funktionalit t ExampleWrapper Diese Klasse erweitert den AbstractModuleWrapper aus dem devisor net wrappers Paket um die Funktionen die f r d
156. aus leichten Detail nderungen und Erweiterungen von existierenden abstrakten Klassen In einer Endlosschleife werden ankommende Verbindungen akzeptiert und basierend auf dieser Verbindung eine neue Instanz des ExampleCommunicati onThreads gestartet public class ExampleWrapper extends AbstractModuleWrapper public String getProtocolSubtype here we define the type of the module return Header CONTROL_NUMERICS public void startCommunication implementing this method is essential to instanciate the correct threads try while true block for incoming connections Socket socket serversocket accept socket setSoTimeout TIMEOUT and just start the thread we just defined one page ago new ExampleCommunicationThread socket DeViSoR 1 0 this start catch Exception ex some sort of exception handling Codebeispiel 28 Implementierung des Wrappers B 2 4 Implementierung des neuen Moduls Die Implementierung des neuen Moduls gestaltet sich etwas komplizierter da sowohl Modul als auch Netzwerkfunktionalit t implementiert werden m ssen Kurz zusammengefa t mu das Modul das Interface devisor net wrappers Wrappable implementieren Zun chst m ssen die n tigen Variablen deklariert werden essentiell sind dazu Referenzen auf die eben definierte Klasse ExampleWrapper Der Konstruktor setzt dann im wesentlichen nur Referenzen korrekt s Codebei
157. automatisch einzupflegen Haben aber beispielsweise zwei Entwickler an dersel ben Datei gearbeitet und konkurrierende Anderungen vorgenommen so verweigert CVS das 2 6 VERWENDETE PROGRAMME UND HILFSMITTEL 55 Einchecken und der Entwickler mu manuelle Korrekturen vornehmen So sichert CVS ein sauberes Repository Weitere Funktionalit ten sind die Verzweigung und Zusammenf hrung verschiedener Zweige der Entwicklung so kann z B gefahrlos experimentiert und anschlie end auf eine alte Ver sion zur ckgegriffen werden Au erdem bietet CVS den Zugriff auf die Datenbank per SSH ber das Internet an und so die M glichkeit weitverteilt an einem Projekt zu arbeiten Die Standardreferenz zu CVS ist das Buch von Cederquist 7 TogetherJ 6 0 Together 5 ist ein visuelles UML Modellierungswerkzeug f r Softwareentwicklung in Java C und weiteren Sprachen Es arbeitet direkt mit den Quelltexten der erstellten Projekte und kann dadurch leicht mit existierenden Entwicklungsumgebungen und Versionskontrollsyste men kombiniert werden UML steht f r unified modeling language und bietet eine einheitliche Darstellungsweise f r alle Phasen einer Softwarespezifikation Fallstudien Daten und Kon trollflu diagramme Klassendiagramme Sequenzdiagramme und viele andere mehr Ihe model is the code ist der Grundgedanke von Together Im Gegensatz zu anderen UML und Entwicklungswerkzeugen werden die Modelle in Together di
158. ber Eigenschaften wie bei den Kanten Fl chenstatus NONE INNER EXTERIOR und die Boundary Condition DIRICHLET NEUMANN Quad Die Quad Objekte beschreiben Vierecke im Raum und werden dementsprechend durch vier Knoten und vier Kanten dargestellt In 2D sind es vollst ndige Macro Objekte und haben wie die Tris entsprechende Eigenschaften Parallelblock Matrixblock und den Verfeinerungslevel Ein Anisotropie Faktor kommt hinzu und zus tzlich existie ren drei reelwertige Faktoren die die Richtung der Anisotropie bestimmen In 3D ist ein Quad eine Fl che eines Hexa Macro Objekts siehe unten und hat keine Macro Eigenschaften daf r aber die bei Tris schon erw hnten Eigenschaften den Fl chenstatus und die Boundary Condition Mit dem einen Schnittpunkt ist der gemeint der vom Benutzer vorher in dem Dialog ausgew hlt wurde Eine Boundary Triangulation kann auch nicht konvex sein und der Strahl kann auch demenstprechend mehrere Schnitt punkte haben Viele L ser akzeptieren nur konvexe 3D Boundary Objekte A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER151 Tetra Die Tetra Objekte beschreiben Tetraeder Objekte also Objekte die aus vier Knoten sechs Kanten und vier Tri Objekten bestehen Sie k nnen nur im 3D Modus erzeugt werden Sie haben wie andere vollst ndige Geometrie Objekte die Eigenschaften Paral lelblock Matrixblock und Verfeinerungslevel Hexa Die Hexa Objekte bestehen aus 8 Knoten 12 Kanten und
159. ber of 0 zero must be input Face data input may also be performed by consulting a remote file see the fromfile description below The cells keyword and the faces keyword must NOT both exist in the same GMV input file since they are alternate forms of the same mesh information Nodeids The keyword nodeids indicates that an optional list of alternate node id numbers follows These alternate id numbers are used for display and reference purposes within GMV Enter nnode integers Cellids The keyword cellids indicates that an optional list of alternate cell id numbers fol lows These alternate id numbers are used for display and reference purposes within GMV Enter ncell integers Faceids The keyword faceids indicates that an optional list of alternate face id numbers fol lows These alternate id numbers are used for display and reference purposes within GMV Enter nface integers Materials The keyword material denoting material data is an optional but highly recom mended input data type Up to 1000 materials are allowed On the keyword line are the varia bles nmats 1 to 1000 and data_type O means the material data is cell centered and 1 means the material data is node centered The next line of data is the eight character names given to the nmats materials Finally the last line of material data is the cell or node centered material ids this is an integer array Material data is necessary if surface polygons exist Up to two materi
160. bertragbar Zu unterscheiden ist zwischen Problemen im Ort und in der Zeit Die theoretische Untersuchung obiger Problemklassen parabolisch hyperbolisch und elliptisch im Ort f hrt zu den sogenannten Charakteristiken als prim res Unterschei dungsmerkmal Charakteristiken sind anschaulich Wellenfronten die Kurven im Raum fol gen und in einem Flu Gebiete trennen die schon beeinflu t wurden von Gebieten die noch nicht gest rt wurden Parabolische Probleme haben eine Charakteristik hyperbolische zwei und elliptische keine Es werden nun Abh ngigkeits und Einflu gebiete von Punkten auf einer Charakteristik untersucht die vollst ndige Durchf hrung dieser Analyse ist in 19 zu finden Dabei haben Punkte aus der domain of dependence einen Punkt P auf einer Charakteristik zu 2 3 WISSENSCHAFTLICHES RECHNEN 31 einem Randpunkt B vorher beeinflu t und P wirkt selbst auf Punkte aus der zone of influence Die folgende Abbildung zeigt das Ergebnis domain of dependence z Charakteristik Gebietsrand Abbildung 2 14 Einflu und Abh ngigkeitsgebiete f r parabolische hyperbolische und ellip tische Probleme nach 19 Parabolische Probleme sind demzufolge relativ gut f r die Untersuchung in computational steering Umgebungen geeignet da sie eine klare Trennung in Vergangenheit Gegenwart und Zukunft aufweisen Hyperbolische Probleme bieten je nach Verlau
161. blems Springer Verlag Jan 1987 18 HAIRER NORSETT und WANNER Solving Ordinary Differential Equations II Bd II Stiff Problems Springer Verlag Jan 1992 19 HIRSCH C Numerical computation of internal and external flows Band 1 Wiley 2000 20 JABLONOWSKI D BRUNET J BLISS B und HABER R VASE the Visualization and Application Steering Environment In SuperComputing 1993 Jan 1993 21 KOSTER M FEATFLOW in a Windows environment Techn Ber Universitat Dort mund Vogelpothsweg 87 2002 22 KRUSKA Wissenschaftliche Visualisierung Skript zur Vorlesung http phong informatik uni leipzig de kruska visuallecture html Jan 2000 23 LANE Scientific Visualization Kap Scientific Visualizaiton of Large Scale Unsteady Fluid Flows IEEE Computer Society Jan 1997 24 LUBER und HASTREITER Script of Lecture Scientific Visualization Universitat Erlagen Jan 1999 25 NUMERICAL ALGORITHMS GROUP IRIS Explorer Techn Ber IRIS Explorer Jan 2003 www nag co uk 26 ORTEGA F A The General Mesh Viewer Version 3 2 Los Alamos National Laboratory Jan 2003 http www xdiv lanl gov XCM gmv GMVHome html 27 PINNAU R H here Numerik II Theorie und Numerik elliptischer Differentialgleichun gen Vorlesungsskript TU Darmstadt 2001 28 QUICKTIME Apple Computer Inc QuickTime Documentation Techn Ber Apple Computer Inc QuickTime Documentation Jan 2003
162. bnisse auf einer Grafik Workstation durchgef hrt werden Dieses Sze nario ist mit dem DEVISOR leicht zu realisieren Die Realisierbarkeit eines computational steering Ansatzes in Verbindung mit einer verteilten Anwendung wurde von der Projektgruppe ebenfalls prototypisch sofern es ohne aufwendi ge Anpassungen des verwendeten Numerikpakets m glich war untersucht und im Rahmen der DEVISOR Spezifikation vorgenommen Eine gute Umschreibung f r das Ergebnis ist die Kassettenrekorder Metapher Der Benutzer kann eine Simulation nicht nur starten und been den sondern auch Funktionen wie Pause Zur ckspulen etc anwenden und in einer pausierten Berechnung jederzeit Zwischenergebnisse abfragen und visualisieren lassen Auch die Neu konfiguration einzelner Parameter ist m glich Die konkreten Minimalziele der Projektgruppe wurden folgenderma en festgelegt e dokumentierter Systementwurf e dokumentierte Implementierung des Systems und e Demonstration der Funktionalit t anhand einer vollst ndig durchgef hrten Simulation W hrend der Planungs und Spezifikationsphase s Kap 4 wurden diese allgemeinen Ziele konkretisiert e Das Programmpaket DEVISOR besteht aus den Komponenten VISION zur Ergebnis darstellung GRID zur Gittereditierung CONTROL zur Steuerung der einzelnen Modu le NEXUS als Hintergrundserver und Schnittstelle zu den Simulationsprogrammen und NET zur Kommunikation der Module untereinander e Das Modul CONTROL
163. ce material flag and polygon data within a single file that will be repeatedly be referenced by several GMV input files This constant file is tagged a fromfile in this implementation 258 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN D 2 4 Sample input data The following is a sample GMV input file in ASCII format It includes most of the features and commands GMV allows When read in the file creates a cube with several other different cell types attached to it The additional cells are one tetrahedral cell one prism cell one pyramid cell and one general cell The general cell has ten faces and could be described as an octagonal prism There is a large cube constructed from square polygons each with a different material that encloses all of the cells In addition variables tracers and flags with arbitrary data have been included so that you may see the format for entering such elements into an input file The keywords are italicized In addition blank lines have been inserted between major elements of the file for clarity but these are not necessary in a real input file The input data follows gmvinput ascii comments A set of comments endcomm nodes 28 0 50 50 00 0 50 50 29 20 295 25 50450 50 50 50 50 50 50 80 80 80 80 80 80 80 80 000 0 50 50 50 50 75 0 50 25 16 7 33 4 50 50 33 4 16270 O O L607 3334 90 50 33 4 02627 0 0350 50 70 0 50 0 0 50 25 80 80 65 0 0 16 7 33 4 50 50 33 4 16 7 0 0 16 7 33 4 50 50 33 4 16 7
164. close_stat Codebeispiel 60 Beispiel FeatPoisson Statistikgenerierung Die Statistikfile f r diesen Zeitschritt wird ge ffnet und die Statistikwerte werden in der in der Parameterdatei festgelegten Reihenfolge herausgeschrieben Danach wird die Datei wieder geschlossen Codebeispiel 60 if ICMD eq LOCUTUS_EXIT goto 3001 if ITIME gt MAXNITER goto 1 3000 GOTO 1000 3001 CONTINUE Codebeispiel 61 Beispiel FeatPoisson Ende der Hauptschleife Am Ende der Hauptschleife s Codebeispiel 61 werden Vorbereitungen f r den n chsten Zeit schritt getroffen und die Endbedingen berpr ft call dllm_link_exit GOTO 99999 99998 WRITE MTERM IER IER WRITE MTERM IN SUBROUTINE SUB call dllm_return_feat_errcode ier 99999 END Codebeispiel 62 Beispiel FeatPoisson Programmende und Fehlerbehandlung Codebeispiel 62 stellt den Code zur Programmbeendigung und zur Fehlerbehandlung dar B 4 Ein neues Element in GRID erstellen Hier wird exemplarisch beschrieben was man tun mu um ein neues 3D Zeichenelement in unserem Beispiel ein Cone Kegel in GRID hinzuzuf gen B 4 1 Modifikation am FEAST Format Ein Kegel ist ein Randbeschreibungsobjekt und besteht wie ein Zylinder aus zwei Punkten Nodes und einem Radius Damit dieser gespeichert wird mu das FEAST Format zun chst
165. d gleichzeitig der Konfigurationsdialog dargestellt in welchem die Art Anzahl und Konfiguration der Sta tistikdiagramme bestimmt werden k nnen Nach Abschluss der Konfiguration wird ein neues Fenster erzeugt das zun chst nur eine oder mehrere leere Statistikdiagramme enth lt Diese werden nun durch das CONTROL Modul durch den Aufruf der update Methode des Stat Managers mit Daten gef llt und stellen diese je nach Konfigurationseinstellungen dar Die update Methode nimmt hierbei entweder eine Instanz der Klasse Statistics oder Statistics List letztere enth lt sinnvollerweise eine Liste an Statistics Objekten Durch jedes Update werden die neu hinzugef gten Daten direkt und ohne Verz gerung dargestellt Ein Schlie en des Fensters versteckt dieses die Datenstruktur bleibt jedoch im Speicher erhalten und weitere Updates werden weiterhin ohne Darstellung eingearbeitet Ein Aufruf der Methode show bringt das versteckte Fenster wieder zur Anzeige 3 5 Das Modul GRID Das Modul GRID stellt dem Benutzer einen Editor f r zwei und dreidimensionale Gitter zur Verf gung Ein Gitter beschreibt den Rechenbereich einer Simulation und die kleinsten Re cheneinheiten die sogenannten Finiten Elemente Da die Anzahl der Gitterelemente in einer komplexen Rechnung eine Million bersteigen kann dient GRID als Editor f r Grobgitter die dann w hrend der Berechnung verfeinert werden Kap 2 4 Das Modul besteht aus zwei Teilen Zum einen gibt
166. d h das Intervall wird quidistant unterteilt Die Gewichte sind durch w 0 5 wy 1 Wn 1 Wn 0 5 definiert Die Einzelfl chen ergeben sich folgenderma en F f ai h 1 2 f xo f x1 h F gt f a2 h 1 2 f 21 f x2 h USW Die so gewichtete Summe ergibt eine Approximation des Integrals Eine Variation benutzt nicht die Funktionswerte an den Teilintervallgrenzen sondern in den Mittelpunkten Dieses Verfahren hei t Mittelpunktverfahren Das zweite Verfahren geh rt zu der Klasse der sogenannten Interpolationsquadraturformeln Die grundlegende Idee hinter diesen Verfahren ist die die zu integrierende Funktion durch ihr Interpolationspolynom zu ersetzen und dieses Polynom dann exakt zu integrieren Ein Vertre ter dieser Klasse ist das Gau Verfahren welches die Nullstellen der sogenannten Legendre Polynome als St tzstellen benutzt Das Legendre Polynom 11 Ordnung hat folgende Gestalt 88179 4 230945 o 109395 45045 15015 693 x x x 4 x Aula 356 256 128 128 256 356 Die Gau Formel ist unter allen anderen Quadraturformeln dadurch ausgezeichnet da sie bei n gegebenen St tzstellen noch Polynome des Grades 2n 1 exakt integrieren kann Die Gewichte lassen sich nach folgender Formel ausrechnen 2 2 MATHEMATISCHER HINTERGRUND 25 To J Se Gee Abbildung 2 11 Legendre Polynom 11 Ordnung 1 Eragny Wk f II dz 1 jZ Tk j j k Diese A
167. d mit Format integer m ratio of completed cakulsions completed TextFleid mit Format Double cakuisiontime per imestep tak time Testhield mit Format Double Abbildung A 7 Das Konfigurationsfenster des Statistikmoduls Liniendiagramm horizontal erzeugt ein horizontal ausgerichtetes Liniendiagramm Liniendiagramm vertikal erzeugt ein vertikal ausgerichtetes Liniendiagramm Punktdiagramm horizontal erzeugt ein horizontal ausgerichtetes Punktdiagramm Punktdiagramm vertikal erzeugt ein vertikal ausgerichtetes Punktdiagramm Punkt Liniendiagramm horizontal erzeugt ein horizontal ausgerichtetes Liniendiagramm dessen einzelne Wertepunkte zwecks Hervorhebung als Punkte dargestellt werden Punkt Liniendiagramm vertikal erzeugt ein ebensolches Diagramm in vertikaler Ausrich tung Tortendiagramm erzeugt ein Tortendiagramm aus den ankommenden Daten zum Beispiel um Verh ltnisse darstellen zu k nnen Textuelle Darstellung erzeugt kein Diagramm sondern eine Textdarstellung der ankommen den Daten um diese beispielsweise von Hand berpr fen zu k nnen Wenn ein Diagramm im oberen Teil des Dialogfensters markiert ist wird dessen aktuelle Kon figuration im unteren Teil angezeigt und kann bearbeitet werden F r jede zur Verf gung ste hende Datengruppe wird hier die Bezeichnung Kurzbezeichnung und eine kurze Beschreibung ausgegeben Wenn eine Datengruppe im aktuell zu konfigurierenden Diagramm angezeigt wer den soll kann diese Datengru
168. dDescription il8n il8n selectionlist addParameter stat SelectionParameter generatestatistics new SelectionParameter INCREMENTSIMULATOR_GENERATESTATISTICS Generate statistics STAT true Select Statistics you want to be generated 0 1 new SelectionDescription il8n selectionlist selectionlist i18n conf addParameter generatestatistics Codebeispiel 26 Parameter zur Statistiksteuerung 188 ANHANG B ERWEITERUNGSM GLICHKEITEN B 2 2 Definition der unterst tzten Protokollbefehle Die Definition der unterst tzten Protokollbefehle ist noch einfacher durchzuf hren Die ab strakte Klasse devisor net wrappers AbstractCommunicationThread mu einfach erweitert werden und entsprechend einige Befehle blockiert werden Codebeispiel 27 zeigt wie dies umgesetzt werden kann B 2 TUTORIAL ZUR INTEGRATION EINES NEUEN MODULS IN DAS SYSTEM public class ExampleCommunicationThread extends AbstractCommunicationThread public void handleIncomingCommand Stri BufferedReader din PrintWriter dout throws NetException first redefine some reactions try this module does not support the if command equals Step command equals FastForward command equals Rewind ng command se commands command equals Pause command equals GetCurrentStatistics c
169. daryCones an die neu zu implementie 210 ANHANG B ERWEITERUNGSM GLICHKEITEN rende Zeichenroutine drawCones bergeben werden Beim Zeichnen sollte man ber cksichti gen ob die Objekte gef llt werden sollen ob sie versteckt sind und ob sie eventuell durch die ViewBox eingeschr nkt nur teilweise sichtbar sind Eine neue Maus Eingabe Routine hinzuf gen F r eine Maus Eingabe Routine mu man eine eigene Ereignisbehandlungsklasse schreiben Diese kommt in das Paket devisor grid event und wird z B AddConeListener genannt Diese ist f r Cone fast genauso wie die Klasse AddCylinderListener aufgebaut Man mu die ein zelnen Routinen f r ein zwei und drei Mausklicks modifizieren Die Zeichenroutinen k nnen m ssen aber nicht sich von der Zeichenroutine in DrawingArea unterscheiden Nun mu der neue Listener in devisor grid GridMainFrame deklariert werden Dazu mu ein neuer MouseModeListener z B mit dem Namen coneMouseListener deklariert werden Ein neues JRadioButtonMenultem coneMenultem sollte den Men eintrag repr sentieren Ein JToggleButton coneModeButton repr sentiert das neue Werkzeug in der Werkzeugleiste In der Methode createListeners kommt dann hinzu Codebeispiel 64 coneModeListener new MouseModeListener this GridManager ADD_CON Gl I Codebeispiel 64 Modifikation an der Methode create Listeners Vorher sollte man in der Klasse devisor grid backend GridManager die neue Konsta
170. dem Panel JSelectProblemPanel das in diesem Schritt gezeigt wird Bei erstmaliger Konfiguration werden die Parameterliste und die Konfigurationsliste neu geholt Bei erneuter Konfiguration hingegen erfolgt eine Abfrage ob die alten Einstellungen bernommen werden sollen oder ob die Konfiguration komplett neu erfolgen soll falls wieder das gleiche Problem gew hlt wird Im ersten Fall werden die aktuelle Parameter und Konfi gurationsliste bernommen die in dem zu dem Modul geh rigen ModuleObject gespeichert sind ansonsten werden eine neue Parameterliste und eine neue Konfigurationsliste vom Modul geholt Im zweiten und dritten Schritt werden die Parameterliste und die Konfigurationsliste in einem JDynamicGuiPanel dargestellt Genaugenommen handelt es sich um eine SplitPane die auf der linken Seite einen Baum enth lt der die Struktur der dynamischen GUI enth lt Die gegebene Parameterliste stellt die Wurzel dar und alle weiteren Knoten repr sentieren enthalte ne NodeParameter Ein NodeParameter enth lt selbst wieder Parameterlisten wodurch sich die Baumstruktur ergibt Alle weiteren Parameter einer Parameterliste wobei es sich um die bergebene Parameterliste oder um eine Parameterliste eines NodeParameter handeln kann stellen GUI Elemente dar und werden in einem Panel zusammengefa t F r die Verwaltung der Knoten des Baums gibt es die Klasse ParamTreeNode In ihr wird jeweils das Panel einer 76 KAPITEL 3 SYSTEMBESCHREIBUNG Parameter
171. den die Eingaben bernommen und das Fenster geschlossen bei Abbrechen schlie t sich das Fenster ohne die nderungen durchzuf hren Die einzelnen Eingabem glichkeiten werden in Kapitel A 5 4 beschrieben Zus tzlich zu den schon unter dem Men punkt Bearbeiten genannten Objekten existie ren hier auch Dialoge f r die Erstellung von Boundary Nodes und Boundary Nodes3D Diese besonderen Punkte werden nicht absolut plaziert sondern relativ zu einem ihnen zugeh ri gen Boundary Objekt Dabei wird nach 2D und 3D unterschieden denn die Punkte werden jeweils anders berechnet Die Eingabe geschieht in 3D ber die entsprechende Boundary und zwei Parameter Winkel so da die endg ltige Position anhand einer um den Mittelpunkt der Boundary gelegten Kugel in die die Boundary vollst ndig hineinpa t und dem Schnittpunkt der Linie aus dem Mittelpunkt der Kugel und dem Punkt auf der Kugel der anhand der zwei Winkel berechnet wird mit der Boundary berechnet In 2D bestimmt man bei einer Segmentliste das Segment und gibt durch einen Wert im Bereich 0 1 wo der Punkt prozentual auf diesem Segment erscheinen soll Der Men punkt Ansicht Ansicht Optionen Fenster a Zoom Stufe zur cksetzen trg R a Alles zeigen Strg A ey Reinzoomen Strg Plus Rauszoomen Strg Minus ate Point of interest Anzeigebereich 23 Sichtbarkeit Abbildung A 42 Das View Men Mit den Zoom Funktionen l t sich die Gr e
172. den Ergebnistransfer nicht blockierend zu realisieren Diese tempor re Verbindung wird beim Beenden der Methode wieder abgebaut Alle anderen Methoden erhalten als bergabeparameter eine bereits verbundene Modu le Instanz Der darin laufende KeepAliveThread wird kontrolliert beendet die entspre chende Kommunikationssequenz abgearbeitet und am Ende wird der KeepAliveThread wieder gestartet Struktur einer Methode Da eines der Entwurfsparadigmen fordert da jede Protokollsequenz beantwortet sein soll haben alle diese Methoden dieselbe Struktur 1 Binden der Socket an das Zielmodul oder Extraktion der bestehenden Verbindung aus dem Module Objekt Eventuell Beenden des laufenden KeepAliveThreads sofern n tig Instantiierung eines Header Objekts mit Projektkennzeichner und Benutzername und Aufruf seiner toProtocol Methode Generierung und Versendung der Anfrage an das Zielmodul Instantiierung einer Footer Instanz und Aufruf der toProtocol Methode 68 KAPITEL 3 SYSTEMBESCHREIBUNG 6 Warten auf die Antwort 7 Einlesen des Headers der Antwort 8 Instantiierung eines Interimsobjekts das den relevanten Teil der Antwort kapselt und Aufruf seiner fromProtocol Methode 9 Extraktion des Footers 10 Weiterverarbeitung der Antwort und entweder R ckgabe des entsprechenden Interims objekts oder Werfen einer NetException Der KeepAliveThread Da TCP IP Verbindungen nicht automatisch aufrecht gehalten werden
173. den W nschen des Anwenders hinsichtlich Leistungs f higkeit und Bedienbarkeit Erschwerend kommt hinzu da der modulare Ansatz bei diesen 1 3 AUFGABENSTELLUNG 3 Paketen nicht ber cksichtigt wurde der einfache Austausch einer Komponente gegen eine an dere als naheliegende L sung des Problems ist nur durch den Hersteller m glich Nachteile existierender Ans tze lassen sich wie folgt zusammenfassen Oft sind die mathematischen Komponenten nicht auf dem neuesten Stand der Forschung wie dies bei vielen kommerziellen Codes ein Beispiel hierf r ist das auf MATLAB ba sierende FEMLAB 9 zu beobachten ist Der Datenaustausch zwischen leistungsf higeren Komponenten scheitert an propriet ren nicht offen gelegten Formaten Leistungsf hige Pakete sind oft universit re Entwicklungen und zeichnen sich h ufig nicht durch Benutzerfreundlichkeit und eine zumutbare Einarbeitungszeit aus da auf die Entwicklung von intuitiven Benutzerschnittstellen dort kein Wert gelegt wird Relativ leistungsf hige kommerzielle Pakete wiederum sind f r viele Anwender einfach unbezahlbar ein Beispiel ist die Software FLUENT 12 e Die Netzwerktauglichkeit ist auch nicht selbstverst ndlich zus tzlich zu der langen Lauf zeit durch veraltete Verfahren kommt bei einer Simulation noch hinzu da sie auf dem heimischen PC durchgef hrt werden mu Das von der Projektgruppe entwickelte System versucht durch die Verfolgu
174. der Klasse GMVCell welches er in einen entsprechenden Vektor speichert Dieser Vektor wird beim Aktualisieren der VisionDomain bergeben e Feingitter Knoten Koordinaten e Feingitter Werte skalare vektorielle Auf diese Informationen wird dann wenn die Methode createFineGridCell benutzt wird zugegriffen und damit das gew nschte Objekt der Klasse FineGrid erstellt Zugriff auf ein FineGrid Objekt erfolgt ber seine Nummer die der Nummer der verfeinerten Grobgitterzelle entspricht 3 6 DAS MODUL VISION 91 Datenstruktur FineGrid Wie im Grundlagenkapitel bereits erw hnt erm glichen Zellen des Grobgitters immer bis auf konstruierte Trivialbeispiele nur Berechnungen ungen gender Pr zision Um genauere Be rechnungen durchf hren zu k nnen sind mehr Gitterpunkte n tig was durch ein Feingitter repr sentiert durch die Klasse FineGrid erreicht werden kann Wie im Abschnitt ber die VisionDomain Kapitel 3 6 9 bereits vorgestellt bietet die VisionDomain alle Methoden um f r die ben tigten Zellen ein Feingitter zu erstellen Das FineGrid Objekt ist von hnlicher Struktur wie die VisionDomain F r jeden Element typ ist ein Vektor enthalten der die Elemente aus denen das Feingitter besteht enth lt Die Nummer ber welche das Feingitter angesprochen werden kann entspricht der Nummer der Grobgitterzelle die es verfeinert Die wichtigste Methode der FineGrid Klasse ist public void createElements Diese Me
175. der Kante in obiger Liste mit negativer Bewertung Nachbarn fuer Edge 9 Indizes der noch nicht genannten Diagonalnachbarn 23 4 Diagonalnachbarn fuer Punkt 5 Index des Parallelblocks des Makros Index des Matrixblocks des Makros 0 0 5 On 045 0497 05 0 5 Refinementlevel Refinementmodus Faktorl Faktor6 N SH E HEHE H oO oO oO ep 4 0 0 0 PPPP nachstes Element Typ Tetra 3 4 Knoten 8 9 4 3 Kanten 5 6 Seitendreieck 6 7 45 3 HE A J4 N ol Oy 7 88 Fl chennachbarn 2 7 Kantennachbarn Details f r Kante mit Index 5 2 3 Diagonalnachbarn Details f r Kante mit Index 3 Details f r Kante mit Index 4 Parallelblock Matrixblock evel OWN WND BN OW OO Se SE HEHE HE Codebeispiel 94 Spezifikation des FEAST Formats in 3D Elemente D 2 Spezifikation des GM V Formats Die folgende Spezifikation ist 26 entnommen Auf eine bersetzung wurde verzichtet D 2 1 Input Specifications The format for GMV s input file follows Please note that there are relatively few required entries most data is optional and keywords are used to identify its type The data on the file can be either formatted ASCH or IEEE unformatted but not both Keywords are italicized and data names are in boldface Example names for variables or flags are in double quotation marks A
176. der Klasse ParticleFunction gespeichert Beide Suchtypen werden in der Klasse ParticleTracingMapper durch die Methode public VisionHexa getNextHexa Point3d point VisionHexa oldHexa throws HexaNotFoundException realisiert f r jedes Element gibt eine entsprechende Methode Das bergebene Element ist das Element in welchem sich das Partikel zu dem letzten Zeit schritt befand Entspricht es dem null Objekt so wird eine lineare Suche ber alle im entspre chenden Vektor enthaltenen Elemente gestartet hexa null wich means looking for the first hexa of a computation aif else Vector hexaVector myDomain getVisionHexas Enumeration e hexaVector elements while e hasMoreElements amp amp hexaFound aktHexa VisionHexa e nextElement if aktHexa isInBoundingBox point if aktHexa isInElement point hexaFound true return aktHexa Codebeispiel 7 Lineare Zellsuche Man beachte da hier erst der Boundingboxtest angewandt wurde um die Effizienz zu stei gern Ist beim Aufruf der Suchmethode ein Element vorhanden in dem sich das Partikel zum letzten Zeitschritt befand so wird die Suche ber die Nachbarschaftsbeziehung gestartet Das Prinzip dieser Breitensuche basiert auf den Eltern Kind Beziehungen der devisor vision ds Objekte Jedes Objekt hat das Element als Parent von welchem es ein Teil darstellt So hat ein Vi sionQuad beispielsweise vier
177. deren Komponenten in Java Die Auswahl der Programmiersprache ist durch die angestrebte Zielplattform begr ndet NEXUS soll wie auch die Numeriksoftware auf Supercomputern lauff hig sein Die brigen Komponenten sollen berall plattform bergreifend einsetzbar sein damit war Java die erste Wahl f r die Implementierungssprache 57 58 KAPITEL 3 SYSTEMBESCHREIBUNG Die nun folgende allgemeine Beschreibung des Systems geschieht anhand einer prototypisch durchgef hrten Simulation Es wird bevorzugt Wert auf den Kontrollflu zwischen den ein zelnen Modulen gelegt und nicht so sehr auf die einzelnen Methoden Diese feine Detailstufe wird in den folgenden Unterkapiteln erl utert Zuvor wird jedoch allgemein auf den Datenflu zwischen den Modulen eingegangen 3 1 1 Datenflu zwischen den Modulen Der Datenflu von einem Modul zum anderen durchl uft folgende Stationen 1 Als Reaktion auf die Bet tigung eines GUI Elements wird vom CONTROL Modul aus eine Methode des ControlWrappers aufgerufen bergabeparameter sind Objekte aus dem interim Paket 2 Im Wrapper werden die bergebenen Informationen in einen Protokollbefehl bersetzt und an das Zielmodul versandt konkret an die NEXUS Instanz auf dem Zielrechner 3 Je nach Befehl startet NEXUS auf dem Zielrechner ein neues Modul oder leitet den Be fehl an den Wrapper des Moduls weiter 4 Der Wrapper des Zielmoduls wandelt den Befehl wieder in eine objektbasierte Repr sent
178. deren Pfeil in die entgegengesetzte Richtung dr ckt wird die vorherige Ansicht wierderhergestellt Dr ckt man wieder auf den Pfeil zum Fenster hin wird dieses nun von dem anderen berdeckt hnliche Fenstermanipulationen k nnen in der Men leiste unter dem Men Windows vorgenommen werden Das 3D Fenster Obwohl das schwarze Voransichtsfenster unten rechts in der Ecke zusam men mit den Arbeitsfenstern angeordnet ist ist es kein Editierfenster sondern ein dreidimen sionaler Betrachter der erstellten Objekte Wenn man die rechte Maustaste h lt und die Maus verschiebt verschiebt sich das Objekt in der zum Fenster parallelen Ebene Wenn man die mittlere Maustaste h lt dann verschiebt sich das Objekt in der zum Fenster senkrechten Ebene d h wenn man nach vorne mit der Maus f hrt dann entfernt sich das Objekt vom Betracher wenn man zur ck f hrt dann kommt das Objekt dem Betrachter entgegen bis es hinter ihm aus dem Sichtfeld verschwindet Hinzu kommt noch die gleiche Vorgehensweise bei der linken Maustaste um die Objekte zu drehen Die Toolbars Die Toolbars sind in verschiedene Gruppen aufgeteilt Die erste Gruppe enth lt alle Funktio nen die sich auf die aktuelle Domain beziehen also Laden Speichern Importieren Beenden usw Die zweite Gruppe enth lt Funktionen mit deren Hilfe man die Domain manipulieren kann Neben Funktionen wie Kopieren Einf gen und L schen hat man hier auch die M glich keit festzulege
179. description of the input line follows the data names or keywords Only gmvinput the file type node data cell or face data and endgmv are required everything else is optional D 2 SPEZIFIKATION DES GMV FORMATS 245 however except for material and velocity keywords each keyword may be used only once For example a second variable list is not allowed For IEEE unformatted files keywords must be written as eight character words 2 3 5 2 3 Abbildung D 2 cell numbering 1 tet hex and pyramid w 1 20 19 4 2 1 Abbildung D 3 cell numbering 1 prism phex8 and phex20 2 31 4 2 2 Abbildung D 4 cell numbering 1 3line 6tri Squad gmvinput file_type The first line identifies the file as a GMV input file with the file_type being either ascii ieee ieeeidr4 ieeeidr8 iecxidr4 or iecxidrd nodes nnodes Node points and number of points x nnodes Float x coordinates 246 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN 1 2 Abbildung D 5 cell numbering 1 ptet4 ptet10 and ppyrmd5 4 64 12 6 2 2 Abbildung D 6 cell numbering 1 ppyrmd13 pprism6 and pprism15 y nnodes Float y coordinates z nnodes Float z coordinates OR for a structured regular brick mesh nodes 1 nxv nyv nzv Dimensions of structured regular brick mesh x nxv
180. die vorher kopierte Auswahl kopiert und ein St ck weiter links hinten und oben eingef gt Was mit einem St ck gemeint ist h ngt von der aktuellen Zoom Stufe siehe unten ab Es erscheint auch ein kleiner Dialog in dem man genau eingeben kann wo die Kopie plaziert werden soll Es kann manchmal vorkommen da das Einf gen mi lingt weil an einer der neuen Stellen schon ein Knoten vorhanden ist Dies l t sich leicht beheben indem man das Einf gen noch mal versucht und dabei in dem Dialog einen anderen Wert f r die Positionierung der Kopie eingibt F r das L schen existiert das Werkzeug L schen Damit lassen sich ausgew hlte Knoten und die abh ngigen Objekte l schen Danach folgt der Men eintrag Ansicht verschieben Wenn dieser mit der linken Maustaste ausgew hlt wurde dann kann man das Sichtfenster verschieben und dadurch Einsicht in die bisher unsichtbaren Teile des Gesamtgitters gewinnen Um das zu erreichen plaziert man den Mauszeiger an eine beliebige Stelle im aktuellen Fenster dr ckt die linke Maustaste und h lt sie gedr ckt w hrend man die Maus in die zu dem freizulegenden Teil des Raums entgegen A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER137 Bearbeiten Dialoge Ansicht Optionen F A Kopieren Strg C j Einf gen Strg V i Ti L schen Entf jo M Ansicht verschieben F5 1 Ausw hlen F6 O E Auswahl verschieben F7 lo 4S Auswahl rotieren F o Ef Auswahl skalie
181. die auch Anti Gradient der dem linearen Gleichungssystem zugeord neten Funktion F u 1 2 Au u b u in den Punkten ut sind gaben dem CG Verfahren engl conjugate gradients seinen Na men Defektkorrekturverfahren Diese Klasse von Verfahren arbeitet so da sie zum Iterations vektor einen Korrekturwert hinzuaddiert und so n her an die L sung gelangt Zu l sen ist das lineare Gleichungssystem Ax b umgeschrieben x Ab x x A b x A Ax A b x A1 Ax b Als Iterationsverfahren formuliert lautet dies im Schritt k 1 xt x _ 4 1 Ax b Nun hat man noch nicht so viel gewonnen denn es bliebe immer noch die Aufgabe A zu berechnen Dies w rde wieder Zeit O N kosten F r diese sogenannte Vorkonditionierungs matrix ist es aber nicht notwendig die kompletten Eintr ge von A zu nehmen sondern nur Teile davon die einfacher zu invertieren sind Matrix C in der folgenden Gleichung Nimmt man z B nur die Diagonaleintr ge von A sind zur Invertierung nur deren Kehrwerte zu bil den und man spricht vom Jacobi Verfahren Nimmt man die untere Dreiecksmatrix hinzu die sich durch R ckw rtseinsetzen relativ leicht invertieren l t erh lt man das sogenannte Gau Seidel Verfahren Allerdings sind die Konvergenzraten bei diesen Verfahren so schlecht da sie als eigenst ndige L ser in der Praxis nicht verwendet werden Sie spielen aber eine wichtige Rolle in den noch folgenden Mehrgitterverfahren
182. dies f r komplexe realistische Probleme nicht mehr m glich In diesem Fall werden Verfahren der numerischen Simulation eingesetzt Dabei wird die L sung nicht exakt ermittelt sondern man n hert sich der tats chlichen L sung in meh reren Schritten immer genauer an Ein wesentlicher Ansatz der numerischen Simulation sind Finite Elemente Methoden FEM zur Einf hrung s 32 Kap 1 4 und 2 2 Ein typischer Arbeitszyklus beim Einsatz eines numerischen Simulationssystems sieht folgen derma en aus 1 Definition des Rechengebietes Gitters ber dem die Berechnung ausgef hrt wird Abb 1 1 2 Editieren diverser Konfigurationsdateien um die Simulationsparameter festzulegen 3 Starten der Simulation 4 Kontrolle der Simulation und Absch tzung ob die Simulation erfolgreich verl uft 5 Interpretation und Visualisierung der Ergebnisse Abb 1 2 2 KAPITEL 1 EINLEITUNG Die genannten Schritte werden so lange wiederholt bis das Ergebnis zufriedenstellend ist oder der Anwender aufgibt Abbildung 1 1 Beispielgitter f r eine zweidimensionale Fahrzeugkonfiguration die das Fahr zeug und einen Ausschnitt des umgebenden Raums umfa t Die Fahrzeugkontur ist unten links erkennbar an 9 Abbildung 1 2 Visualisierung einer Fahrzeugumstr mung wie sie auf G
183. diesem Paket implementieren das die beiden Methoden toProtocol und fromProtocol vorschreibt public void toProtocol PrintWriter outstream throws devisor net NetException public void fromProtocol BufferedReader instream throws devisor net NetException Codebeispiel 1 Das Interface Parsable 3 2 DAS MODUL NET 65 bergabeparameter ist jeweils ein Datenstrom Die Kontrolle ber den Datenflu liegt dabei allerdings immer bei den bergeordneten Klassen aus dem Paket wrappers Ein Beispiel soll dies verdeutlichen wobei die verwendeten Klassennamen erst in den folgenden Abschnitten erkl rt werden Im Protokoll gibt es einen Befehl der beim Server die Liste der vom jewei ligen Modul ben tigten Parameter anfordert Das Parsen der Antwort l uft nach folgendem Schema ab Der ControlWrapper s u instantiiert ein Objekt vom Typ Header tr gt die ben tigten Parameter wie Projektkennzeichner und Benutzername ein und bergibt dessen to Protocol Methode den Datenausgangsstrom aus der Socket die an den Server gebunden ist Die Instanz des Headers schreibt den quivalenten Protokollblock in den Datenstrom Danach sendet der Wrapper den Protokollbefehl Get ParameterListFor s Kap D 3 Das Sen den an den Server endet mit der Instantiierung und Versendung eines Objekts vom Typ Footer Damit ist der erste Teil der Kommunikationssequenz vollst ndig Die H llklasse erzeugt da nach eine leere Instanz der Klasse Header und be
184. dungsgeschwindigkeit Rechnerge schwindigkeit oder Benutzerverhalten sein Ein Quick Time Movie wird durch Addieren und Arrangieren von Spuren erstellt Die in einem Quick Time Film enthaltenen Medien k nnen 2 5 VERWENDETE DATENFORMATE 51 in der Datei selber enthalten sein eigenst ndiger Film oder in ein oder mehreren abh ngi gen Dateien abh ngiger Film Diese film externen abh ngigen Dateien k nnen sich auf dem selben oder einem anderen Computer befinden der ber das Internet erreichbar ist QuickTime Spuren k nnen bearbeitet werden ohne abh ngige Dateien zu ver ndern Beim Sichern kann ausgew hlt werden ob ein Film abh ngig oder unabh ngig abgespeichert wird QuickTime kann Daten auf viele Arten komprimieren und dekomprimieren und versteht fast alle g ngigen Formate Diese Funktion kann sogar um neue Formate erweitert werden Zus tzlich unterst tzt das QuickTime Format noch streaming d h Audio oder Videodaten k nnen bereits w hrend der bertragung abgespielt werden im Idealfall bei hinreichend schnel ler Netzanbindung in Echtzeit Beim streaming werden Daten auf dem Rechner des Benutzers nur gepuffert und nicht permanent gespeichert Der Anbieter mu sich jedoch schon bei der Sicherung der QuickTime Datei entscheiden ob sie streaming unterst tzen soll oder nicht Es gibt viel Literatur zu QuickTime hier sei als Einstieg die Entwicklerseite von Apple selbst 28 empfohlen 2 5 3 Gitter und Geometri
185. e 1 pressure_data nnodes flow 2 flow_data nfaces endvars Keyword indicating end of variable data subvars Keyword indicating that other cell or node data sets for a subset of the mesh follows The data sets have the form anyname data_type num_elem An eight character name for the data the data type O cells I nodes 2 faces the number of elements in the subset elem_ids num_elem array of integer cells nodes or faces in the subset data num_elem array of float data Examples DO NOT use quotes in actual file bdryt 0 10 569 13 28 101 150 181 210 300 0 5 0 5 1 2 3 4 6 1 0 5 1 8 0 1 2 2 3 3 intp 15 12367 9 8 10 0 11 0 0 2 2 2 facefl 2 8 20 30 40 50 60 70 90 100 100 0 200 0 300 0 10 0 12 2 8 5 2 8 0 0 endsubv Keyword indicating end of subvars data flags Keyword indicating that selection flag data sets follow The data sets have the form anyname ntypes data_type Flag name number of flag types and data type O cells l nodes flagnames ntypes 8 character flag type names iflag ncells Integer flag ids for cells or iflag nnodes Integer flag ids for nodes Examples nodetype 4 1 99 998 gt 9 inactive interior interfac boundary 250 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN node_data nnodes censtrain 3 0 static piston air cnst_data ncells endflag Keyword indicating end of flag data polygons Keyword indica
186. e die ein Benutzer interaktiv mit der Maus oder der Tastatur ausl sen kann vordefiniert und k nnen einfach den Komponenten zugeordnet werden z B Klickereignisse f r Schaltfl chen und Men s Drag amp Drop Ereignisse f r Fenster etc Die Anatomie eines Java Swing Programms Um eine GUI mit Java Swing zu erstellen sind vier Schritte durchzuf hren 1 Die einzelnen Komponenten Buttons Listen usw erzeugen und konfigurieren 2 Die Komponenten in unterschiedliche Container einf gen z B Fenster und Dialogbo xen 3 Die Komponenten innerhalb des Containers anordnen 4 Festlegen welche Komponenten welche Ereignisse ausl sen und Routinen zur Abarbei tung der Ereignisse schreiben Falls trotz der F lle an Komponenten gerade die passende nicht zur Hand ist k nnen neue Komponenten einfach durch die Vererbung erzeugt werden Ausf hrliche Informationen zu Swing und ein gut zu verstehendes Tutorial nebst Referenz findet sich unter 35 Swing ist Bestandteil jedes Java Software Development Kit ab Version 2 und mu nicht separat installiert werden Java 3D Die Java 3D API s 42 ist eine Sammlung von Klassen zur schnellen Erstellung von 3D Objekten Animationen sowie Interaktionen zwischen diesen Java 3D ist szenengraphbasiert s Kap 2 1 2 Die Klassen unterteilen sich in Core Klassen und Utility Klassen Die Utility Klassen bieten dem Anwender schon teilweise vorgefertigte L sungen um den Aufwand zur Erste
187. e Art gro e Datenmengen darzustellen Dabei wird zur Darstellung f r jeden Wert ein Symbol bliche Symbole sind z B Punkte Kreise oder Dreiecke in das Diagramm eingezeichnet Durch unterschiedliche Sym bole f r verschiedene Variablen lassen sich mehrere Diagramme zusammenfassen und so die bersichtlichkeit evtl steigern Dieses Vorgehen ist zun chst dimensionsunabh ngig Daten k nnen auf einer Achse in einer Ebene s Abbildung oder in einem Quader dargestellt werden a positive Korrelation b negative Korrelation c keine Korrelation Abbildung 2 16 Verschiedene 2D Streudiagramme 2 4 WISSENSCHAFTLICHE VISUALISIERUNG VON SIMULATIONSDATEN 39 Techniken f r eindimensionale Funktionen Eindimensionale Funktionen sind der wohl einfachste Fall denn die Daten werden hier von einer einfachen Funktion x gt f x bestimmt Als Techniken zur Darstellung von eindimen sionalen Funktionen existieren beispielsweise Linien Balken und Tortendiagramme sowie Histogramme Liniendiagramme Bei Liniendiagrammen engl line graphs wird die zugrunde liegende Funktion entlang der Werte gezeichnet Falls die zu zeichnende Funktion nicht direkt bekannt ist mu interpoliert werden indem z B benachbarte Funktionswerte durch Geradensegmente verbunden werden s Abb 2 17 Abbildung 2 17 Liniendiagramm mit linearer Interpolation Balkendiagr
188. e wohl bekannte Konstruktionsmethode zum Erstellen von Dreiecken aus beliebigen Punktmengen ist die von Delaunay engl Delaunay triangulation nachzule sen u a in 1 Dieses Oberfl chennetz kann man dann auf eine Ebene projeziert oder ber ein 3D System ausgeben Zus tzlich dazu werden nicht sichtbare Linien meistens aus der Ausgabe entfernt was aber nicht unbedingt n tig ist Vertiefende Literatur zu Netzen findet sich in 4 Shaded Surfaces Beleuchtete Dreiecksnetze oder shaded surfaces bauen auf den Oberfl chennetzen auf indem zun chst eine einfarbige Textur ber die Oberfl che gelegt wird Da nach werden die Normalenvektoren an den Oberfl chenpunkten bestimmt und zum Schlu eine Lichtquelle eingef gt welche die Oberfl che beleuchtet Alternativ kann die Oberfl chentextur nat rlich beliebig gef rbt sein z B ein Shaded Plot der Funktion siehe auch bei H henfeldern 2 4 3 42 KAPITEL 2 GRUNDLAGEN a ein Gitternetz b und als Shaded Surface Abbildung 2 20 Gitternetze un bzw beleuchtet H henfelder Zum Abschlu der Techniken f r zweidimensionale Funktionen seien hier noch kurz die H henfelder engl height fields erw hnt mit denen es m glich ist zwei skalare Funk tionen in einem Bild darzustellen da die Daten nicht nur planar auf Isolinien oder Farben ab gebildet werden sondern zus tzlich auch auf eine dritte Raumkoordinate Im ersten Schritt wird zun chst f
189. ebeispiel 160 GetStatusReply protocol command 280 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN Parameterdefinition NODE NodeParameter ID INT parameter id Name GOODSTRING parameter name ShortName GOODSTRING shortname Reconfigurable CONSTSTRING TRUE FALSE Description GOODSTRING text End_Description SCALAR VECTOR GRID FUNCTION SELECTION NOD End_NodeParameter Gl i Codebeispiel 161 NodeParameter protocol definition SETNOD za rae ll SetNodeParameter ID INT parameter id SETSCALAR SETVECTOR SETGRID SETFUNCTION SETSELECTION SETNODE End _SetNodeParameter Codebeispiel 162 SetNodeParameter protocol definition D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 281 SCALAR ScalarParameter ID INT parameter id Name GOODSTRING parameter name ShortName GOODSTRING shortname Reconfigurable CONSTSTRING TRUE FALSE Description GOODSTRING text End_Description Format CONSTSTRING TYP inValue TYPE minimum T naw Gl axValue TYPE maximum Value TYPE default CONSTSTRING NON Unit GOODSTRING unitname ea Format Integer GUITEXTFIELD GUISLIDER GUIRADIOBUTTON
190. ebeispiel 78 Statistikbefehle 228 ANHANG C API DOKUMENTATION Die Routine schreibt den Integer Statistikwert value rsp den Double Statistikwert value in die mittels dllm_open_stat ge ffnete Statistikdatei Die Sequenz der d1lm_put_ stat Befehle mu mit der in der Parameterdatei definierten bereinstimmen int dllm_getresult char mask char pid char user int mid int ih int rid int nots int ts char servername int port Codebeispiel 79 Befehl zum Ergebnisdownload Die Routine holt vom Server welcher durch den Servernamen servername und den Port port spezifiziert ist die durch Module ID mid Problem ID pid Username user und Result ID rid definierten Ergebnisdateien Die gew nschten Zeitschritte werden im Integerarray t s bergeben die Anzahl der Zeitschritte in not s Die Dateien werden mit dem durch mask de finierten Namen und einer fortlaufenden Nummer abgespeichert Im Fehlerfall gibt die Routine einen Fehlercode zur ck define LOCUTUS_NOCMD 1 define LOCUTUS_OK 0 define LOCUTUS_READDATA 2 define LOCUTUS_START 3 define LOCUTUS_STOP 4 define LOCUTUS_STEP 5 define LOCUTUS_FORWARD 6 define LOCUTUS_REWIND 7 define LOCUTUS_EXIT 8 define LOCUTUS_UNKCMD 9 define LOCUTUS_PAUSE 10 define LOCUTUS_PASS 11 define LOCUTUS_GETSTATUS 12 define LOCUTUS_SETINTPAR 13 def
191. ebeschreibungen Geometriebeschreibungen k nnen sehr gro e Unterschiede aufweisen Constructive solid geometry beschreibt K rper hierarchisch aus Grundk rpern zusammen gesetzt unter Verwendung von regularisierten Mengenoperationen Oberfl chennetze beschreiben K rper durch ihre Oberfl che entweder als Bezier oder Spli nefl chen oder als Dreiecksnetze Implizite Funktionen stellen K rper als Nullstellenmenge einer oder mehrerer Funktionen dar Bei Gitterbeschreibungen ist nach den F higkeiten der zugrundeliegenden Numerikpakete zu unterscheiden Dreiecksbasierte Gitter sind wesentlich einfacher zu generieren Vierecksgitter zeichnen sich durch verbesserte numerische Stabilit t aus F r die Analoga im Dreidimensio nalen gilt hnliches Bei beiden Richtungen werden Gitter jedoch immer als Knoten und Ele mentlisten vorgegeben die Formate unterscheiden sich dann noch darin wie viele Zusatzinfor mationen beispielsweise zu Nachbarschaftsbeziehungen in die Gitterbeschreibung integriert wird Das von der Projektgruppe verwendete Format sollte zwei Kriterien erf llen offen und unter der GPL s 14 frei verf gbar Da diese Kriterien von propriet ren Formaten nicht erreicht werden wurde im Rahmen der Projektgruppe das bereits in FEAST im Einsatz befindliche Format FEAST gew hlt bzw diese Grundlage um eigene Anforderungen erg nzt Es ist ein Maximaldatenformat aus geometrischer Sicht d h es werden zu jeder Kante jeder Fl
192. eferring to freedom not price Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software and charge for this service if you wish that you receive source code or can get it if you want it that you can change the software or use pieces of it in new free programs and that you know you can do these things To protect your rights we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights These restrictions translate to certain responsibilities for you if you distribute copies of the software or if you modify it For example if you distribute copies of such a program whether gratis or for a fee you must give the recipients all the rights that you have You must make sure that they too receive or can get the source code And you must show them these terms so they know their rights We protect your rights with two steps 1 copyright the software and 2 offer you this license which gives you legal permission to copy distribute and or modify the software 291 292 ANHANGE LIZENZ Also for each author s protection and ours we want to make certain that everyone understands that there is no warranty for this free software If the software is modified by someone else and passed on we want its recipients to know that what they have is not the original so that any problems introduced by others will not reflect on the original autho
193. eht analog nur wird dieses Mal der MovieMaker des VISION Moduls ausgew hlt Da Filmgenerierung eine aufwendige Aufgabe ist wird der Benutzer das Modul dazu auf einer leistungsf higen Workstation starten Der Rohdatentransfer in Richtung VISION erfolgt wie oben beschrieben W hrend die Ani mation erstellt wird kann der Anwender die vom Numerikmodul generierten Ergebnisse und Statistiken auf seinen lokalen Computer transferieren 3 1 ALLGEMEINE BESCHREIBUNG 61 Ende der Simulation Ist der Anwender sicher die einzelnen Module und die von ihnen generierten Ergebnisse nicht mehr zu ben tigen so kann er einzelne Module oder das ganze Projekt s u beim Server l schen und somit nicht mehr ben tigten Plattenplatz freigeben Dies schlie t einen Simulationszyklus ab 3 1 3 Erg nzungen In diesem Abschnitt werden einige zus tzliche Funktionalit ten des Systems erl utert Benutzerkonten Der DEVISOR erlaubt den Zugriff auf die einzelnen Daten nur in Abh n gigkeit vom Benutzernamen Ein Passwortschutz wurde allerdings noch nicht implemen tiert Projekte Der Benutzer kann seine verschiedenen Simulationen in verschiedene Projekte ein ordnen Die oben beschriebene Membransimulation ist ein Beispiel f r ein solches Pro jekt macht aber bereits wichtigste Einschr nkung dieses Zugangs deutlich Daten k n nen zwischen den verschiedenen Modulen nur ausgetauscht werden wenn die Module demselben Projekt zugeordnet sind Zusammen mit den Benu
194. einem Fenster mitsamt Legende an Die Bedienung des VISION Fensters wird bereits in Kapitel A 5 3 beschrieben Durch einen Klick auf Ok wird die n chste Berechnung in der Pipe durchge f hrt und anschlie end angezeigt falls die Anzeige des n chsten Zeitschrittes konfigurativ er w nscht war 168 ANHANG A BENUTZERHANDBUCH Anhang B Erweiterungsm glichkeiten B 1 Einbau weiterer Visualisierungstechniken in das VISION Modul In diesem Abschnitt wird mittels kleiner Beispiele erl utert welche Arbeitsschritte notwendig sind um neue Visualisierungen zu integrieren Da der Datenflu innerhalb des VISION Pakets durch eine Visualisierungs Pipeline l uft der in drei Teile gegliedert ist vgl Kap 3 0 8 folgt auch dieses Kapitel dieser Gliederung um den Besonderheiten jedes Abschnitts der Pipeline gerecht zu werden Die zentrale Datenstruktur die VisionDomain wird in Kap 3 6 9 beschrieben B 1 1 Filter Um einen Filter in die Pipeline zu integrieren sind vier einfache Arbeitsschritte notwendig 1 Das Schreiben einer Klasse die das Interface devisor vision pipe filter I_Filter und das Interface devisor vision I_Configurable im plementiert Das passiert typischerweise indem sie von der Klasse AbstractFilter aus demselben Paket erbt 2 Die Implementierung der fehlenden Methoden 3 Das Einf gen des neuen Pipeline Elements zu der XML Datei devisor vision util Configurables xml
195. eingef rbt wie die Zahlen in dem Koordinatenfenster und es werden je nach Typ des ViewerPanels Top Front oder Side die richtigen Achsen ge setzt Dann kommt die Domain an die Reihe drawDomain drawBoundary so da alle vorhandenen sichtbaren Elemente auch wirklich richtig gezeichnet werden abh ngig davon ob die Elemente zu dem aktuellen Modus 2D oder 3D passen oder nicht Zus tzlich wird der POI point of interest gezeichnet drawPOT welcher den Mittelpunkt des aktuellen An sichtsfensters bestimmt Die Elemente Knoten in der Auswahl werden gesondert gezeich net drawSelection und auch die ViewBox markiert hier durch einen rechteckigen Rahmen die vom Benutzer gesetzten Grenzen der Ansicht drawViewBox Die Methode draw initiiert das Zeichnen all dieser Elemente Die abstrakte Klasse ViewerPanel und ihre Unterklassen ViewerPanel2D und ViewerPa nel3D beschreiben das eigentliche Fenster in das Instanzen von DrawingArea die Objekte malen Dieses besitzt Attribute um sich selbst als ein bestimmtes Fenster Top Front oder Si de mit bestimmten Eigenschaften z B ob es das aktive Fenster ist identifizieren zu k nnen Es enth lt Methoden zur Festlegung des aktuellen Ma stabes z B zoomToFit 3 5 4 Das Paket devisor grid Dieses Paket besteht aus einer Anzahl von Unterpaketen die daf r verantwortlich sind die grafische Schnittstelle zum Benutzer zu realisieren Damit sind vor allem das Hauptfenster die Dialoge die Ereignisbeh
196. einsetzens l t sich mittels der speziellen Vektoroperationen schreiben Dazu verwendet man die folgenden zwei erweiterten Vektoren T 1 2 x 8 0 2 Z4 u En42 O ER T 1 x 1 3 Z5 En 1 HU eR Damit lautet das R ckw rtseinsetzen x u c Q x 8 amp b Q x 8 amp d Or 2 12 Der Thomas Algorithmus ben tigt auf skalaren wie vektoriellen Architekturen 6n arithme tische Operationen Wie man an den Vektorgleichungen 2 11 und an der Deklaration der Hilfsvektoren sieht werden pro Reduktionsschritt etwa m Divisionen 8m Multiplikationen und 4m Additionen ben tigt insgesamt also 13m arithmetische Operationen Aus 2 12 liest man ab da das R ckw rtseinsetzen etwa 3 m 1 Multiplikationen und 2 m 1 Additionen kostet Damit erfordert jeder Reduktionsschritt insgesamt einen Rechenaufwand vom 18m Operatio nen 36 KAPITEL 2 GRUNDLAGEN Falls n 2 q N so kann die zyklische Reduktion genau q mal durchgef hrt werden das im q ten Schritt zu l sende Gleichungssystem besteht nur aus einer Gleichung in einer Unbe kannte und kann trivial gel st werden Da jeder Reduktionsschritt und jedes R ckw rtseinset zen den halben Rechenaufwand im Vergleich zum vorherigen ben tigt ergibt die Summation in diesem Fall einen Rechenaufwand von 18n arithmetischen Operationen Die Methode der zyklischen Reduktion ist also auf skalaren Rechnern in etwa
197. eispiel 35 Start Skript des Beispielmoduls start_examplemodule F r die hier verwendeten Umgebungsvariablen wird auf den Abschnitt Installation s Kap A 2 verwiesen Wichtig beide Skripte m ssen ausf hrbar sein B 3 EINBINDUNG ANDERER PROGRAMMPAKETE 195 Nun muss das Modul noch im Server eingetragen werden Dazu ist die Datei server c aus dem Server Verzeichnis zu editieren und dem Feld der Module ein neuer Eintrag hinzuzuf gen Die einzelnen Eintr ge sind Codebeispiel 36 zu entnehmen next free ID check thoroghly modules 4 moduleid 4 name strcpy modules 4 name Example type modules 4 type MODULETYPE_NUMERICS description strcpy modules 4 descr Example module start script strcpy modules 4 appl start_examplemodule init script strcpy modules 4 initappl modules module_example init_examplemodule server shall pipe commands through modules 4 modus TRUE Codebeispiel 36 Eintragen des Beispielmoduls in den Server Nach einer kompletten Neukompilierung des Servers und des Moduls ist die Integration abge schlossen B 3 Einbindung anderer Programmpakete Um andere Programmpakete in das DEVISOR Framework zu integrieren sind Modifikationen am Server NEXUS notwendig Dies soll im folgenden anhand des FEATPOISSON Moduls exemplarisch dargestellt werden Die Beispiele erfolgen in der Sprache C und nicht i
198. el 22 wird f r die Elemente der Pipeline aufgerufen die vom Benutzer tats chlich ausgew hlt wurden Der Parameter enth lt in der Regel eine ver k rzte Version der Parameterliste die von getParameterList abgefragt wurde Es befinden sich die Werte der Parameter in der Liste Der Aufbau dieser Methode orientiert sich h ufig stark an der getParameterList Methode B 2 Tutorial zur Integration eines neuen Moduls in das System In diesem Abschnitt wird in Form eines Tutorials erl utert wie ein neues Modul an den DE VISOR angebunden wird Da insbesondere das Modul NET s Kap 3 2 bereits Parser f r das komplette Protokoll s Kap D 3 zur Verf gung stellt geschieht dies beispielhaft am Exam pleModule das als Referenz auch Teil der Distribution ist Es befindet sich im Paket devi sor net example Die Integration l t sich folgenderma en gliedern 1 Definition der unterst tzten Probleme und dazu notwendiger Parameterlisten 2 Definition der unterst tzten Protokollbefehle 3 Implementierung des Wrappers f r das neue Modul 4 Implementierung des neuen Moduls und 5 Anbindung an den Server NEXUS Diese Schritte werden im folgenden erkl rt B 2 1 Definition der unterst tzten Probleme und Parameterlisten Das Beispielmodul wird sich nicht durch allzu viel Funktionalit t auszeichnen um nicht vom Sinn dieses Tutorials abzulenken Es bietet lediglich die M glichkeit ausgehend von einem festen Startwert I
199. el2D viewers viewers 0 addMouseMotionListener oldml1 0 viewers 1 addMouseMotionListener oldml 1 viewers 2 addMouseMotionListener oldml 2 getStatusBar setText gridil8n getString AddConeHelp for int i 0 i lt 3 itt viewers i setInfo gridil8n getString AddConeMode break Se u on Se Se Codebeispiel 66 Modifikation in GridMainFrame changeMouseMode Einen neuen Dialog hinzuf gen Um einen neuen Dialog hinzuzuf gen erstellt man in dem Paket devisor grid dialogs eine Klasse z B mit dem Namen ConeDialog Sie wird analog zu der Klasse CylinderDialog erstellt In diesem Fall k nnte der Dialog sogar eins zu eins bernommen wer den nur die Verweise auf die Klassen der Domain m ssen entsprechend modifiziert werden In devisor grid GridMainFrame mu man wie beim MouseListener entsprechende Ver nde rungen vornehmen 1 2 coneDialog deklarieren in createDialogs initialisieren coneButton deklarieren und in createToolBar erstellen analog zu CylinderButton F r coneltem in createMenu die gleiche Prozedur Eine Zeile in changeViewMode im 2D Fall hinzuf gen Codebeispiel 67 coneDialog setVisible false Codebeispiel 67 Modifikation in GridMain Frame changeViewMode Die update Routine mu analog zum cylinderDialog aktualisiert werden 212 ANHANG B ERWEITERUNGSM GLICHKEITEN B 4 4 Weit
200. em vom Mapper bereitgestellten Szene Graphen Dazu werden zwar ausschlie lich Klassen der Java3D API benutzt aber dennoch erschien die Kapselung in eine selbst ndige Klasse und einen separaten Teil der Pipeline sinnvoll um sp tere Modifikationen so weit wie m glich zu vereinfachen 104 KAPITEL 3 SYSTEMBESCHREIBUNG Kapitel 4 Projektdurchf hrung und Organisation 4 1 Zeitlicher Ablauf 4 1 1 Seminarphase Die Arbeit der Projektgruppe begann mit einer Seminarphase in der jeder Teilnehmer ber Grundlagen des Projektgruppenthemas referierte Folgende Themen wurden behandelt e Grundlagen der 3D Grafik e Wissenschaftliche Visualisierung e Java 3D Netzwerkprogrammierung mit Java Java Swing Together und CVS Einf hrung in die existierende Simulationssoftware Visualisierungstool AVS Beispiel fiir ein existierendes modulares Visualisierungssy stem computational steering e Datenrepr sentation und Formate und e Grundlagen aus der numerischen Mathematik Viele der behandelten Themen finden sich auch in diesem Endbericht wieder s Kap 2 105 106 KAPITEL 4 PROJEKTDURCHF HRUNG 4 1 2 Spezifikationsphase Zu Beginn des Wintersemesters stand zun chst eine kleine Orientierungsphase auf dem Pro gramm Die Teilnehmer machten sich mit dem Zyklus der numerischen Str mungssimulation und der Bedienung von FEATFLOW exemplarisch am Membranproblem vertraut Nach etwa drei Wochen begann
201. en Kreise Circles erzeugen Quader Cubic les erzeugen Kugel Spheres erzeugen Zylinder Cylinders erzeugen Die Werkzeuge der Dialogs Toolbar Projekt Bearbeiten Osalone soana fi Abbildung A 28 Die Dialogs Toolbar Knotendialog anzeigen Nodes BoundaryNode Dialog anzeigen BoundaryNode3D Dialog anzeigen Kantendialog anzeigen Edges Tridialog anzeigen Quaddialog anzeigen Tetra dialog anzeigen Hexadialog anzeigen Kreisdialog anzeigen Circles Quaderdialog anzeigen Cubicles Kugeldialog anzeigen Spheres Zylinderdialog anzeigen Cylinder 134 ANHANG A BENUTZERHANDBUCH Die Statuszeile Die Beschriftung der unteren Zeile des Hauptfensters zeigt Hinweise zur Benutzung der aus gew hlten Werkzeuge und weist auf ver nderte Statusinformationen hin Sie gibt an ob eine bestimmte Aktion gelungen ist oder nicht Die Men leiste Domain Bearbeiten Dialoge Ansicht Optionen Fenster Abbildung A 29 Die Men leiste Unter der Hauptfenstertitelleiste befindet sich die Men leiste Diese besteht aus sieben Men punkten Domain Bearbeiten Dialoge Ansicht Optionen Fenster und Der Men punkt Domain DeViSoR Gnd L Bearbeiten Dialoge Ansic P3 Neue Domain E ffnen Strg O Speichern Strg S SA Importieren WaveFrond a Domain durchsuchen Strg B Ww ie Domain normalisieren Abbildung A 30 Das Domain Men In diesem Men punkt k nnen allgemeine Aktionen bez glich
202. en um neben ValueNodes auch andere Elemente der VisionDomain zu ber cksichtigen return bg Codebeispiel 16 Ausschnitt aus der buildSceneGraph Methode einer Mapper Klasse Die Importe sind abh ngig von der Implementierung des Mappers aber auf jeden Fall werden die folgenden ben tigt 178 ANHANG B ERWEITERUNGSM GLICHKEITEN import devisor net interim ListOfErrors import devisor net interim ParameterList import devisor vision I _Configurable import devisor vision ds VisionDomain import devisor vision util LegendLabel Codebeispiel 17 Die Importe der neuen Mapper Klasse Configurables xml Die Eintr ge in der Datei Configurables xml im Paket devisor vision util wurden bereits in Kap B 1 1 ausfiihrlich beschrieben Die dort f r Filter beschriebenen Techniken k nnen direkt auf Mapper bertragen werden Die Internationalisierung Die Eintr ge in der Datei FindConfigurablesi18n properties im Paket devisor vision util wurde bereits in B 1 1 ausf hrlich beschrieben Die dort f r Filter beschriebenen Techniken k nnen direkt auf Mapper bertragen werden B 1 3 Renderer Um einen Renderer in die Pipeline zu integrieren sind vier hnliche Arbeitsschritte notwendig 1 Das Schreiben einer Klasse die das Interface devisor vision pipe renderer I_Renderer und das Interface devisor vision I_Configurable implementiert Das passiert typischer weise indem
203. en und Klassen bzw Metho den Auch die Paketeinteilung wird hier begr ndet Das Kapitel schlie t mit der Darstellung der Integration der verschiedenen Module und liefert insbesondere detaillierte Kontroll und Datenflu diagramme Das Kapitel 4 befa t sich mit der Durchf hrung des Projektes insbesondere der Organisation innerhalb der Gruppe Der Anhang unterteilt sich in vier gro e Bl cke Im Benutzerhandbuch s Kap A wird die Bedienung des Systems erkl rt beginnend mit der Installation und einigen f r das Verst nd nis n tigen konzeptionellen Grundlagen Es folgen eine kurze das Schnelleinstieg Tutorial und eine ausgiebige Anleitung Im Anschlu werden m gliche Erweiterungen diskutiert und in Form von Tutorials auch konkret vorgestellt Einbau weiterer Visualisierungstechniken in das Modul VISION Integration v llig neuer Module und n tige Anpassungen f r die Verwen dung einer anderen Numeriksoftware Die Programmierschnittstelle API des Systems wird aus Platzgr nden in diesem Bericht nur in Kurzform auf Klassenebene nicht auf Methodene bene dokumentiert Es schlie t sich die Spezifikation der PG eigenen Formate und Protokolle an und der Bericht endet mit dem Abdruck der verwendeten Lizenz und einem umfassenden Literaturverzeichnis Kapitel 2 Grundlagen Grundbegriffe und ben tigtes Hintergrundwissen 2 1 Allgemeine Grundbegriffe 2 1 1 Computernetzwerke Netzwerke Ein Rec
204. en immer gleich Es wird eine Fehlermeldung generiert 3 2 Das Modul NET Das Modul NET ist im Normalfall f r den Anwender unsichtbar da es ber keine eigene Be nutzeroberfl che verf gt Es ist stattdessen eng an die einzelnen Module angebunden und stellt Methoden und Klassen zur Verf gung um die Netzwerkkommunikation weitestgehend vor den Modulen zu verbergen Dies ist insbesondere f r Programmierer von Bedeutung die ei gene Systemerweiterungen implementieren und einbinden Die Klasse ControlWrapper stellt gleichzeitig einen Gro teil der DEVISOR API zur Verf gung 3 2 DAS MODUL NET a STARTMODULE CONFIGUREMODULE N UNKNOWN STARTED CONFIGUREMODULE RESTARTMODULE CLOSEMODULE RUNNING INACTIVE FORWARD REWIND STEP CONFIGUREMODULE PAUSE START PAUSED PAUSE CLOSEMODULE Abbildung 3 2 Zustands bergangsdiagramm 3 2 1 Paketstruktur und Modulbeschreibung Das Modul NET wurde getreu zweier Paradigmen entworfen e Netzinterna bleiben den Modulen vollst ndig verborgen Der Vorteil dieses Paradigmas ist offensichtlich Die Modularit t und Erweiterbarkeit des Systems wird so auch auf die Netzwerkkommunikation ausgedehnt Durch die Verwendung von abstrakten Klassen und einem ganzen Paket s Kap 3 2 3 zur Protokollkapselung k nnen Erweiterungen am Protokoll ohne gro en Aufwand und insbesondere auch oh
205. end In diesem Paket befinden sich die Klassen GridManager und StatusBar GridManager ist eine Klasse die verschiedene in devisor grid GridMainFrame gebrauchten Konstanten und Mouse Modis verwaltet StatusBar repr sentiert einen Fortschrittsbalken der z B beim Laden einer Domain angezeigt wird C 4 2 devisor grid dialogs Dieses Paket beinhaltet alle Dialoge des Moduls GRID Die meisten Dialoge dienen der Einga be von Zeichenelementen AboutDialog Dieser Dialog zeigt die Entwickler die GPL Lizenz und weitere Informationen ber das GRID Projekt C 4 DAS PAKET GRID 219 BoundaryCubicleDialog Dieser Dialog dient als Eingabem glichkeit f r BoundaryCubicles BoundaryDeleteDialog Dieser Dialog dient zum L schen von beliebigen Boundary Objekten BoundaryNode3DDialog Dieser Dialog dient als Eingabem glichkeit f r BoundaryNode3D s BoundaryNodeDialog Dieser Dialog dient als Eingabem glichkeit f r BoundaryNodes CircleDialog Dieser Dialog dient als Eingabem glichkeit f r Circles BoundaryCylinderDialog Dieser Dialog dient als Eingabem glichkeit f r BoundaryCylin der EdgeDialog Dieser Dialog dient als Eingabem glichkeit f r Edges ExceptionDialog Dieser Dialog wird bei einer Ausnahme eingeblendet Der Text der Ausnah me wird darin vollst ndig aufgef hrt GridSplashDialog Dieser Dialog wird beim Start von GRID gezeigt Ein Fortschrittsbalken visualisiert den Ladevorgang HelpDialog Dieser Dialog zeigt das GRID Handb
206. ength lt 4 some sort of error message else parse command line String projectID args 0 int moduleID Integer parselnt args 1 String handle args 2 int port Integer parselnt args 3 and off we go ExampleWrapper wrapper new ExampleWrapper projectID moduleID handle port null ExampleModule module new ExampleModule wrapper wrapper setParent module wrapper updateLocalization wrapper getHeaderLocale wrapper startCommunication Codebeispiel 33 Die main Methode des Beispielmoduls B 2 5 Anbindung an den Server NEXUS Die Anbindung an den Server erfordert leider zur Zeit noch ein wenig Handarbeit Im ersten Schritt mu im Serververzeichnis Unterverzeichnis modules ein neues Verzeichnis mit dem Namen des Moduls erzeugt werden in diesem Fall modules_example In diesem Verzeichnis werden die folgenden beiden Dateien erstellt change to workspace directory cd SDEVISOR_WORKSPACE create new project directory mkdir 1 copy start script and utility script cp DEVISOR_SERVER modules module_example start_examplemodule 1 cp p SDEVISOR_SERVER scan_resultfiles 1 Codebeispiel 34 Init Skript des Beispielmoduls init_examplemodule for parameters see class ExampleModule java cp SDEVISOR devisor net example ExampleModule 1 2 3 4 Codeb
207. epa te Verfahren zu ihrer numerischen Behandlung angeben Die Methode der Finiten Elemente besitzt die folgenden drei typischen Merkmale e Zerlegung des Grundgebietes in geometrisch einfache Teilgebiete z B Dreiecke und Rechtecke bei Problemen in der Ebene oder Tetraeder und Hexader bei Problemen im dreidimensionalen Raum e Definition von Ansatz und Testfunktionen ber den Teilgebieten und e Einhaltung von bergangsbedingungen bei den Ansatzfunktionen zur Sicherung ge w nschter globaler Eigenschaften wie z B der Stetigkeit Zerlegung des Gebiets Q Die unterschiedlichen Typen von Gittern lassen sich in folgende Klassen einteilen 1 Uniform strukturierte kartesische Gitter engl cartesian grids bestehen aus Zellen die alle gleich aufgebaut sind beispielsweise Dreiecke Tetraeder Vierecke oder Hexaeder 22 KAPITEL 2 GRUNDLAGEN Abbildung 2 6 Beispielgitter aus Quaderelementen Abbildung 2 7 Beispiele f r Gittertypen nach allgemein 24 kartesisch rechteckig bzw strukturiert 2 Rechteckig strukturierte Gitter engl rectilinear grids bestehen aus Rechteckzellen die aber in Breite und H he variieren k nnen 3 Strukturierte Gitter engl stuctured curvilinear grids sind Tetraeder oder Hexaedergit ter 4 Allgemein strukturierte Gitter engl general structured grids sind Gitter die auf irgend eine
208. ere Modifikationen Der Kegel wird korrekt gezeichnet und verwaltet Allerdings k nnten sich noch Probleme in anderen Dialogen ergeben Beim devisor grid dialogs BoundaryDeleteDialog und dem hn lichen devisor grid dialogs VisibilityDialog sollte die Methode initDialog analog zu Cylinder aktualisiert werden Auch das 3D Viewer Fenster kennt das neue Objekt noch nicht Daf r m ssen in devisor vision grid ensprechende nderungen vorgenommen werden Wie das geht wird in der Vision Beschreibung s Kap 3 6 erkl rt Genauso wie Cone k nnen beliebige Zeichenobjekte in Grid hinzugef gt werden B 5 Sonstige Erweiterungsm glichkeiten Folgende Erweiterungsm glichkeiten sind noch offen B 5 1 Portierung nach Windows Mit Ausnahme des Servers NEXUS ist der DEVISOR durch seine reine Java Implementierung vollst ndig lauff hig unter allen Betriebssystemen die die Java Laufzeitumgebung in der Ver sion 1 4 1 zur Verf gung stellen NEXUS ist allerdings ein reines ANSI C Programm und mu somit f r die jeweilige Architektur plattformabh ngig bersetzt werden Bisher basiert die Im plementierung auf der Verwendung von UNIX Sockets und ist somit auf Unix und Linux Derivate beschr nkt Die Erweiterung auf die Verwendung von WINSOCKS der Windows eigenen Implementierung der UNIX Sockets w re eine durchaus vorstellbare Erweiterung Von der Projektgruppe wurde sie nicht vorgenommen da die Zielplattform f r den Server explizit au
209. erential gleichung du du 2 2 Diese Gleichungstypen werden als parabolisch bezeichnet 3 Auslenkung einer Membran Im folgenden soll eine Membran betrachtet werden die am Rand eingespannt ist unter Belastung durch eine vertikale Kraft Abbildung 2 5 tyr Gewicht Auslenkung Abbildung 2 5 Auslenkung einer Membran Sei e die Kraftdichte f x y gegeben e die Auslenkung u x y gesucht und e die Einspannbedingung u x y 0 auf OQ mit x y E R Man betrachtet die Energie J des Systems J u J u J2 u Dabei sei J die Spannungsenergie und Jz die potentielle Energie J ist proportional zur Ober fl chen nderung e Oberfl che vor Auslenkung Is 1 dx dy e Oberfl che nach Auslenkung Jo 4 1 u2 u2 dx dy mit uz uy Ableitungen nach x bzw y Zusammen erh lt man nach der Hinzunahme eines Elastizit tfaktors a ha a f 4 1 uz u 1da dy Q 2 2 MATHEMATISCHER HINTERGRUND 17 Man nimmt kleine Auslenkungen an und verwendet deshalb die Taylorentwicklung Entwick lung nach Potenzen von x und y zur n herungsweisen Darstellung der Funktion je mehr Po tenzen verwendet werden desto genauer ist die N herung Q 1 1 1 1 aut bu 1 5 Vul 2 2 itu tu u gt J u Q a 2 f Vul dx dy Q F r die potentielle Energie Ja gilt J u fudedy Die Gesamtenergie ist nun Jox a 2 Vu dedy fudedy Q Q Eine Funktion u u x
210. ern gemeinsame Methoden und Attribute bereit GUIDescription Eines dieser gemeinsamen Attribute ist die Beschreibung wie eine Instanz von Parameter in einer GUI dargestellt werden soll GUIDescription ist die abstrakte Oberklasse all dieser Beschreibungen NodeParameter Eine Erweiterung von Parameter um hierarchische Verzweigungen in Para meterlisten zu erm glichen Sie enth lt dazu als Attribut eine weitere Parameterliste ScalarParameter Eine Erweiterung von Parameter zur Repr sentation von skalaren Daten wie Zahlwerten Zeichenketten und boolschen Werten VektorParameter Entry EntryList Diese Klasse erweitert ebenfalls die abstrakte Parame terklasse und kapselt Objekte vom Typ Entry in einer Instanz von EntryList denen eine gemeinsame GUI Beschreibung zugeordnet wird So lassen sich beispielsweise Combo boxen mit mehreren Parametern f llen GridParameter Diese Parameter Erweiterung kapselt eine Gitter und Geometriebeschrei bung und bietet Konvertierungsroutinen zwischen der Klasse Domain s Kap C 3 und dem FEAST Format SelectionParameter Eine Parameter Erweiterung die eine n aus m Auswahlm glichkeit aus verschiedenen gegebenen Parameter Instanzen implementiert FunctionParameter SubParameter Diese ebenfalls von Parameter abgeleitete Klasse kap selt eine mathematische Funktion Sie ist gegeben durch eine Menge an bergabepara metern einer Menge an intern in der Funktionsvorschrift deklarierten Param
211. es Paket beinhaltet Klassen zur Visualisierung der Simualtionsergebnisse Die Hauptklas se Pipelnstance implementiert das Wrappable Interface des NET Moduls und steuert den Ab lauf eines Visualisierungsdurchgangs N here Informationen finden sich im Kapitel Systembe schreibung C 7 1 devisor vision ResultCollector Diese Klasse dient dem Zusammentragen von von Vision erzeugten Bildern und Filmen die ber CONTROL heruntergeladen werden k nnen I_Configurable Ein Interface da von allen Klassen die zur Visualisierung verwendet wer den implementiert werden mu Es schreibt Methoden zum Abfragen der Parameterli sten und zum Konfigurieren der Pipeline Elemente vor C 7 2 devisor vision ds DomainTransformer Erzeugt nicht realistische GMV Daten zu jeder beliebigen Domain F r Testzwecke FineGrid Diese Klasse stellt eine Datenstruktur f r ein verfeinertes Gitter zur Verf gung GMVCell Diese Klasse stellt eine Datenstruktur f r eine Zelle im Gitter zur Verf gung 230 ANHANG C API DOKUMENTATION GMVControl Diese Klasse stellt Methoden zur Validierung von GMV Dateien zur Verf gung n tzlich f r Testzwecke Testdomain Eine hartcodierte Domain zum Testen der Pipeline Komponenten ValueNode Erweiterung der Node Klasse aus dem foundation Paket um vektorielle und ska lare Werte an den Knoten VisionDomain Erweiterung der Domain Klasse aus dem foundation Paket um ValueNodes VisionEdge Erweiterung der Edge Klasse aus dem fo
212. es den Framework Teil der die Daten strukturen und die GUI Komponenten enth lt die zur Beschreibung und Darstellung des Git ters dienen und zum anderen den eigentlichen GRID Editor der es dem Benutzer erm glicht durch Maus und Tastatureingaben ein Gitter zu erzeugen 3 5 1 Funktionalit t des Moduls e Erstellung und Bearbeitung zweidimensionaler Gitter 3 5 DAS MODUL GRID 79 e Erstellung und Berarbeitung dreidimensionaler Gitter e die M glichkeit die Gitter im FEAST bzw FEAST3D Format abzuspeichern und zu laden e Importieren von LightWave Dateien als Teil eines Gitters und e bermittlung der erstellten Gitter ber das Netzmodul 3 5 2 Kommunikation mit CONTROL ber das NET Modul GridNet bernimmt die Kommunikation mit der Netzwerkschnittstelle durch den GridWrap per ber das Netzwerk kann ein Gitter bermittelt werden das der Editor selbst ndig l dt und sich abh ngig vom Gittertyp 2D 3D in den entsprechenden Modus schaltet GridNet implementiert dazu das Interface Wrappable aus dem NET Paket Wurde ein Gitter gespeichert so gibt GRID auf Anfrage von CONTROL eine Liste der gespei cherten Dateien zur ck Die bertragung der Dateien funktioniert wie ein Ergebnis Download bei den anderen Modulen 3 5 3 Das Paket Framework Das Framework Paket besteht aus zwei Unterpaketen Im Foundation Paket befinden sich die Datenstrukturen in denen die Gitterdaten abgespeichert werden Im Viewer Paket befinden
213. eschlossen wer den sollen 3 4 9 Das Paket util In diesem Paket sind die Werkzeugklassen die nicht in ein anderes Paket pa ten definiert e DeViSoRProperties kapselt die Properties f r DeViSoR als statische Klasse sowie die Laden und Speichern Funktionalit t der Einstellungen e DeViSoRResourceBundle kapselt hnlich wie DeViSoRProperties das Internationali sierungsresourcebundle f r CONTROL e Package stellt Methoden zum Finden aller Klassen und Klassennamen eines Package im Classpath bereit e SimpleFileFilter ist ein Filter sowohl f r grafische als auch textuelle Auflistungen von Dateien in einem Verzeichnis SimpleFileFilter kann nach mehreren Dateiendungen oder einem Teil des Dateinames mit und ohne weitere Ausfilterung von Unterverzeich nisse filtern 3 4 10 Das Paket stats Dieses Paket enth lt die Klassen die f r die Darstellung der statistischen Daten einer Berech nung genutzt werden Es besteht im wesentlichen aus den folgenden Klassen e Die Klasse StatManager kapselt die Darstellung der Statistikdaten komplett nach au en d h die brigen Teile des Programmes kommunizieren nur mit dieser Sie stellt Methoden zur Erstellung einer neuen Statistikdarstellung inlusive der dazugeh rigen Konfiguration sowie zum Echtzeit Update der Statistikdaten zur Verf gung e Eine Instanz der Klasse StatWindow stellt das Fenster dar in dem die entsprechend konfigurierten Statistiken dargestellt werden je nach Konfigu
214. eser Stelle ausbleiben ausf hrliche Betrachtungen finden sich in 38 Als konkretes Beispiel soll die schon bekannte Laplace Gleichung Au f mit ulaa 0 dienen Ihre sogenannte schwache bzw variationelle Formulierung lautet dann f awan f foao 2 7 Q Q Durch partielle Integration 16 Seite 85 erh lt man die sogenannte Greensche Formel faw duds Vuvoan an Q Der A Operator wird quasi auf beide Funktionen verteilt wobei zus tzlich das Randintegral entsteht Geht man von Nullrandbedingungen aus so verschwindet dieses aber und es bleibt f Swag f VuVvANd Q Q Daraus ergibt sich folgende Formulierung vuvoan foao Q Q welche die Grundlage f r die folgenden Ausf hrungen sein wird Um das Problem l sen zu k nnen betrachtet man eine n herungsweise L sung indem anstelle des zugrundeliegenden im Fall der Anwendung auf Differentialgleichungen stets unendlichdi mensionalen Raumes V ein Teilraum V C V mit N dim V lt 00 gew hlt wird in dem die L sung gesucht wird Die schwache Formulierung lautet dann f Vu Vun dQ fhun dQ lt F19 gt Q Q Da die Dimension von V endlich ist gibt es endlich viele linear unabh ngige Funktionen di E Vp i 1 N die den Teilraum V aufspannen d h N Vp vp valz gt spa si E R i 1 Mit der Linearit t der verwendeten Operatoren und f ist das Ausgangsproblem quivalent zu folgendem ruv
215. eses Paket ist das wichtigste Paket denn hier befinden sich die Kernklassen von GRID FeastLoader Diese Klasse verwaltet den Ladevorgang beim Laden einer FEAST Datei in die Domain GridApp Mit dieser Klasse wird GRID gestartet Es werden dabei die gespeicherten Optionen geladen oder die hart kodierten bernommen GridMainFrame Diese Klasse stellt das Hauptfenster von GRID dar Gleichzeitig Verwaltet sie die Domain alle Dialoge und alle Listener GridNet Diese Klasse ist eine Verbindungsklasse zu der Klasse devisor net wrappers GridWrapper mit der dann die Anbindung ans Netz und da durch an das DEVISOR Paket vollzogen wird GridOptions Diese Klasse verwaltet die Mouse Modi des GRID Hauptfensters MouseModeListener Diese Klasse repr sentiert einen Mouse Modus des Hauptfensters WaveFrontImporter Diese Klasse importiert Java Wave Front Dateien in die Domain 222 ANHANG C API DOKUMENTATION C 4 3 devisor grid options Dieses Paket enth lt nur eine einzige Klasse die GridLocale_en_US die die Lokalisierung innerhalb von GRID verwaltet C 5 Das Paket NET Dieses Paket beinhaltet Klassen zur Netzwerkfunktionalit t Es besteht aus der Klasse NetEx ception und den Unterpaketen wrappers interim example und debug C 5 1 devisor net In diesem Paket befindet sich lediglich die Klasse NetException da sie logisch keinem anderen Paket zuzuordnen ist Sie dient als Container f r alle Exceptions die innerhalb des Pakets auf treten
216. et definiert alle notwendigen Containerklassen und ihre Parser um Daten ber die Klassen aus dem wrappers Paket s Kap C 5 2 zwischen den Modulen hin und herzusenden Parsable Dies ist das wichtigste Interface des gesamten Pakets und schreibt zwei Methoden vor um den Inhalt einer Containerklasse in ihre Protokollrepr sentation umzuwandeln und umgekehrt Header Footer Diese Klassen kapseln den Header und den Footer jeder Protokollsequenz Error Diese Klasse kapselt pessimistischerweise einfache Textnachrichten d h Fehler und Statusmeldungen die versendet werden sollen Zus tzlich k nnen sie durch diverse Zu satzangaben eindeutig einer Quelle zugeordnet werden ListOfErrors Eine einfache Listenumgebung f r Objekte vom Typ Error Module Diese Klasse kapselt die zur Beschreibung eines Moduls n tigen Informationen Au Berdem dient sie als Ubergabeparameter f r alle Methoden der Klasse ControlWrapper s Kap C 5 2 und beinhaltet dazu die notwendigen Netzwerk Attribute wie Adresse und Port des Moduls eingehende und ausgehende Datenstr me usw ModuleList Eine Listenumgebung f r Instanzen der Klasse Module Problem Diese Klasse kapselt eine Problembeschreibung mit allen dazu notwendigen Infor mationen ProblemList Eine Listenumgebung f r Objekte vom Typ Problem 224 ANHANG C API DOKUMENTATION Parameter Dies ist die abstrakte Oberklasse s mtlicher Parameterobjekte Sie stellt allen Pa ramet
217. et der Mapper die M glichkeit folgende Boundary Objekte der Domain dar stellen zu lassen e Kugeln e Zylinder e W rfel e Dreiecke und e 3D Knoten Die Farbauswahl und die Wahl des Aussehen der Boundary Objekte sind ber die Parameter listen einstellbar Glyph Mapper Es handelt sich um eine ganze Gruppe von Mappern die Vektorfelder durch Symbole visuali siert s Kap 2 4 4 Mit diesen Symbolen oder auch Glyphs wird das Objekt n her beschrie ben Es gibt verschiedene Arten von Glyphs die die Bewegung des Objektes wiedergeben Glyphs k nnen durch Vektoren in Form von Pfeilen oder durch Punktmengen in Form von Kugeln dargestellt werden Nat rlich gibt es eine Reihe anderer Gestalten die unter Glyphs aufgefasst werden k nnen In dieser PG hat man sich jedoch auf Pfeile und Kugeln beschr nkt Dabei werden diese Pfeile bei einem zwei dimensionalen Objekt flach dargestellt w hrend die Kugeln entsprechend als Kreise erkennbar werden Ein Pfeil kann viele Aufgaben erledigen bzw kann viele Informationen gleichzeitig dem Betrachter veranschaulichen Er hat eine L n ge einen Radius eine Farbe und eine Ausrichtung Es werden alle Informationen ausgenutzt jedoch werden sie der bersichtlichkeit halber nicht gleichzeitig beobachtbar sein Bei jeder Einstellung hat der Benutzer die M glichkeit jeweils eine Visualisierungsart ausw hlen Da die Ausrichtung implizit mitenthalten ist hat der Benutzer bei jedem Pfeil zwei Informati
218. eten Daten noch eine Huffman Komprimierung um die Dateigr e noch weiter zu verkleinern Zu beachten ist beim JPEG Format da in jedem Falle Bildinformationen durch die Komprimierung unwiderruflich verlorengehen lossy compressi on 2 5 2 Filmdateiformate QuickTime von Apple QuickTime ist ein ungenau verwendeter Sammelbegriff f r das Quick Time Dateiformat eine Menge an Applikationen und plug ins die dieses Format lesen und schreiben k nnen sowie eine komplette API Das Format ist von Apple offengelegt worden so da es mittlerweile Soft ware f r die g ngigsten Betriebssysteme teils kommerziell teils als open source gibt Interes sant gerade f r die Projektgruppe ist die Integration der Quick Time API in die Java API so da mit nur wenigen Befehlen aus beliebigen Java Programmen heraus Filme im QuickTime Format generiert werden k nnen Teile der Quick Time Spezifikation wurden mittlerweile von der ISO in den MPEG 4 Standard aufgenommen dies kann als Zukunftssicherheit des Formats gewertet werden Ein QuickTime Film ist eigentlich ein wrapper der lediglich angibt welche Medien wann pr sentiert werden sollen Ein QuickTime Movie besteht aus einer oder mehreren Spuren engl tracks Video Ton Text oder andere Spuren Spuren k nnen synchronisiert werden in Ab folge erscheinen berlappen sie k nnen auch nach bestimmten Vorgaben alternieren alterna tes Die Vorgaben k nnen unter anderem Sprache Verbin
219. etern ge geben in Instanzen der Klasse SubParameter und der Berechnungsvorschrift selbst Details zur Formatspezifikation finden sich in der Protokollspezifikation s Kap D 3 DataSourceParameter Diese Klasse kapselt einen der Parameter mit fester ID der alle Infor mationen beinhaltet die n tig sind um ein Modul so zu konfigurieren da es ein anderes Modul als Datenquelle verwendet XYZDescription Die Klassen CheckBoxDescription ColorChooserDescription Combo BoxDescription FileChooserDescription GridViewerDescription NodeDescripti on SelectionDescription SliderDescription TextFieldDescription TextAreaDescrip tion erweitern GUIDescription um Beschreibungen f r Checkboxen Farbauswahldia loge Comboboxen Dateidialoge eine reduzierte Ansicht eines 3D Gitters einer hierar chischen Verzweigung eines n aus m Auswahldialogs eines Sliders und f r ein und mehrzeilige Textfelder RadioButtonDescription Button ButtonList Eine Erweiterung von GUIDescription zur De finition eines Feldes aus Radiobuttons Die einzelnen Schaltfl chen selbst werden durch Instanzen der Klasse Button gesammelt in einer ButtonList ModuleCapabilities Diese Klasse dient als einfacher Container und stellt alle Informationen zur Verf gung die ein Modul anbietet und ben tigt eine Liste der unterst tzten Proble me zu jedem Problem eine Liste der ben tigten Parameter und eine Liste der globalen problemunabh ngigen Konfigur
220. etzten Mal Ansonsten werden in Schritt 2 und Schritt 3 die Default Einstellungen benutzt Das gleiche gilt falls man von Schritt 2 aus ber den Zur ck Button zur ck zu Schritt 1 geht und noch einmal das gleiche Problem w hlt Auf der linken Seite des Dialogs wird immer angezeigt bei welchem r Konfiguration I Problernname Probiemiseschrsitung L Proben aecwaliien eaa Norra l Ausgew hines Problem Problemeame Manu Beschreibung Memoran lt i D weiter wir DE Annee Abbildung A 11 Der Ergebnisdownload Konfigurationsschritt man sich befindet Schritt 2 Konfiguration eines Problems In Schritt 2 wird nun das ausgew hlte Problem konfiguriert Da die dahinterliegende Struktur f r eine m gliche GUI in Schritt 2 und Schritt 3 die gleiche ist wird hier die GUI von Schritt 3 implizit mitbeschrieben In Abb A 12 ist ein Beispiel f r eine m gliche GUI zu sehen Auf der linken Seite ist ein Baum zu sehen Jeder Knoten und jedes Blatt dieses Baums kann kon figuriert werden Wenn ein Knoten oder Blatt ausgew hlt wird erscheint auf der rechten Seite das dazugeh rige Panel Dieses Panel ist i d R aus mehreren einzelnen Panels aufgebaut die untereinander angeordnet sind Jedes dieser Panels stellt einen Parameter dar der konfiguriert werden kann Das Panel eines Knotens wird immer aus diesen Parameterpanels modular zu A 4 CONTROL DIE STEUERUNG DES SYSTEMS 123 Konfiguration 1 Verercew
221. ew LA ME Bebeton n Wecesen pererin LAD GD Mina ee lk en ee Formet Ceo Dmr u ar OR Lee kuimaeg wun wre 3 Hemani OO wu a torsit Deae lewt owed Tr Bruhn Feray Lew vo Nummern 9 10 reren w mere tree po MINT Seeberhese un i H i l U l E embo of mere ter pp OOD Memduh Momor iet LOW Formet wee ieee ressa kue ra fr tee hrana DOG bunte ww E re gt won 7 x aem Abbildung A 12 Schritt 2 Konfiguration sammengesetzt deswegen werden alle m glichen Parameterpanels im folgenden einzeln vor gestellt Was f r ein Parameter genau in einem Parameterpanel eingestellt wird kann immer aus der gegebenen Beschreibung und dem Parameternamen entnommen werden Die Parameterpanels Im folgenden werden im einzelnen die verschiedenen Parameterpanels vorgestellt Textfelder Es kann ein oder mehrere Textfelder geben Falls nur ein Textfeld gegeben ist sind auch mini maler Wert maximaler Wert Format und Einheit gegeben Bei Format wird das Format einer zul ssigen Eingabe angegeben m glich sind hier Integer Double und String also nur ganze Zahlen reelle Zahlen oder ganz normaler Text Der minimale und maximale Wert stellen eine obere und untere Grenze f r die zul ssige Eingabe dar falls es sich bei der Eingabe um eine Zahl handeln mu Wenn mehrere Textfelder gegeben sind wird nur das Format angegeben Falls die Eingabe unzul ssig ist gibt es bei Wechseln des Knotens auf der l
222. f nen indem man auf diesen Parameter doppelklickt In der unteren linken Seite wird die Anzahl der ausgew hlten Parameter angezeigt Es ist immer eine obere und untere Schranke f r die zul ssige Anzahl angegeben Sobald die Auswahl sich au erhalb der erlaubten Grenzen befin det wird sie zur Warnung rot angezeigt Solange die Auswahl au erhalb der erlaubten Grenzen ist kann weder der Knoten im Baum gewechselt werden noch kann man einen Schritt vor oder zur ck gehen In dem Parameter aus Abb A 19list nur die Auswahl eines einzigen Parameters m glich der ber den Button Einstellungen konfiguriert werden kann Ansonsten gibt es Checkboxen und Radiobuttons als m gliche Auswahlelemente Bei Checkboxen k n nen mehrere Parameter einmalig gew hlt werden bei Radiobuttons kann nur ein Parameter ge w hlt werden Die ausgew hlten Parameter k nnen auch dort ber Einstellungen Buttons konfiguriert werden Auswahl einer FEAST Datei Mit dem in Abb A 20 abgebildeten Parameter kann eine FEAST Datei ausgew hlt werden z B f r den Aufruf von GRID oder FEATFLOW Mit Lade Domain wird ein Standarddatei 126 Fher FO ANHANG A BENUTZERHANDBUCH Keschneibemg Ale Elararta dia Configurable sind und ak Fikaragleren K nner her konfiguriert werden Schwe wert Filter GP Saami ches Fiher CFD gt Schmittiinsen Filter CF2 Idemniuns Filter F 1a IsaLines Piter OH Sefacei Filter 6
223. f r die Auswahl eines Problems JSelectTimeStepsDialog Ein Dialog f r die Auswahl von Zeitschritten JSelectionGuiDialog Ein Dialog f r die Konfiguration von Parametern JSelectionPanel Ein Panel zur Konfiguration eines SelectionParameter JVectorPanel Ein Panel zur Konfiguration eines VectorParameter ParamTreeNode Verwaltet einen Knoten des Parameterbaums C 2 5 devisor control gui properties JAppearancePanel Ist das Panel zum Einstellen der Erscheinung von DEVISOR also Spra che Farbe des Desktops etc JPropertyPanel Ist das Interface welches von allen Panels des Properties dialogs von DEVI SOR implementiert werden muss C 2 6 devisor control gui images Enth lt alle Bilder und Icons die in der GUI verwendet werden C 2 7 devisor control util DeViSoRProperties Singleton der die Einstellungen des DEVISOR kapselt DeViSoRRessourceBundle Singleton der die bersetzungsdateien f r DEVISOR kapselt Package Erlaubt das Suchen von Klassen und Klassennamen in einem Paket des Klassenpfa des welches lokal als Jar Archiv oder entpackt vorliegt SimpleFileFilter Ist ein Filter f r JFileChooser oder File und kann nach Dateiendungen oder nach Teilen des Namens mit oder ohne Auflistung von Unterverzeichnissen filtern C 3 Das Paket FRAMEWORK C 3 1 devisor framework foundation Das foundation Paket ist in mehrere Unterpakete aufgeteilt base Dieses Paket enth lt die Klassen auf denen alle weiteren Datenstrukturen aufbauen Dies si
224. f Unix bzw Linux Derivate festgesetzt wurde Eine Alternative ist die Verwendung von CygWin 30 wie f r FEATFLOW in 21 beschrie ben Diese Alternative wurde ansatzweise ausprobiert ist jedoch zum Zeitpunkt der Druckle gung dieses Berichts noch nicht vollst ndig ausgetestet B 5 2 Benutzerauthentifizierung Im System ist bereits implementiert die Datenzuordnung in Abh ngigkeit von Benutzernamen zu gestalten bzw den Zugriff auf bestimmte Daten vom Benutzernamen abh ngig zu machen Hier w re eine Erweiterung um eine sichere passwortgesch tzte Benutzerauthentifizierung eine sinnvolle Erweiterung In diesem Zusammenhang w re auch die Verschl sselung der ber das Netz transferierten Da ten sinnvoll da in der von der Projektgruppe implementierten Version alle Daten im Klartext bertragen werden Anhang C API Dokumentation C 1 bersicht ber die Pakete und Klassen In diesem Kapitel sollte der gesamte Code der DEVISOR Module vorgestellt werden An Mo dulen besitzt das DEVISOR Paket die Module VISION CONTROL GRID NET und das Mo dul NUMERIK Da die komplette API Dokumentation hier jeden Rahmen sprengen w rde wird zur Referenz auf die beiliegende CD verwiesen Sie steht dort im HTML Format zur Verf gung C 2 Das Paket CONTROL Dieses Paket beinhaltet alle Klassen f r das Modul CONTROL C 2 1 devisor control app In diesem Paket werden die Server und Projekte verwaltet und es erfolgt die Anbind
225. f der Charakteristi ken schon weniger Freiheit und elliptische Probleme zeichnen sich durch unendliche Aus breitungsgeschwindigkeit von Informationen aus das bedeutet jeder Punkt beeinflu t jeden anderen sofort und machen somit die Untersuchung unm glich In der Zeit ist vieles einfacher Alle instation ren Probleme sind parabolisch in der Zeit d h theoretisch f r die Verwendung innerhalb von computational steering Umgebungen geeignet Auch station re Probleme k nnen durch eine Technik namens quasi timestepping instation r gel st und somit gleich behandelt werden Abschlie end sei bemerkt da dies nur ein kurzer Abri der theoretischen M glichkeiten ist In der Praxis gibt es sehr viele Charakteristiken weil es sehr viele Gitterpunkte gibt Bei klar ausgepr gten Fl ssen kann versucht werden passende Gebiete au erhalb der Einflu gebiete zu finden sonst wird man die Verwendung von Interpolationstechniken nach der Parameter nderung vor dem Wiederaufsetzen der Simulation nicht umgehen k nnen Interpolation f hrt aber leider zu neuen Fehlern und so kann es schlimmstenfalls passieren da die Beobachtung der Simulation in einer computational steering Umgebung die Simulation bzw ihr Ergebnis verf lscht 2 3 Wissenschaftliches Rechnen Wissenschaftliches Rechnen beschreibt die konkrete Umsetzung der im vorherigen Kapitel beschriebenen Verfahren in Algorithmen und ihre hocheffiziente Implementierung auf Super compute
226. fades der Boje Weiterf hrende Literatur zum Thema findet sich u a in 22 23 31 Problemdefinition Gegeben ist ein Gebiet engl domain Q C R bzw Q C R Auf diesem Gebiet ist ein Vektorfeld engl vector field oder auch Geschwindigkeitsfeld engl velocity field definiert d h eine Funktion v Q R bzw v Q R Jedem Punkt innerhalb des Gebietes sind eine Richtung und eine Geschwindigkeit zugeordnet Betrachtet wird das Zeitintervall T to tn mit einer Startposition engl seed location po f r das interessante Partikel zum Zeitpunkt to Gesucht ist eine Funktion p T Q die der Bedingung p to po gen gt und die Position des Partikels im Rechengebiet zu jedem Zeitpunkt t T beschreibt In der diskreten Variante besteht Q aus einer Gitterzerlegung des Rechengebiets d h einer endlichen Menge von Knoten engl nodes die Elemente bzw Zellen engl cells definieren s Kap 2 7 Elemente dieser Form hei en in der Literatur auch curvilinear Ein Spezialfall sind Gitter aus achsenparallelen Einheitsquadraten bzw Einheitsw rfeln man bezeichnet diese auch als kartesische Gitter engl cartesian grids Das Geschwindigkeitsfeld v ist nicht mehr im ganzen Gebiet definiert sondern nur noch in den gegeben Punkten hier spricht man von Knotenwerten oder einheitlich f r jede Zelle dies bezeichnet man als Zellwerte Im folgen den werden nur Knotenwerte betrachtet T ist kein Zeitintervall
227. g of any other cell node or face data fields The data are entered as a group for each field variable Up to 250 different field variables are allowed and each field variable is named by the user The endvars keyword is used to end the field data input Each field data variable is defined by two input lines The first line contains the eight character name of the variable and the data_type of the field O cell data 1 node data 2 face data The second line is the floating point array for the cell or node data Cell centered field data will be averaged and stored as node centered data Face centered data can only be entered when faces or vfaces are used to define cells Subset variable data fields The subvars keyword is used to denote the beginning of cell node or face data fields that are defined for a subset of the mesh The data are entered as a group for each field variable for the defined elements These fields are added to the variable field list The endsubv keyword is used to end the field data input Each field data variable is defined by three input lines The first line contains the eight character name of the variable the data_type of the field O cell data 1 node data 2 face data and the number of elements to define and set data for The second line is the list of elements nodes cells or faces that will carry the field data The third line is the floating point array for the field data Elements not defined in the list will carry a va
228. gen einiger Internationalisierungs Strings zu der Standard Datei devisor vision util FindConfigurablesil8n properties sowie u U auch zu den anderen Internationalisierungs Dateien in diesem Paket Der Mapper der gebaut wird wird nicht vollst ndig sein weil auch der k rzeste Mapper in devisor vision pipe mapper weit ber 300 Zeilen lang ist Der Beispiel Code sollte aber aus reichen um sich einen berblick ber die notwendigen Arbeiten zu verschaffen Die neue Mapper Klasse Eine neue Java Klasse zu erzeugen die von der Klasse AbstractMapper erbt sieht zun chst einmal so aus public class uncompilableMapper extends AbstractMapper public uncompilableMapper super protected BranchGroup buildSceneGraph public ParameterList getParameterList public ListOfErrors configure ParameterList aList Codebeispiel 15 Grundgeriist jeder Mapperklasse Die fehlenden Methoden Diese Klasse ist noch nicht kompilierbar weil noch einige Methoden zu implementieren sind public ParameterList getParameterList F r eine Erkl rung dieser Methode vergleiche den Abschnitt dar ber in Kap B 1 1 Siehe Kap B 1 4 f r ein umfangreiches Beispiel und Codebeispiel 11 f r eine kurze Variante public ListOfErrors configure ParameterList aList F r eine Erkl rung dieser Methode vergleiche den Abschnitt dar ber in Kap B 1 1 Siehe Kap B 1 4 f r ein umfangreiches Beispiel und
229. gew hlt sein Nun kann man ir gendwo auf die Arbeitsfl che mit der linken Maustaste klicken und ohne loszulassen die Maus verschieben Zur besseren bersicht erscheinen zwei dunkle Vierecke die die alte und die neue Position bestimmen Wenn man nun die linke Maustaste losl t wird die Auswahl in die von der Maus bestimmten Richtung um die von der Maus beim Verschieben zur ckgelegten Entfernung verschoben Dabei sollte der oben ew hnte Trick mit der rechten Maustaste nicht vergessen werden um in die dritte Koordinate zu schieben Das Drehen funktioniert mit dem darunterliegenden Men eintrag Auswahl rotieren Hier han delt es sich um ein hnliches Vorgehen wie beim Verschieben Man h lt die linke Maustaste gedr ckt und schiebt sie herum Dabei erscheint um den Ursprung herum ein Kreissegment der den ausgew hlten Winkel grafisch darstellt Gleichzeitig kann man den eingestellten Winkel als Zahl nahe beim Ursprung ablesen Es wird wie man leicht sieht immer um den Ursprung ge dreht Wenn man nun die Maustaste losl t drehen sich alle Elemente in der Auswahl um den eingestellten Winkel Das Skalieren kann ber den entsprechenden Men eintrag Auswahl skalieren aufgerufen wer den Man kann verschiedene Skalierungen f r die verschiedenen Koordinatenrichtungen einge ben indem man die linke Maustaste wieder gedr ckt h lt und nach oben und unten verschiebt um die Skalierung in die Waagerechte und nach links und rechts verschiebt um d
230. hen jedoch nicht neu konfiguriert werden solange das Modul l uft Falls die Konfiguration Statistiken unterst tzt kann man sich Statistikdiagramme z B ber den Verlauf der Berechnung eines Numerikmoduls anzeigen lassen Falls Ergebnisse bei einem Modul zur Verf gung stehen kann man diese herunterladen und im Projekt speichern 3 4 2 Kommunikation mit anderen Modulen Die Kommunikation mit allen anderen Modulen erfolgt komplett ber den ControlWrapper der von NET zur Verf gung gestellt wird f r eine bersicht ber die angebotenen Methoden siehe Kap 3 2 3 4 3 Paketstruktur Das Modul CONTROL besteht aus folgenden Paketen devisor control app verwaltet alle Server und geladenen Projekte sowie die Anbindung zum NET Modul devisor control gui beinhaltet alle Klassen die zur Darstellung der Benutzeroberfl che geh ren devisor control gui dynamicGui enth lt alle Klassen die f r die Erzeugung der dynamischen GUI ben tigt werden 74 KAPITEL 3 SYSTEMBESCHREIBUNG devisor control gui properties h lt das Interface und seine Implementierungen der Einstell panele f r den Properties Dialog des DEVISOR Hauptfensters devisor control gui images enth lt alle verwendeten Bilder und Icons devisor control event enth lt die ben tigten Events und Listener devisor control util beinhaltet alle Toolklassen die nicht in die anderen Pakete geh ren devisor vision stats enth lt alle Klassen die f
231. her work under the scope of this License You may copy and distribute the Program or a work based on it under Section 2 in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following a Accompany it with the complete corresponding machine readable source code which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or b Accompany it with a written offer valid for at least three years to give any third party for a charge no more than your cost of physically performing source distri bution a complete machine readable copy of the corresponding source code to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange or c Accompany it with the information you received as to the offer to distribute corre sponding source code This alternative is allowed only for noncommercial distri bution and only if you received the program in object code or executable form with such an offer in accord with Subsection b above The source code for a work means the preferred form of the work for making modifica tions to it For an executable work complete source code means all the source code for all modules it contains plus any associated interface definition files plus the scripts used to control compilation and installation of the executable However as a speci
232. hiedene Einstellungen aus den offenen Dialogen anwenden zu k nnen Mit Zur cksetzen werden s mtliche Einstel lungen also nicht nur die aus dem gerade ge ffneten Dialog auf Standard Werte zur ckge setzt Die Einstellungen werden beim Beenden des Programms in einer Datei gridoptions auf Linux und Unix Systemen gridoptions ini auf Windows Systemen im pers nlichen Verzeichnis des Benutzers gespeichert Der Men punkt Fenster Fenster ES Gleiche Gr e f r alle Ansichten 510 0 SH Maximiere Aufsicn Str Maximiere Vorderansicht Surg 2 _ kiaximiere Seitenansicht strg 3 LS Maximiere 30 Ansicht trg D Autamatic Update Aktualisieren ergel Abbildung A 44 Das Windows Men Unter Fenster lassen sich die Aufsicht die Vorder die Seiten und die 3D Ansicht maximie ren sowie alle Fenster auf die gleiche Gr e setzen Zus tzlich l sst sich das 3D Viewer Fenster dazu bewegen durch den Men punkt Aktualisie ren die neuesten nderungen in der Domain anzuzeigen Dieser Men punkt ist der gleiche wie in der Werkzeugleiste Projekt Aktualisieren 148 ANHANG A BENUTZERHANDBUCH Abbildung A 45 Das Help Men Der Men punkt Im Hilfemen l t sich dieses Handbuch und der Aboutdialog in dem alle Informationen ber Grid und dessen Entwickler gegeben werden aufrufen Laden und Speichern Zum Speichern benutzt GRID das FEAST Dateiformat siehe Kapitel A 5 3 Dieses Format hat gewis
233. hnernetz besteht aus mehreren verbundenen Computern Die Art der Verbindung ob per Kabel oder per Funk ist unerheblich wichtig ist da die Computer unabh ngig vonein ander existieren und das Netzwerk den gegenseitigen Nachrichten und Informationsaustausch erm glicht Der Begriff Netzwerk beschreibt lediglich die physikalische Verbindung Verteilte Systeme Verteilte Systeme setzen auf Netzwerken auf und bieten Funktionalit ten wie Kommunikati on zwischen einzelnen oder allen Rechnern des Netzwerks Ressourcenteilung Lastverteilung und Sicherheitserh hung Ein Programm kann Teile seiner Arbeit auf verschiedene Rechner verteilen und die einzelnen Teile durch Nachrichtenaustausch synchronisieren Client Server Systeme Client Server Systeme sind spezielle verteilte Systeme bei denen ein Dienstleister der Server mehrere Dienstnehmer Clients bedient Die Clients k nnen untereinander nur ber den Um weg ber den Server kommunizieren Typischerweise startet der Server pro Verbindungsanfra ge einen eigenen Proze der exklusiv f r die Kommunikation mit einem Client verantwortlich ist 8 KAPITEL 2 GRUNDLAGEN TCP IP TCP IP ist ein Netzwerkprotokoll das die Art der Nachrichten bermittlung in einem Netz werk beschreibt Es definiert eindeutige Adressen f r jeden Rechner im Netzwerk sog IP Adressen und teilt zu versendende Nachrichten in Pakete ein Das Protokoll stellt sicher da bertragungsfehler automatisch zu einer
234. hre Start und Endknoten und haben zus tzlich noch einen Kantenstatus je nachdem ob sie innere oder u ere d h Randkanten sind und eine Randbedingung Dirichlet Rand oder Neumann Rand 238 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN Kantenlist 2 10 Index des Start und Endknotens aus obiger Knotenliste Kantenstatus 0O none 1l inner 2 exter boundary Randbedingung 0 dirichlet 1 neumann 27200 usw Codebeispiel 87 Spezifikation des FEAST Formats in 2D Kanten Elemente Die Definition der Elemente beinhaltet deutlich mehr Informationen Ein 2D Ele ment kann vom Typ Dreieck oder Viereck sein und ist definiert ber die Knoten gegen den Uhrzeigersinn die es aufspannen zus tzlich werden noch seine Kanten die Elemente die ber die Kanten benachbart sind und die Elemente die ber die Knoten benachbart sind an gegeben Es folgt f r die Durchf hrung der Berechnung auf Parallelrechnern die Angabe des Parallelblocks und Matrixblocks zu dem das Element geh rt bei Einprozessormaschinen sollte hier berall der Wert 1 eingetragen werden Der letzte Abschnitt gibt die anisotrope Ver feinerung an Dreieckselemente unterst tzen in dieser Version keine Verfeinerungssteuerung bei Viereckselementen werden in f nf Zahlwerten die folgenden Informationen codiert 1 Die erste Zahl gibt das initiale Verfeinerungslevel sowohl in x als auch in y Richtung des Grobgitters an 2 D
235. hrt Au erdem wird eine Art Po steingang angeboten in dem Huckepack Nachrichten siehe Kap 3 2 abgelegt werden Anhang D Format und Protokollspezifikationen D 1 Spezifikation des FEAST Formates f r die Gitterdefinition Das existierende FEAST Format wurde von der Projektgruppe auf den dreidimensionalen Fall erweitert und auch in 2D leichten Korrekturen und Erg nzungen unterzogen Die Grundstruktur einer FEAST Datei ist immer gleich 1 Header mit Identifikatoren Versionsnummern und Kommentaren 2 Anzahlen der vorkommenden Knoten Kanten Elemente etc 3 Randbeschreibung 4 Knotenliste 5 Kantenliste 6 In 3D Facettenliste 7 Elementliste Im FEAST Format sind Leerzeilen nicht erlaubt Kommentarzeilen d rfen beliebig eingef gt werden sie beginnen dann mit dem Zeichen Das gesamte Format ist zeilenbasiert stehen in einer Zeile mehrere Informationen wie z B bei der Definition von Kanten s u so dient ein Leerzeichen als Trennung Wichtig bei den Listen ist da jede Indizierung bei 1 beginnt Bei n Elementen l uft die Nummerierung von 1 bis n und nicht 0 bis n 1 Wichtig Die einzelnen hier beschriebenen Bl cke m ssen immer durch Kommentarzeilen getrennt werden ihr Inhalt ist dabei irrelevant Die hier spezifizierte FEAST Version ist Version 2 0 235 236 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN D 1 1 FEAST2D Header Der Header enth lt die Identifikationszeichenkette FEAST den Modus
236. ht Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Bearbeiten Cubicles hinzuf gen Das n chste Werkzeug Spheres hinzuf gen f gt nach dem gleichen Prinzip wie das Werk zeug Kreise hinzuf gen eine Kugel in die Domain ein Auch hier wird nicht explizit au er der Nummer des Mittelpunkts die Kugel numeriert Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Bearbeiten A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER143 Abbildung A 38 Ein Cubicle auf der Zeichenfl che Abbildung A 39 Eine Kugel auf der Zeichenfl che Top Ansicht Spheres hinzuf gen Das letzte Werkzeug unter diesem Men punkt ist Cylinders hinzuf gen Es f gt einen Zylin der durch die Eingabe von zwei Punkte der Mittelachse und eines dritten Punktes zur Bestim mung des Radius ein Abbildung A 40 Ein Zylinder auf der Zeichenfl che In diesem Fall wird die Nummer des Zylinders in der Mitte eingetragen eingeschlossen durch eine runde Klammer z B wird ein Zylinder mit der Nummer 1 folgenderma en numeriert 1 144 ANHANG A BENUTZERHANDBUCH Umschalt 1 BoundaryNode Umschalt B BoundaryNode3D Umschalt D VY Edge Umschalt 2 A Tri Umschalt 3 E Quad Umschalt 4 Tetra Umschalt 5 mil Hex Umschalt 8 x gt gt Cubicle Umschalt U a Sphere Umschalt 5 gt Cylinder Umschalt Y E L sche Boundaries Abbildung A 41 Das Diaolg Men Der Men punkt Dia
237. http developer apple com documentation QuickTime QuickTime html 29 RANNACHER R Numerik gew hnlicher Differentialgleichungen http gaia iwr uni heidelberg de httpdoc Lectures Notes notes html Jan 2001 30 RED HAT Cygwin 1 3 Jan 2003 http www cygwin com 31 SARDAJOEN VAN WALSUM HIN und POST Scientific Visualization Kap Particle Tra cing Algorithms for 3D Curvilinear Grids IEEE Computer Society Jan 1997 32 SCHWARZ H R Methode der finiten Elemente 2 Auflage Stuttgart Teubner 1984 33 SCHWARZ H R Numerische Mathematik Teubner 1997 LITERATURVERZEICHNIS 301 34 35 36 37 38 39 40 41 42 SILBERSCHATZ A GAGNE G und GALVIN P B Operating Systems Concepts 6th Edition John Wiley amp Sons Jan 2002 SWING Java allgemein Techn Ber Sun Microsysteme Jan 1996 http java sun com docs books tutorial uiswing index html TANENBAUM A Computer Networks 4th Edition Prentice Hall Jan 2002 TUREK S FEATFLOW Finite element software for the incompressible Navier Stokes equations User Manual Release 1 1 Technical report 1998 TUREK S Numerische Methoden f r Partielle Differentialgleichungen Vorlesungs skript Fachbereich Mathematik Universit t Dortmund 2001 TUREK S Numerik 2 Vorlesung an der Universit t Dortmund WS 2001 2002 basie rend auf Rannacher Jan 2002 TUREK S
238. ich schneller unter Vernachl ssigung des Mehraufwands zur Verwaltung genau um die An zahl der gleichzeitig verarbeitbaren Elemente Bei Operationen die mehrere Kompo nenten desselben Vektors verkn pfen sind Vektorrechner nicht schneller als normale skalare Architekturen Ein Beispiel soll dies verdeutlichen wobei 0 B d A die Breite der Vektoreinheit f r die hier verwendete Vektorl nge n ausreicht Berechnet werden soll die euklidische Norm eines Vektors a R Die innerste Operation ist einfach vektorisierbar es wird der Vektor a als doppelte Ein gabe fiir die komponentenweise Multiplikation verwendet Die anschlie ende Addition der einzelnen Komponenten kann auf einem Vektorrechner nicht schneller durchgef hrt werden und das Ziehen der Wurzel ist eine rein skalare Operation e Massivparallele Maschinen zeichnen sich durch eine gro e Anzahl an Prozessoren aus F r den Speicherzugriff gibt es zwei verschiedene Modelle shared memory und distri buted memory Architekturen erstere greifen auf denselben Datenbestand zu bei letzte ren hat jeder Prozessor einen eigenen Speicher die einzelnen Prozessoren arbeiten also auf verschiedenen Daten Distributed memory Architekturen lassen sich je nach der Ver bindung der einzelnen Prozessoren oder Knoten weiter unterteilen Cluster sind zu einem massiv parallelen Computer zusammengeschaltete normale PCs oder Workstations Die Verbindung ist hier durch ein Computernetzwerk realisier
239. ie Skalie rung in die Senkrechte anzugeben Es erscheint ein wei es Kreuz der die Skalierung grafisch verdeutlichen soll wobei daneben der Skalierungsfaktor mit ausgeschrieben wird Um eine in beide Richtungen gleichm ige Skalierung zu erhalten h lt man beim Verschieben die Shift Taste gedr ckt Es wird ein wei es Kreuz mit gleich gro en Armen erzeugt und man skaliert in beide Richtungen gleichm ig Ein Skalierungsfaktor im Bereich 0 1 verkleinert die Auswahl um diesen Wert ein Faktor gr er als 1 vergr ert die Auswahl Bei einem Faktor von 1 bleibt die Auswahl unver ndert A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER139 Es folgen Werkzeuge die die direkte Eingabe von grafischen Elementen wie Knoten Kanten Tris Quads etc erlauben Es sind nur die Werkzeuge ausw lbar die in dem ausgew hlten Mo dus 2D bzw 3D g ltig sind Das Werkzeug Nodes hinzuf gen erlaubt die Eingabe von Knoten Knoten werden durch ihre Koordinaten beschrieben Man bewegt die Maus in dem ausgew hlten Fenster so lange bis die Koordinatenanzeige den gew nschten Punkt anzeigt und dr ckt dann die linke Maustaste Die Knoten werden durch kleine Punkte dargestellt an denen deren Nummer steht Jeder Knoten kann dadurch anhand seiner Nummer referenziert werden Abbildung A 32 Ein Knoten auf der Zeichenfl che unausgef llt Wenn man versucht an eine Stelle einen Knoten zu setzen an der ein scho
240. ie Verfeinerungssteuerung wird ber 4 Bits gesetzt Das niedrigwertigste Bit entschei det ob in x Richtung verfeinert wird das n chsth here ob nach links oder rechts Ana log legen die beiden h herwertigen Bits fest ob in y Richtung verfeinert wird und ob nach unten oder oben Gespeichert wird die Dezimalzahl die dieser Bitsetzung ent spricht 3 die folgenden drei Zahlen geben die Verfeinerungsfaktoren an die der zugrundeliegende Algorithmus ben tigt Klar ist Wird f r den Verfeinerungsmodus 0 f r den Level 0 und f r die Faktoren jeweils 0 5 eingetragen geht das anisotrope Element in eine handels bliche Viereckszelle ber Ein Element wird also durch acht Zeilen im FEAST Format spezifiziert D 1 SPEZIFIKATION DES FEAST FORMATES F R DIE GITTERDEFINITION 239 Makroliste Elementtyp O Viereckselement 1 Dreieck Indices der vier Knoten Indices der vier Kanten Indices der Kanten Nachbar Macros Indices der Knoten Nachbar Macros Index des Parallelblocks Index des Matrixblocks 0 0 5 0 53 055 Refinementlevel Refinementmodus Faktorl Faktor2 Faktor3 ONN N oO 01 w I oo o PPPOOPPFO Es folgt Zelle Nummer 2 1 Dreieck 23 8 Indices der drei Knoten 5 6 7 Indices der drei Kanten 0 3 6 Indices der Kantennachbar Zellen 075 Indices der Knotennachbar Zellen I Parallelblock 2 Matrixblock 1 Verfeinerungslevel
241. ie genaue Funktionalit t dieser Klassen zu erfahren wird wieder auf das Handbuch von GRID A 5lund die API Dokumentation verwiesen An dieser Stelle wird exemplarisch auf die Klasse AddNodeListener eingegangen Die ande ren Listener unterscheiden sich nur in der spezifischen Funktionalit t der Methoden Die wichtige Methode dieser Klasse ist mouseClicked Diese f ngt das Ereignis des Mausklicks ab und erzeugt daraufhin einen neuen Knoten in der Domain die in der bergebenen Grid MainFrame Instanz enthalten ist Dann wird der Knoten in alle Instanzen von framework viewer DrawingArea gezeichnet bezogen auf seine neuen fenster relativen Koordinaten Die Koordinaten des neu erzeugten Knotens h ngen auch von dem eingestellten Mouse Snapping Wert ab der in der Routine snap berechnet wird In devisor grid main GridMainFrame werden die Listener immer dann aufgerufen wenn auf eines der Werkzeugbuttons z B Add Node mit der Maus geklickt wird Sie sind die Ereignis behandlung der Buttons Die im Paket devisor grid backend sich befindende Klasse GridManager setzt wichtige Pro grammkonstanten und Programmodis Die andere Klasse StatusBar realisiert einen Fortschritts balken der z B beim Laden erscheint Das Paket devisor grid info enth lt keine Klassen sondern die Inhalte f r den About Dialog Autorenvorstellung GPL Hinweise Danksagungen etc Zus tzlich enth lt dieses ein Unterpa ket manual in dem das Grid Handbuch
242. ie gew nschten Diagramme individuell anzuordnen Im der Diagramm bersichtstabelle ist der Diagrammname frei w hlbar das Feld Aus gew hlte Daten gibt die aktuelle Konfiguration eines Diagramms in Kurzform wieder Das Feld Diagrammtyp kann per Auswahlliste folgende Werte erhalten die folgerichtig den Typ des Diagramms bzw dessen Orientierung darstellen Balkendiagramm horizontal erzeugt ein Balkendiagramm das horizontal orientiert ist Der Ausdruck horizontal bezieht sich hierbei auf die Lage der Beschreibungsachse so da die Balken des Diagramms vertikal dargestellt werden Balkendiagramm vertikal erzeugt ein vertikal ausgerichtetes Balkendiagramm A 4 CONTROL DIE STEUERUNG DES SYSTEMS 119 Statistikkonfiguration Owgramme __Oapenmene Dbgmmp juspew lieDsgen Dbugramm Bukendagramm horizontal CPU times process speed comm Diagramm l Uniendagamnm horizontal comvergence completed memor Diagramm 2 Punkt Liniendiagramm vertikal process speed commergence cal Diagramm 3 Tortendiagramm comvergence Diagramm 4 Testudie Darstellung memoryusage Dire en Sn einnimmt DEI Heer creer res nearr Hiezufegen Entfernes Nach obes Nach unten Degramm 5 Awan Bezeichnung Kurzberekhrung _ Beschreibung al CPU times per timestep CPU times Testhield mit Format Double EZ COMOrgence rate per timestep comergence Testhield mit Format Double al grid objects processed per 5 process speed Textflei
243. ierende Programme Numerik Graphik Pre oder Postprocessing die mit minima lem Aufwand in die DEVISOR Umgebung integriert werden sollen Der Server bernimmt in 3 3 DAS MODUL NEXUS 71 diesem Fall einen Gro teil der Protokollbearbeitung und Konfiguration Erzeugung der Kon figurationsdateien und hnliches Die Steuerung erfolgt ber ein einfaches lokales Kommuni kationsprotokoll Dazu kann das Modul Steuerbefehle implementieren welche im LOCUTUS Linkmodul definiert werden Ein Beispiel zur Integration eines Moduls ist im Anhang angege ben Im einfachsten Fall wird aber das Modul nur gestartet und beendet so da in diesem Fall keine nderungen am Programmcode notwendig sind nonlegacy Module sind Module die das komplette DEVISOR Protokoll sprechen und ihre Konfigurations und Steuerungsfunktionalit ten selbst regeln Eine Beispielimplementierung ist im Anhang angegeben Um den berblick zu behalten und das sp tere Wiederaufsetzen einer Verbindung oder das sp tere Aufschalten auf eine bestehende Rechung zu erm glichen f hrt der Server eine Routing tabelle in der die Verbindung zwischen Modulname Benutzername ProjektID und lokalem Proze gespeichert ist Die Routingtabelle wird in regelm igen Abst nden in eine Datei gesichert um im Falle eines Serverfehlers oder Neukonfiguartion bestehende Rechnungen nicht zu verlieren Die Routingtabelle hat folgende Struktur typedef struct int en
244. iert D 1 SPEZIFIKATION DES FEAST FORMATES F R DIE GITTERDEFINITION Hoooo0o00o0000o0 000000000 Hooooo0oo0o0 oo0o000000 H DOGO UO GOG OGOGO O 2000900900000 HoOoh ooo o CF o fo oO p pa O HOOG O O OO 60 19 65 34 69 0 1 0 10 140 ttelpunkt rmalenvekt telpunkt Dreie der E Eckpunkt 1 Eckpunkt 100 achbarschaf ndices der ach der Pos A N O vorhanden I D n Indices der Zylinder or cksnetz ckpunkte nzahl der davon aufgespannten Dreiecke tsinformationen 1l nicht Knoten des rsten Dreiecks ie Indizierung beginnt bei 1 und richtet sich ition der Knoten in obiger Liste Nachbardreiecke falls oben 0 0 bedeu Nachbarn nic in Indices der Indices der dieses Drei Mittelpunkt tet das Dreieck hat diesen ht Knoten des letzten Dreiecks Nachbardreiecke ck h tte also nur zwei Nachbarn Codebeispiel 90 Spezifikation des FEAST Formats in 3D R nder 241 242 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN Knoten Die Definition der Knoten erfolgt analog zum zweidimensionalen Fall nur da jetzt wie oben beschrieben zwei Parameterwerte bzw drei Koordinaten n tig sind Knotenlist 0 0 0 0 0 0 0 X Y Z Platzhalter 0 0 3
245. ierung gef llt werden Als Beispiel folgt die Extraktion der Parame tersetzungen in Codebeispiel 32 public ListOfErrors setCompleteConfiguration CompleteConfiguration cc ignore problem we just support one extract parameter values Enumeration params cc getParameterList getEnumeration while params hasMoreElements ScalarParameter p ScalarParameter params nextElement switch p getID case ExampleMC INCREMENTSIMULATOR_INITIALVALUE this initialValue Integer parselnt p getValue break case ExampleMC INCREMENTSIMULATOR_INCREMENTVALUE this incrementValue Integer parselnt p getValue break case ExampleMC INCR this delayValue Integer parselnt p getValue break Pl a 2 7 a T MENTSIMULATOR_DELAYVALUE extract conf list check if the settings make sense generate status report and return it updating status first ms setStatus ms STATUS_CONFIGURED Codebeispiel 32 Implementierung des Interfaces Wrappable Um diese Klasse ausf hrbar zu machen mu die main Methode implementiert werden hier 194 ANHANG B ERWEITERUNGSM GLICHKEITEN ist auf die korrekte Reihenfolge zu achten um Nullpointer Fehler zu vermeiden Codebeispiel 33 gibt eine Implementierung an public static void main String args if args l
246. ieser Voxelm odelle existieren zwei unterschiedliche Ans tze Erstens die direkten Projektionsverfahren die 2 4 WISSENSCHAFTLICHE VISUALISIERUNG VON SIMULATIONSDATEN 43 das Voxelmodell auf eine darzustellende Ebene reduzieren und zweitens die Verfahren die zuerst die Oberfl chen im Voxelmodell suchen um diese dann unterschiedlich auszugeben Isofl chen hnlich zu Isolinien stellen Isofl chen engl isosurfaces gleiche Werte als Ober fl che dar Die Schwierigkeit dabei besteht darin die darzustellende Oberfl che zu finden Eine Methode besteht darin Konturen aus Schnittebenen zu rekonstruieren Dies ist ebenfalls in 1 ausf hrlich erl utert Eine andere Methode sind Voxel Schnittmethoden bei der f r jedes Vo xel anhand seiner acht Eckpunkte bestimmt wird ob die Oberfl che ihn schneidet und wenn wie sie es tut Bekannte Verfahren sind zum Beispiel dividing cubes marching tetrahedra und marching cubes Am Beispiel der marching cubes wird die Funktionsweise etwas n her be trachtet Cutplanes Cutsurfaces Schnittebenen und Schnittfl chen engl cutplanes cutsurfaces sind ein Spezialfall der shaded plots s Kap 2 4 3 Aus einem dreidimensionalen Datensatz wird eine Ebene herausgeschnitten und dann die Werte auf dieser Schnittebene per shaded plot Verfahren dargestellt Alternativ Kann auch eine komplette Oberfl che extrahiert und Werte auf dieser Oberfl che visualisiert werden Oberfl chenrek
247. igt als Parameter die Angabe der Schnittlinie Diese wird mit Hilfe der folgenden Parameter angegeben e start point of cutline Dieser Parameter gibt einen Punkt in der Ebene an durch den die Cutline l uft e normal vector of cutline Gibt den Normalenvektor der Cutline an CutsurfacesFilter Der CutsurfacesFilter ben tigt als Parameter die Angabe der Schnittebe ne Diese wird mit Hilfe der folgenden Parameter angegeben e start point of cutplane Dieser Parameter gibt einen Punkt im Raum an durch den die Cutplane l uft e normal vector of cutplane Gibt den Normalenvektor der Cutplane an IdentityFilter Dieser Filter gibt die Domain vollkommen ungefiltert zur ck und ben tigt daher keine gesonderten Parameter IsoLinesFilter Der IsoLinesFilter ben tigt f r eine korrekte Filterungsfunktion eine belie bige Anzahl von Zahlenwerten um f r diese jeweils eine Isolinie entlang der Punkte mit den entsprechenden Werten in der Domain generieren zu k nnen e iso values Es k nnen beliebig viele Isowerte angegeben werden die jeweils zur Generierung einer Isolinie f hren ScalarThresholdFilter Dieser Filter schneidet die Werte innerhalb der Domain auf einen vorgegebenen Bereich zu Dazu werden die folgenden Parameter ben tigt e max value Der Wert oberhalb dessen alle Werte auf den gegebenen Maximalwert gesetzt werden e min value Der Wert unterhalb dessen alle Werte auf den gegebenen Minimalwert gesetzt werden e variable n
248. iken B 3 EINBINDUNG ANDERER PROGRAMMPAKETE 203 Wichtig die Reihenfolge und der Typ der Statistikwerte m ssen exakt mit der Sequenz der open_stat put_stat und close_stat Befehle im eigentlichen Modul bereinstim men da ansonsten die richtige Zuordnung nicht m glich ist und falsche Statistikwerte geliefert werden Damit sind die serverseitigen Anpassungen vollst ndig anschlie end folgt die Anpassung des Moduls Generell l t sich sagen da sich ein vorhandenes Programm ohne irgendwelche n derungen einbinden l t Allerdings sind dann die Steuerungsm glichkeiten insbesondere die Kassettenrekorderfunktion sehr begrenzt Das folgende Programm implementiert in FORTRAN ist eine einfache Applikation welche die L sung des Poissonproblems mit Hilfe des FiniteElemente Paktes FEAT2D berechnet ROGRAM FEAT2DTESTO P IMPLICIT DOUBLE PRECISION A C H O U W Z LOGICAL B include nnwork inc PARAMETER NBLOCA 1 NBLOCF 1 CHARACTER SUB 6 FMT 15 CPARAM 120 CHARACTER CFILE 60 ARRDA 6 ARRDF 6 CHARACTER CFILE1 15 DIMENSION VWORK 1 KWORK 1 DIMENSION KABA 2 NNAB NBLOCA KF NNAB NBLOCF DIMENSION KABAN NBLOCA KFN NBLOCF DIMENSION BCONA NBLOCA BCONF NBLOCF DIMENSION LA NBLOCA
249. im Raum weiter verfeinert werden kann Tetra ist ein K rper der aus vier Seitenfl chen besteht z B eine dreiseitige Pyra mide Hexa ist ein K rper der aus sechs Seitenfl chen besteht z B ein W rfel e 2D Boundaries BoundaryBase ist die Basisklasse f r alle Boundaries BoundaryCircle beschreibt einen kreisf rmigen Bereich in der Ebene Der Mit telpunkt des Kreises wird durch einen Knoten beschrieben Der Radius wird als Double Wert gespeichert Ein Kreisausschnitt wird ebenfalls durch diese Klasse beschrieben wobei Start und Endwinkel als Double gespeichert und als Winkel im Bogenma interpretiert werden Kreissegmente sind jedoch nur als Teil einer BoundarySegmentList zul ssig Ist der Endwinkel gr er als der Startwinkel so ist die Umlaufrichtung des Kreises gegen den Uhrzeigersinn Dies wird durch FEAST so interpretiert da der Kreisbogen eine Fl che umschlie t Ist die Um laufrichtung gegen den Uhrzeigersinn so beschreibt die Datenstruktur die Fl che au erhalb des Kreises Der Winkel 0 liegt auf 3 Uhr Position 3 5 DAS MODUL GRID 81 BoundarySegmentList kann aus Kanten und Kreissegmenten bestehen Diese wer den in einer Liste abgespeichert Java Datenstruktur Vector Die Reihenfolge in der Liste spiegelt die Reihenfolge der Segmente wieder und gibt damit die Um laufrichtung der BoundarySegmentList an Auch hier gilt sind die Segmente im Uhrzeigersinn angeordnet so beschreibt diese K
250. imsklasse eine Fehlermel dung generieren und an die aufrufende Klasse weiterleiten Insbesondere sind die beiden Me thoden des Interface Wrappable immer bijektiv Das Paket stellt Klassen f r die folgenden Datencontainer zur Verf gung f r Protokollrepr sentationen und das konkrete API wird auf die Anh nge D 3 und C 5 verwiesen e Protokollheader und Footer e Modulbeschreibungen Modullisten und Modulstatusberichte Problembeschreibungen Parameterlisten und globale Konfigurationslisten Parametertypen skalare und vektorielle Werte Gitter und Geometrien m aus n Aus wahlm glichkeiten Funktionsdeklarationen und Gruppierungsparameter e GUI Beschreibungen Statistiken und Statistiklisten e Ergebnisse und Ergebnislisten 66 KAPITEL 3 SYSTEMBESCHREIBUNG e Fehler und Fehlerlisten die auch als Statusmeldungen verwendet werden k nnen sowie e Datenquellen Beschreibungen Klassen die Listen von verschiedenen Interimsobjekten kapseln bieten zus tzlich die blichen Listenoperationen wie hinzuf gen l schen oder durchlaufen Alle Parameterklassen beinhalten erg nzend zwei weitere Methoden weil das Protokoll vor schreibt die in ihnen gekapselten Informationen auf zwei verschiedene Weisen ber das Netz werk zu versenden Die normalen durch das Interface Wrappable vorgeschriebenen Metho den parsen jeweils die vollst ndige Beschreibung die set Varianten nur eine
251. in eine funktionierende dynamisch erzeugte graphische Benutzero berfl che transferiert werden k nnen sind die im Protokoll s Kap D 3 spezifizierten Regeln zu beachten 3 2 4 Die Schnittstelle zu CONTROL F r das CONTROL Modul bietet das NET Paket eine spezielle H llklasse den ControlWrap per F r jeden Protokollbefehl stellt diese Klasse eine eigene Methode bereit Jede dieser Me thoden f hrt die komplette geforderte Protokollsequenz aus und gibt das Ergebnis der Kommu nikation im erfolgreichen Fall als Instanz einer der Klassen aus dem interim Paket und sonst per NetException zur ck Insbesondere implementiert diese Klasse das vollst ndige Protokoll Damit ist durch Kombination einiger der angebotenen Methoden auch die Programmierbarkeit gew hrleistet Einer Instanz des CONTROL Moduls ist immer ein ControlWrapper zugeordnet der trotz dem die Kommunikation zu beliebig vielen Modulen bietet Dies geschieht jeweils ber die den Methoden bergebene Referenz auf ein Module Objekt s u ber diese Referenzen ist der ControlWrapper auch mit Hilfe eines einfachen lock Mechanismus threadsafe implemen tiert worden Die Methoden die eine neue Verbindung verwenden und diese wieder schlie en sind schon per Definition threadsafe Alle anderen warten auf ein lock und erst wenn die Ver bindung frei ist wird sie von der n chsten Methode reserviert 3 2 DAS MODUL NET 67 Klassifizierung der Methoden Es ist zwi
252. ine LOCUTUS_SETDOUBLEPAR 14 Codebeispiel 80 Befehlskonstanten define LOCUTUS_STATUS_UNKNOWN 0 define LOCUTUS_STATUS_STARTED 1 define LOCUTUS_STATUS_CONFIGURED 2 define LOCUTUS_STATUS_RUNNING 3 define LOCUTUS_STATUS_FINISHED 4 Codebeispiel 81 Modul Status define LOCUTUS_TAPE_UNKNOWN 0 define LOCUTUS_TAPE_PAUSE 1 define LOCUTUS_TAPE_PLAY 2 define LOCUTUS_TAPE_STOP 3 Codebeispiel 82 Modul Kassettenrecorder Status C 7 DAS PAKET VISION 229 Befehl Bedeutung ivalue ipar dpar Bemerkung NOCMD kein Kommando ignorieren OK Statusbefehl ignorieren PASS Statusbefehl ignorieren GETSTATUS Statusbefehl ignorieren wird intern bearbeitet READDATA Konfiguration wird gew hnlich von VINCULUM bearbeitet START Rechnung gestartet STOP Rechnung gestoppt STEP Rechnung gesteppt FORWARD Rechnung vorw rts gespult Schrittzahl REWIND Rechnung r ckw rts gespult Schrittzahl EXIT Modul verlassen UNKCMD Unbekanntes Kommando ignorieren PAUSE Rechnung soll pausieren PAUSE hebt ein voriges PAUSE wieder auf SETINTPAR Integerparameter setzen ID Wert SETDOUBLEPAR Doubleparameter setzen ID Wert Tabelle C 1 Bedeutungen der Befehle und Parameter C 7 Das Paket VISION Dies
253. inem Circle im linken Bereich des Rechtecks 1 2 GRID starten In den 2D Modus wechseln Da im 2D Modus gearbeitet wird kann die Z Koordinate ignoriert werden In den Optionen den Gitterabstand auf 1 stellen das Maus Snapping einschalten den Snapping Abstand f r X und Y auf 1 stellen Den Anzeigebereich auf X 5 Y 5 X 10 Y 5 einstellen In das Fenster zoomen so da der Anzeigebereich ausreichend gro dargestellt wird Den Bereich in die Mitte des Fensters schieben Das Segment List Werkzeug ausw hlen Abbildung A 46 2D Anzeigebereich vorbereiten A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER153 7 Gegen den Uhrzeigersinn die Eckpunkte 4 4 4 4 4 9 9 4 sowie wieder den ersten Eckpunkt anklicken Damit wird die SegmentL ist angelegt Abbildung A 47 2D SegmentList anlegen 8 Da der Editor noch keine Undo Funktion unterst tzt sicherheitshalber speichern 9 Einen Circle mit Mittelpunkt 0 0 und Radius 3 anlegen Dazu e entweder das Maus Werkzeug Circle e oder den Circle Dialog w hlen Um den Circle Dialog zu benutzen mu der Mit telpunkt an der Stelle 0 0 bereits existieren Als innere Boundary mu der Circle im Uhrzeigersinn gerichtet sein deshalb ist im Circle Dialog ein Startwinkel von 360 Grad und ein End Winkel von 0 Grad anzugeben 10 Den Rechenbereich mit Quads f llen 154 ANHANG A BENU
254. ings mu es konvex sein BoundarySphere Ein 3D quivalent zu den Kreisen in 2D Allerdings k nnen keine Ku gelsegmente angegeben werden da es kein quivalent zu den BoundarySegmentListen existiert Eine Kugel besteht aus einem Mittelpunkt und Radius BoundaryCylinder Ein Zylinder Randobjekt beschrieben durch zwei Punkte Top und Bot tom die die Mittelachse des Zylinders bilden Zus tzlich beschreibt der Radius die Dicke des Zylinders im Raum Ein Zylinder ist schon per Definition ein dreidimensionales Ob jekt und kann deswegen nur im 3D Modus verwendet werden Boundary Triangulation Dies ist das einzige Boundary Objekt das in GRID nicht direkt be arbeitet werden kann Man kann aber eine obj Datei importieren die automatisch als ein Boundary Triangulation Objekt geladen wird und diese in die Domain einbinden skalieren drehen etc Es besteht intern aus Punkten die durch Dreiecke verbunden werden Dieses Gebilde sollte f r die L ser konvex sein 152 ANHANG A BENUTZERHANDBUCH A 5 5 Ein 2D Beispielproblem In diesem Kapitel wird beispielhaft erl utert wie sich die Geometrie f r den DFG Benchmark Flow around a circle anlegen l sst Mehr Details ber dieses Beispiel stehen in The Virtual Album of Fluid Motion unter http www featflow de album bereit Die Geometrie f r dieses Beispiel ist recht einfach aufgebaut Sie besteht aus der u eren Boundary einem achsenparallelen Rechteck sowie einer inneren Boundary e
255. inie 1 0 0 0 Startpunkt 0 0 0 Endpunkt 0 Typ des dritten Segments Linie 17 0 AO Startpunkt 0 0 1 0 Endpunkt 0 Typ des vierten Segments Linie 0 0 1 0 Startpunkt 0 0 0 0 Endpunkt 1 Anzahl Segmente auf Boundary 2 1 Typ des einzigen Segments Kreis 1 0 1 0 Mittelpunkt 1 0 0 0 Radius Platzhalter 0 0 3 1415 Start und Endwinkel Codebeispiel 85 Spezifikation des FEAST Formats in 2D R nder Knoten Der n chste Block beinhaltet die Knotenliste Hier ist zwischen inneren Knoten die durch ihre kartesischen Koordidaten definiert werden und Randknoten die eindeutig durch den Index des Randes auf dem sie liegen und dem Parameterwert auf diesem Rand definiert werden zu unterscheiden Zur Erinnerung Jedes Segment eines Randes entspricht einem Pa rameterintervall der L nge 1 das erste Segment ist ber 0 1 parametrisiert das zweite ber 1 2 usw Knotenliste 0 0 0 0 0 X Y 0 f r inneren Knoten dieser Knoten hat also Nummer 1 2 0 3 0 0 innerer Knoten mit Nummer 2 0 25 00 1 Parameterwert 0 25 Platzhalter 0 Randnummer 1 also Randknoten mit Nummer 3 03 0500 Randknoten mit Nummer 4 usw Codebeispiel 86 Spezifikation des FEAST Formats in 2D Knoten Da alle Indices mit 1 beginnen ist die Unterscheidung zwischen den Knotentypen eindeutig ber die letzte Angabe 0 oder gt 1 zu treffen Kanten Kanten sind jeweils definiert ber i
256. inken Seite der dynamischen GUI eine Fehlermeldung Das gleiche passiert wenn man in der dynamischen GUI einen Schritt vor oder zur ck gehen will Ein Beispiel f r ein Textfeld ist in Abb A 13 zu sehen Checkboxen Hier k nnen ein oder mehrere Checkboxen gegeben sein Mit einem H kchen wird die Auswahl best tigt Es ist eine Mehrfachauswahl m glich 124 ANHANG A BENUTZERHANDBUCH Logewel File 1 Beschreibung This paramaier sers the varboshyat iha debug output of the program to fle output Logievel Pte O Minkmaler Wert Maximaler Wert 10 Feemat iragar Ende it nonunk Abbildung A 13 Textfelder Straensha G Beschebemg Sollen Screenshot nach Jedem berechneten Zetschritt atg snominan werden wi Sorens Abbildung A 14 Checkboxen Radiobuttons Es kann nur einer der Radiobuttons jeweils ausgew hlt werden womit nur eine Einzelauswahl m glich ist Kind of Calculaion STOK Beschreibung no test Nwier Stokes 0 Stokes 1 Abbildung A 15 Radiobuttons Slider Es sind ein oder mehrere Slider m glich Der Wert kann entweder durch Verschieben des Sli ders mit der Maus oder durch Ver ndern des Spinnerwertes manipuliert werden Im Spinner wird der genaue Sliderwert angezeigt Es sind nur Integer Werte m glich Projectionschanm PROX Beschreibung O lorder 1 order lt O mte Projenionscheme PROD Q Abbildung A 16 Slider Farbauswahl Durch Bet tigen des w hle Farbe
257. int2d aPoint2d bzw public boolean isInElement Point3d aPoint3d an anhand welcher getestet werden kann ob das Element den gegebenen Punkt enth lt vgl entsprechende Klassen f r den Testalgorithmus Um die Geschwindigkeit einer Suche zus tz lich zu erh hen werden die Methoden public boolean isInBoundingBox Point2d aPoint2d und public boolean isInBoundingBox Point3d aPoint3d angeboten welche den Test auf die achsenparallele Boundingbox des Elements reduziert Beide Suchtypen werden in der Klasse ParticleTracingMapper realisiert Zellsuche globale Suche Zum Start jeder Berechnung wird f r jedes Partikel eine lineare Suche ber alle Elemente durchgef hrt Hierbei wird der entsprechende Vektor durchlaufen und seine Elemente mit der Boundingbox Methode berpr ft Nur wenn dieser Test positiv ausf llt wird die aufwendigere Methode isInElement ausgef hrt Sollte ein Partikel genau auf einer Kante bzw auf einer Seitenfl che eines Elements liegen wird das Element zur ckgeliefert welches als erstes in dem Vektor berpr ft wird Der Interpolations Algorithmus vgl entsprechende devisor vision ds Klassen liefert bei allen Elementen in diesem Fall das gleiche Ergebnis 3 6 DAS MODUL VISION 99 Zellsuche Nachbarschaftsbeziehung Wurden bereits eine Berechnung zur Ermittlung von Partikelbewegungen durchgef hrt so sind bereits Informationen ber deren Positionen vorhanden Diese Informationen werden in
258. ion protocol command CMDREPLY 7 LOE Subtype CONTROL VISION CONTROL NUMERICS CONTROL GRID CONTROL GID CONTROL METIS SetCompleteConfigurationReply End_SetCompleteConfigurationReply Codebeispiel 120 SetCompleteConfigurationReply protocol command CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS le id CMD 8 Subtype Command Start ModuleID INT modul InstanceHandle INT End_Command T handle Codebeispiel 121 Start protocol command 269 270 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN CMDREPLY 8 Star Subt Reply LOE ype End_StartReply CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONT ROL METIS Codebeispiel 122 StartReply protocol command CMD 9 Subtype Command Stop ModulelID InstanceHandle End Command CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS INT module id INT handle Codebeispiel 123 Stop protocol command CMDREPLY 9 StopReply LOE End_StopReply Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Codebeispiel 124 StopReply protocol command CMD 10 Command Pause ModulelID InstanceHandle End _ Command Subtype CONTROL NUM
259. isbehandlung in GRID realisieren AddCircleListener Dieser Listener behandelt die Ereignisse beim Erstellen eines Circles AddCubicleListener Dieser Listener behandelt die Ereignisse beim Erstellen eines Bounda ryCubicles AddCylinderListener Dieser Listener behandelt die Ereignisse beim Erstellen eines Bounda ryCylinders AddEdgeListener Dieser Listener behandelt die Ereignisse beim Erstellen einer Edge AddNodeListener Dieser Listener behandelt die Ereignisse beim Erstellen eines Node AddQuadListener Dieser Listener behandelt die Ereignisse beim Erstellen eines Quads AddSegmentListListener Dieser Listener behandelt die Ereignisse beim Erstellen einer Boun darySegmentList AddSphereListener Dieser Listener behandelt die Ereignisse beim Erstellen einer Boundary Sphere AddTriListener Dieser Listener behandelt die Ereignisse beim Erstellen eines Tri Objekts DeleteSelectionListener Dieser Listener behandelt die Ereignisse beim L schen der Aus wahl ExitListener Dieser Listener behandelt die Ereignisse beim Beenden von GRID GridKeyListener Dieser Listener behandelt die Ereignisse bei der Tastatureingabe MoveSelectionListener Dieser Listener behandelt die Ereignisse beim Bewegen der Aus wahl MoveViewListener Dieser Listener behandelt die Ereignisse beim Bewegen der Ansicht eines Fensters NewProjectListener Dieser Listener behandelt die Ereignisse beim Erstellen einer neuen Do main RotateSelectionListener Dieser
260. ision util EmptyParameterList Stellt eine leere Parameter Liste zur Verf gung EmptyProblem Bereitet ein leeres Problem f r die Modul Kopnfiguration vor FileStreamer Erzeugt einen threadf higen Stream aus einer Datei FindConfigurables Sucht die Parameterlisten aus allen in der Configurables xml Datei ein getragenen das I_Configurable Interface implementierenden Klassen zusammen 234 ANHANG C API DOKUMENTATION LegendLabel Eine JPanel Unterklasse die eine f r verschiedene Mapper ben tigte Legende anzeigt LocaleHandler Ist f r die Synchronisation der verwendeten Locales in allen Pipeline Elementen zust ndig Log4JConfigurator Initialisiert das VISION interne Logging MouseConfig Datenstruktur zum Speichern der vom Benutzer get tigten Maus Transformationen an der dargestellten Szene MouseManipulator Erlaubt das Drehen Rotieren und Zoomen der im VisionViewer ange zeigten Szene mit der Maus NoErrors Erzeugt eine leere Fehlerliste als Statusmeldung f r CONTROL NetException da sie logisch keinem anderen Paket zuzuordnen ist Sie dient als Container f r alle Exceptions die innerhalb des Pakets auftreten k nnen und an andere Module weitergege ben werden C 7 14 devisor net wrappers Dieses Paket beinhaltet die zentralen Schnittstellen zwischen Modulen und dem Netzwerk ControlWrapper Diese Klasse stellt f r jeden Protokollbefehl s Kap D 3 eine Methode zur Verf gung die eben diese Protokollsequenz durchf
261. ispiel 130 RewindReply protocol command CMD 12 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command FastForward ModuleID INT module id InstanceHandle INT handle Steps INT steps eEnd_Command Codebeispiel 131 FastForward protocol command CMDREPLY 12 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS FastForwardReply LOE End_FastForwardReply Codebeispiel 132 FastForwardReply protocol command CMD 13 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command GetCurrentStatistics ModuleID INT module id InstanceHandle INT handle End_Command Codebeispiel 133 GetCurrentStatistics protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS CMDREPLY 13 Subtype GetCurrentStatisticsReply Statistics0 Date GOODSTRING date Time GOODSTRING time TimeStep INT timestep SCALAR VECTOR End_Statistics End_GetCurrentStatisticsReply CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS 273 Codebeispiel 134 GetCurrentStatisticsReply protocol command CMD 14 Subtype Command GetCompleteStatistics ModuleID INT module id InstanceHandle INT handle End_Command CONTR
262. istics parameter conf addParameter generateStatistics mc setConfigurationList conf return mc register problem and its parameter list ModuleCapabilities mc new ModuleCapabilities ParameterList pl new ParameterList il8n and create global conf list with one parameter ParameterList conf new ParameterList il8n i18n Codebeispiel 23 Rahmenklasse fiir die Problem und Parameterspezifikation Zur besseren Ubersicht werden diese Deklarationen in einer eigenen Klasse vorgenommen die lediglich eine statische Methode zur Verf gung stellt Der Coderahmen kann Codebeispiel 23 entnommen werden Es sei daran erinnert da alle Interimsklassen in ihren Konstruktoren eine Referenz auf ihre Lokalisierung bergeben bekommen in den folgenden Codebeispielen ist sie immer mit i18n bezeichnet Im n chsten Schritt wird das Problem konfiguriert wie Codebeispiel 24 zu entnehmen ist 186 ANHANG B ERWEITERUNGSM GLICHKEITEN create problem Problem p new Problem ID PROBLEM_INCREMENTSIMULATOR name IncrementSimulator version V description A long expected innovation in low performance n computing just watch your integers skyrocket n New in V now even with stock supervisor tape recorder support and locale Problem LOCAL_STARTSTOP il8n Codebeispiel 24 Definition des Problems Die Definition des Problems ist m
263. it der Angabe der zugeh rigen Parameterliste abgeschlossen s Codebeispiel 25 Es sei daran erinnert da alle Parameter IDs unterhalb von 1024 reserviert sind Insbesondere hat also der Parameter GENERATESTATISTICS die ID 1 weil er steuert ob Statistiken Huckepack an das CONTROL Modul transferiert werden sollen oder nicht create initial value parameter ScalarParameter initialvalue new ScalarParameter INCREMENTSIMULATOR_INITIALVALUE ID Initial Value name WIVW short name false not configurable integer in 2 31 2 31 1 description ScalarParameter FORMAT_ INTEGER format vo default value SSS in my stock portfolio unit Integer toString Integer MAX_VALUE max value Integer toString Integer MIN_VALUE min value new TextFieldDescription il8n GUI i18n resource bundle Codebeispiel 25 Definition eines Parameters B 2 TUTORIAL ZUR INTEGRATION EINES NEUEN MODULS IN DAS SYSTEM 187 Codebeispiel 26 zeigt wie ein Parameter zur Steuerung der Statistiken generiert wird ParameterList selectionlist new ParameterList il8n ScalarParameter stat new ScalarParameter 5000 current value VAL false current value in the increment simulator ScalarParameter FORMAT_INTEGER Integer toString 0 wom i Integer toString Integer MAX_VALUE Integer toString Integer MIN_VALUE new TextFiel
264. itschritte auszuw hlen Mit Gehe ist es m glich zu einem Zeitschritt in der Liste zu springen was besonders bei einer gro en Anzahl von Zeitschritten n tzlich sein kann F r die Angabe eines Zeitschritts hat man generell immer zwei M glichkeiten entweder man gibt die Position des Zeitschritts in der Liste an oder die Zeitschrittnummer Bei Position wird die Eingabe des Zeitschritts als die Position des gew nschten Zeitschritts interpretiert Gez hlt wird von 1 an Bei wert wird die Eingabe als Zeitschrittnummer interpretiert Falls es diesen Zeitschritt nicht gibt wird entweder der n chsth here oder der n chstniedrigere Wert gew hlt was ber einen Toggle button eingestellt werden kann Der Togglebutton kann die zwei Zust nde F und C f r Floor und Ceil annehmen es wird also entweder hoch oder abgerundet Falls sich der eingegebene Wert au erhalb der angegebenen Grenzen befindet wird immer der h chste oder niedrigste Wert genommen F r die Auswahl von Zeitschritten gibt es nun zwei M glichkeiten entweder per Maus oder per Textfeldeingabe Die Eingabe ber Textfeld eignet sich besonders f r gro e Intervalle Das Intervall wird dazu in den Feldern Von und Bis eingetragen Die Schrittweite Kann ber einen Spinner eingestellt werden d h bei z B Schrittweite f nf wird nur jeder f nfte Zeitschritt ausgew hlt F r die Angabe des Intervalls kann man wieder zwischen Wert
265. ittleren Gleichung k nnen die Unbekannten x _ und amp i 1 eliminiert werden Ci eae i 1Ci La ist 2 tl i 1Ci d i Qi 1 Qi 1 Qi 1 i 1 Qi 1 Qi 1 Damit diese Formel f r alle 1 2 4 n gilt definiert man als Erleichterung zus tzlich C i Cn41 bn baa da sowie An l Jetzt k nnen im Reduktionsschritt Koeffizienten f r die neuen Gleichungen der geraden Index werte 7 eingef hrt werden Ci Ci 1Ci Qi 1 WO a ep aT L g ae pa nn ba Qi biCi 1 i 1 i 2 4 on 2 9 b bby aa I dcfa di bidisi aisa 34 KAPITEL 2 GRUNDLAGEN Damit erh lt das Gleichungssystem folgende Gestalt a bi T d 0 a o of a c3 a3 b3 d3 P 0 a 0 DW di Cs as bs ds 0 2 10 Oo a 0 W a Do af Pe a Man sieht da zum einen die Gleichungen mit geraden Indizes ein lineares Gleichungssystem der Ordnung m mit tridiagonaler Koeffizientenmatrix f r die Unbekannten mit geradem Index bilden und sich zum anderen die Unbekannten mit ungeraden Indizes durch Vorw rtseinsetzen bei bereits berechneten Werten der Unbekannten mit geraden Indizes aus den Gleichungen mit ungeraden Indizes berechnen lassen Hat nun das durch zyklische Reduktion gewonnene Glei chungssystem halber Ordnung wieder eine gerade Anzahl an Unbekannten kann der Proze rekursiv fortgesetzt werden Dieser modifizierte Algorithmus konkret der Reduktionsschritt 2 9 l t sich vektorisieren Zu
266. k nnen sie durch die Zeichenfolge n umschrieben werden Beschreibungen in weiteren Sprachen k nnen in optionalen Dateien gemacht werden die nach dem folgenden Muster benannt sein m ssen FindConfigurablesil8n_de properties wobei de das Sprachk rzel f r Deutsch ist und durch entsprechende andere Sprachk rzel ersetzt werden kann In diesen zus tzlichen Dateien m ssen nicht alle drei Schl sselw rter vorkommen Falls eines fehlen sollte wird auf den Eintrag in FindConfigurablesil8n properties zur ckgegriffen In http www ics uci edu pub ietf http related iso639 txt ist eine Liste der verf gbaren g lti gen Sprachk rzel zu finden Nun mu die entsprechende Klasse nur noch kompiliert werden und ber den Klasspath er reichbar sein dann wird beim n chsten Konfigurieren eines VISION Moduls in der GUI auch die neue Komponente angezeigt B 1 2 Mapper Um einen Mapper in die Pipeline zu integrieren sind vier hnliche Arbeitsschritte notwendig B 1 EINBAU WEITERER VISUALISIERUNGSTECHNIKEN IN DAS VISION MODUL175 1 Das Schreiben einer Klasse die das Interface devisor vision pipe mapper I_Mapper und das Interface devisor vision I_Configurable implementiert Das passiert typischer weise indem sie von der Klasse AbstractMapper aus demselben Paket erbt 2 Die Implementierung der fehlenden Methoden 3 Das Zuf gen des neuen Pipeline Elements zu der XML Datei devisor vision util Configurables xml 4 Und zuletzt das Einf
267. keine Anisotropie usw Codebeispiel 88 Spezifikation des FEAST Formats in 2D Elemente D 1 2 FEAST3D Header Der Header unterscheidet sich nur durch die Angabe 3D vom 2D Format Anzahlen Zus tzlich wird zwischen der Anzahl der Kanten und der Elemente die Anzahl der Fl chen angegeben 4 Anzahl Parallelbloecke 25 Anzahl Macro Knoten 16 Anzahl Hacro Zellen 40 Anzahl Macro Kanten 40 Anzahl Macro Flaechen 4 Anzahl Boundaries Codebeispiel 89 Spezifikation des FEAST Formats in 3D Anzahlen Randbeschreibungen Jede Boundary besteht genau aus einem Rand Grundelement zur Ver f gung stehen die vier folgenden Randtypen e Quader definiert durch seine 8 Eckpunkte in der folgenden Reihenfolge Die ersten vier Punkte definieren gegen den Uhrzeigersinn ein Viereck im Raum die n chsten vier eben falls ein Viereck in der Art da Knoten 1 und 5 durch eine Kante verbunden sind usw e Kugel definiert durch den Mittelpunkt und den Radius e Zylinder definiert durch den Mittelpunkt des Grundkreises den Radius des Grundkreises und den Normalenvektor auf den Grundkreis entlang der Mittelachse des Zylinders Die 240 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN L nge dieses Vektors definiert die H he des Zylinders Dies entspricht einer Hesseschen Normalform f r die Ebene in der der Grundkreis liegt und ist daher eindeutig e Dreiecksnetz definiert durch die Angabe aller Eckpunkte
268. kommende Verbindungen werden akzeptiert und an eine neu gestartete Instanz des AbstractCommunicationThread s u weitergeleitet Wrappable Ein Interface das von allen Modulen implementiert werden mu um mit dem AbstractModuleWrapper und AbstractCommunicationThread kommunizieren zu k n nen Es definiert Methoden um den Nachrichtenaustausch zwischen Wrapper und Modul sicherzustellen C 5 DAS PAKET NET 223 AbstractCommunicationThread Diese Klasse kapselt eine komplette Kommunikationsse quenz Parsen der ankommenden Nachricht Generierung der Antwort und deren R ck sendung Insbesondere ist das vollst ndige Protokoll f r ein von CONTROL verschiede nes Modul implementiert GridWrapper Dies ist die speziell an die Bed rfnisse des Moduls GRID angepa te Erweite rung des AbstractModuleWrapper GridCommunicationThread Die speziell an die Bed rfnisse des GRID Moduls angepa te Erweiterung des AbstractCommunicationThread F r das Modul irrelevante Proto kollbefehle werden mit einer Fehlermeldung quittiert VisionWrapper Eine speziell an die Bed rfnisse des Moduls VISION angepa te Erweiterung des AbstractModuleWrapper VisionCommunicationThread Die speziell an die Bed rfnisse des VISION Moduls angepa te Erweiterung des AbstractCommunicationThread WrapperUtilities Diese Klasse bietet einige einfache statische Methoden die von den Klas sen in diesem Paket h ufig ben tigt werden C 5 3 devisor net interim Dieses Pak
269. ktor an einen freien Port der beim Be triebssystem angefordert wird gebunden Dieser Port wird dann ber eine spezielle Protokoll sequenz an die aufrufende NEXUS Instanz zur cktransferiert Das aufrufende Modul mu das Interface Wrappable implementieren und ist verantwortlich die ben tigten Referenzen kor rekt zu setzen Sobald dies geschehen ist kann die Initialisierung durch den Aufruf der beiden Methoden updateLocalization und startCommunication beendet werden Die erste Methode sichert die Konsistenz der zugrundeliegenden Sprachdateien zwischen Modul und H llklasse die zweite Methode startet eine Endlosschleife in der die H llklasse neue Verbindungen akzep tiert und basierend auf diesen eine neue Instanz der Klasse AbstractCommunicationThread startet Eine weitere wichtige Funktionalit t die in dieser Klasse gekapselt ist ist die Bereit stellung einer outbox einer Instanz der Klasse NotificationQueue die oben erl utert wurde In die outbox kann das Modul Statusmeldungen und Fehlerlisten als Instanzen der Klasse Li stOfErrors einh ngen oder Statistiken zur Versendung an das aufrufende CONTROL Modul anmelden Diese Objekte werden dann wie oben beschrieben im Huckepack Stil beim n ch sten ping Signal bermittelt Die Klasse AbstractCommunicationThread implementiert das vollst ndige Protokoll Es wird zun chst der Protokollheader eingelesen Basierend auf der n chsten Zeile wird entschie den welcher Protokollblock folgt
270. l be used by GMV to generate the entire mesh Note because GMV uses this information to generate a large mesh of cells the number of cells specified with the cells keyword must be zero For any meshes that are closed you need to repeat the necessary nodes for closure Node data input may also be performed by consulting a remote file see the fromfile description below Nodev The nodev keyword is an alternate form of the nodes keyword Use nodev to input the node coordinates as a triplet on each line There will be nnodes lines of the x y and z coordinate on each line The nodev keyword cannot process a structured brick mesh Cells The cells keyword indicates the beginning of cell descriptions The variable ncells on this line are the number of cell descriptors that follow There are six standard cell types that GMV can read line tri quad tet hex pyramid prism phex8 phex20 3line 6tri 8quad ptet4 ptet10 ppyrmd5 ppyrmd13 pprism6 and pprism15 The type is followed by the number of vertices contained in the cell 2 for line 3 for tris 4 for quads 4 for tets 8 for hex 5 for pyramid 6 for prisms 8 for phex8 20 for phex20 etc The next line contains the node numbers for the cell vertices The vertex ordering for selected standard cell types is shown in Fig 9 1 This ordering must be followed in order to ensure outward pointing normals The tri and quad cells are simple two dimensional entities that employ a sequential vertex
271. l bin die Installation ausf hren Windows Systeme Nach dem Download die Installation durch Doppelklick auf install exe starten A 4 3 Allgemeine Beschreibung CONTROL besteht aus einem Hauptfenster in dem in internen Fenstern die Projekte verwaltet werden Eine Steuerung der Projektverwaltung und Serververwaltung erfolgt ber die Men leiste des Hauptfensters die Verwaltung der Module innerhalb eines Projekts hingegen erfolgt immer ber die Men leiste des internen Projektfensters A 4 4 Serververwaltung Die Serververwaltung erfolgt unabh ngig von der Projektverwaltung wird jedoch in Projekten benutzt um neue Server und Module ausw hlen zu k nnen Neuen Server anlegen ber Server gt Neuer Server kann ein neuer Server angelegt werden Es erscheint der in Abb A 2 gezeigte Dialog F r den neuen Server m ssen Alias Host Port und Benutzername angegeben werden wobei der Alias eindeutig sein mu Mit Verbindung testen kann getestet werden ob Verbindung zu dem Server aufgenommen werden kann Serververwaltung ber Server gt Serververwaltung kann die Serververwaltung ge ffnet werden Es er scheint der in Abb A 3 gezeigte Dialog In der oberen Liste Serverliste werden al le verwalteten Server angezeigt das Textfeld Serverbeschreibung enth lt jeweils die 112 ANHANG A BENUTZERHANDBUCH Saning Nadule FawPoissonon Hast lacadhost OKNodue started Ok Starting
272. lasse den inneren Bereich und an sonsten den u eren Bereich e 3D Boundaries BoundarySphere beschreibt eine Kugel im Raum Der Mittelpunkt der Kugel ist ein Knoten der Radius wird als Double gespeichert BoundaryCubicle beschreibt einen Quader im Raum Er wird durch die Angabe von acht Knoten beschrieben Die Bedingung da nur rechte Winkel erlaubt sind ist nicht in der Datenstruktur verankert sondern wird nur beim Erstellen im Editor erzwungen BoundaryTriangulation beschreibt einen K rper der durch Dreiecke definiert wird Dazu wird die Hilfsdatenstruktur Triangle benutzt Die Instanzen von Tri angle werden in einem Vector abgelegt In der Triangle Klasse werden zus tz lich zu den drei Knoten die die Eckpunkte des Dreiecks bilden Referenzen auf die direkt benachbarten Dreiecke abgespeichert Die Klasse devisor framework toolbox GeometryExtractor erzeugt aus einem Java3D Szenegraphen eine Boun daryTriangulation Da der Szenegraph jedoch redundante Dreiecke enth lt gehen diese auch in die Boundary Datenstruktur mit ein Urspr nglich war geplant die Triangulation aus einer vorgegebenen Punktemenge zu erzeugen Dies war jedoch im Rahmen der Projektgruppe nicht mehr zu verwirklichen Zwei Klassen die in der bisherigen Beschreibung ausgelassen wurden sind BoundaryNode und BoundaryNode3D Diese dienen der Angabe von relativen Positionen der Knoten Sie besitzen jedoch die gleiche Funktionalit t wie ElementNodes
273. lati T ng Airfoil nie Sirp 125 Streamline Abbildung 2 21 Streamlines vorgeschlagen Pathlines sind Trajektorien eines Teilchens d h direkte Plots der L sungsfunk tion f r den gegebenen festen Anfangswert Streaklines sind Linien die zu jedem Zeitpunkt alle aus derselben Startposition emitierten Partikel verbinden mit anderen Worten zu jedem 2 4 WISSENSCHAFTLICHE VISUALISIERUNG VON SIMULATIONSDATEN 47 Pathli Abbildung 2 22 Pathlines Zeitschritt wird aus jeder Startposition ein neues Teilchen emitiert und mit dem Vorg nger teilchen durch eine Linie verbunden Timelines sind im Gegensatz dazu Linien die Partikel Oscillating Airfoil ar 17 gt Sirewh lite Abbildung 2 23 Streaklines aus verschiedenen Startpositionen verbinden die zum gleichen Zeitpunkt losgeschickt worden sind Tineclines Abbildung 2 24 Timelines Zellsuche Bei der Zellsuche mu zwischen zwei verschiedenen Suchtechniken welche von den gegebe nen Informationen ber die Partikel abh ngen unterschieden werden 48 KAPITEL 2 GRUNDLAGEN Wird ein Partikel in das Gebiet gesetzt so sind au er der Position keine weiteren Informationen ber das Partikel bekannt In diesem Fall wird das Partikel mittels einer linearen Suche ber alle Zellen gesucht Somit wird f r jede Zelle berpr ft ob sich das Partikel innerhalb dieser Zelle befindet Diese Suchtechnik wird am Anfang einer Berechnung benutzt Wurde bereits ein Zei
274. lbstverst ndlich noch steigern Geschwindigkeitsinterpolation Zur Interpolation der Geschwindigkeitswerte im Inneren einer Zelle kann eine gewichtete Mit telung vorgenommen werden beispielsweise mit dem Inversen des Abstandes zwischen Such punkt und Knoten engl inverse distance weighting hier prototypisch f r Hexaeder Falls in den acht Randknoten n ng der Zelle die Geschwindigkeiten v vg vorliegen so ergibt sich die interpolierte gesuchte Geschwindigkeit v x im Punkt x im Inneren der Zelle als die gewichtete Summe v x w V t WgVs wobei sich die Gewichte w in Abh ngigkeit des euklidischen Abstandes d nj x ergeben als A w e f r i 1 8 A also als Verh ltnis der Inversen des aktuellen Abstandes zum Gesamtabstand F r den Fall achsenparalleler Gitter kann trilineare Interpolation angewendet werden L sung der DGL In der numerischen Mathematik wurden viele Verfahren entwickelt um gew hnliche Diffe rentialgleichungen mit Computern zu l sen F r interessierte Leser sei auf das Vorlesungs 2 5 VERWENDETE DATENFORMATE 49 skript 29 bzw auf die Vorlesung 39 verwiesen empfehlenswert sind auch die deutschspra chigen Lehrb cher 17 18 11 Ein Ansatz besteht darin den Ableitungsoperator durch eine Reihe von hinreichend kleinen Differenzenquotienten zu ersetzen Andere Ans tze zerlegen einen Makroschritt in viele Teil schritte und hangeln sich be
275. le in der Reihenfolge Nachteile des Cell Order Verfahrens sind e Jeder Gitterpunkt und jeder ermittelte St tzpunkt der Isolinien wird doppelt besucht e Als Ausgabe erh lt man lediglich Isoliniensegmente welche noch nachbearbeitet werden m ssen um geschlossene Isolinien zu erhalten e Sich schneidende Isolinien k nnen nicht erkannt werden Beim Contour Tracing Verfahren w hlt man eine Zelle mit einem Vorzeichenwechsel be stimmt das Segment welches durch die Zelle verl uft und wechselt dann in die benachbar te Zelle in die die Isolinie hinein l uft Die Isolinie verfolgt man so lange bis entweder die Grenze des Gitters erreicht oder die Linie geschlossen wurde und w hlt danach eine neue Zelle mit Vorzeichenwechsel die man noch nicht besucht hat Vorteil gegen ber dem Cell Order Verfahren ist da man bereits fertige Isolinien erh lt Bei verstreuten Daten wird normaler weise erst ein Rechteckgitter erzeugt auf dem dann die oben genannten Verfahren angewendet werden Shaded Plots Shaded plots sind eine Weiterf hrung von Isolinien wobei hier nicht die Lini en sondern die Fl chen zwischen den losolinien durch unterschiedliche Farben Schattierungen gezeichnet werden Der gro e Vorteil dieser Technik im Gegensatz zur Isolinientechnik besteht 2 4 WISSENSCHAFTLICHE VISUALISIERUNG VON SIMULATIONSDATEN 41 darin da unzusammenh ngende Regionen mit gleichen Werten schneller erfa t werden k n nen da sie die gleiche Fa
276. le zum NET Modul wird durch den VisionWrapper realisiert vgl Spezifikati on der Netzwerkkomponenten welcher Teil der VisionControl Komponente ist Der Vision Wrapper stellt im Wesentlichen eine standardisierte Schnittstelle dar die ber die Implemen tierung des Interfaces Wrappable durch VisionControl mit dem gesamten Modul kommuni zieren kann 3 6 4 VisionControl VisionControl stellt die Kontrollinstanz der VISION Komponenten dar Auf eine entsprechen de Anfrage werden die unterst tzten Visualisierungs Elemente instantiiert abgefragt alle be n tigten Parameter gesammelt und in Form einer Parameterliste zur ckgegeben die dann s mt liche Visualisierungs Elemente mit ihren Abh ngigkeiten sowie eine Beschreibung der GUI Darstellung enthalten vgl dazu und zu den folgenden Beschreibungen auch Kapitel 3 4 7 Diese Parameterliste wird im dynamischen GUI des CONTROL Moduls dem Benutzer vorge legt der dort dann eine Visualisierungstechnik und mit den dazugeh rigen Parametern konfi gurieren kann Die fertig konfigurierte Parameterliste wird an VisionControl zur ckgegeben damit hier die Visualisierungspipeline f r die ausgew hlte Visualisierung vorbereitet werden kann 3 6 DAS MODUL VISION 87 Sobald die Visualisierung begonnen wurde werden die ankommenden Rohdaten in die Vision Domain vgl Kap 3 6 9 integriert auf der dann die konfigurierte Pipeline arbeitet VisionControl kann auf Anfrage des CONTROL Moduls
277. legende zu gro oder zu klein ist um Unterschiede richtig darzustellen e visualisation method Hier kann man aus den drei angebotenen Methoden eine Ausw h len 164 ANHANG A BENUTZERHANDBUCH single particle position Beschreibung Startposition for particles Particles position pos Particles position pos Particles position os Particles position os eli ls MIN ACT MAX Einstellungen 1 3 ala Ao X Abbrec Abbildung A 58 Einzelne Partikel erstellen Particles position pos Beschreibung Startposition for a single particle xCoord 0 0 yCoord 0 0 zCoord 0 0 Format Double I X ame Abbildung A 59 Koordinaten f r einzelne Partikel e radius for particle Um die bestm gliche Visualisierung zu bekommen kann hier der Radius der Partikel gesetzt werden ShadedPlotMapper Der ShadedPlotMapper hat zur korrekten Darstellung einer Domain fol gende Konfigurationsm glichkeiten e legend style Gibt den Stil an in dem die Legende dargestellt werden soll Die Legende kann fiir verschiedene Zwecke konfiguriert werden z B zur Anzeige von Temperaturen e show edges Gibt an ob die Kanten der Domain angezeigt werden sollen A 6 VISION DIE VISUALISIERUNG DER ERGEBNISSE single line of particles Particleline Beschreibung Startpositions for particles ine of particles start line of pa
278. lemente der Pipeline zu sammeln und komplett an das CONTROL Modul zu schicken damit sie dort dem Benutzer zur Verf gung gestellt werden k nnen Parameterlisten enthalten nicht nur den Namen und u U einen Default Wert sondern auch eine Beschreibung der GUI Repr sentation dieses Parameters Internationalisie rungs Angaben und noch einiges mehr Der Aufbau einer Parameterliste kann daher sehr komplex werden aber das Beispiel kommt mit folgenden Zeilen aus public ParameterList getParameterlist return EmptyParameterList create Codebeispiel 11 Die einfachste g ltige Parameterliste Um die Daten nicht zu ver ndern braucht man selbstverst ndlich auch keine Parame ter die vom Benutzer gesetzt werden k nnten Da ein R ckgabewert von null aber zum B 1 EINBAU WEITERER VISUALISIERUNGSTECHNIKEN IN DAS VISION MODUL171 Absturz oder zu Fehlfunktionen des GUI f hren kann wird einfach eine leere Parame terliste erzeugt und zur ckgegeben F r ein umfangreiches Beispiel einer Parameterliste vgl Kap B 1 4 public ListOfErrors configure ParameterList aList Diese Methode wird nur fiir die Elemente der Pipeline aufgerufen die vom Benutzer tat s chlich ausgew hlt wurden Der Parameter enth lt in der Regel eine verk rzte Version der Parameterliste die von getParameterlist abgefragt wurde Es befinden sich nur die Werte der Parameter in der Liste Der Aufbau dieser Methode orientiert sich h
279. liste verwaltet Falls im Baum ein Knoten ausgew hlt wird wird auf der rechten Sei te der SplitPane das entsprechende Panel angezeigt Das Panel einer Parameterliste setzt sich wieder modular aus einzelnen Panels zusammen die die GUI f r die einzelnen Parameter der Parameterliste enthalten F r alle m glichen Parameter der Parameterliste gibt es jeweils eine Klasse die als Pendant ein passendes Panel erzeugt Analog zur abstrakten Klasse Parame ter erben die Panel Klassen alle von der abstrakten Klasse AbstractDynGuiPanel Sie enth lt die abstrakten Methoden moduleIsRunning validInput und setAllParameters Die Metho de moduleIsRunning wird im Konstruktor der jeweils erbenden Klasse aufgerufen und erh lt einen Boolean Wert bergeben der anzeigt ob das Modul sich in einem laufenden Zustand befindet Falls dies der Fall ist und der gegebene Parameter nicht rekonfigurierbar ist wer den die Komponenten des Panels so disabled da zwar noch die Parameterwerte sichtbar aber nicht ver nderbar sind Die Methode validInput liefert einen Boolean Wert zur ck der anzeigt ob die Eingabe in dem Panel ein zul ssiges Format hat Die Methode setAllParame ters setzt die Eingabe aus dem GUI Panel in dem dazugeh rigen Parameter Es gibt folgende Panel Klassen e JScalarPanel f r einen ScalarParameter Die m glichen GUI Typen sind TextField TextArea Slider CheckBox oder RadioButtons e JVectorPanel f r einen VectorParameter Die m gliche
280. llung von 3D Szenen auf ein Minimum zu reduzieren Java 3D bietet e vorgefertigte Klassen f r viele Geometrieobjekte sowie Importfilter f r g ngige CAD Formate die Implementierung des Phong Beleuchtungsmodells fertige behaviour nodes die einfach in den Szenengraph eingebunden werden k nnen um mausbasierte Navigation in der 3D Szene zu erm glichen Exportfilter f r g ngige Bild und Filmdateiformate s Kap 2 5 1 und 2 5 2 voll konfigurierbare Projektionen auf ein Swing Panel das beliebig im eigenen Pro gramm eingef gt werden kann Hilfsklassen f r geometrische Transformationen etc 54 KAPITEL 2 GRUNDLAGEN Java Media Framework API Das Java Media Framework API JMF ist eine frei verf gbare Java Erweiterung des Java Herstellers SUN die jedoch nicht zum Standard Sprachumfang geh rt Das JMF kann un terhttp java sun com products java media jmf kostenlos heruntergeladen werden Das JMF erg nzt den Java Sprachumfang um Funktionen zur Audio und Videobearbeitung Zum Funktionsumfang z hlen die Aufnahme Wiedergabe Rekodierung sowie das streaming von Mediadaten Wie alle Java Pakete ist das JMF plattformunabh ngig F r die Projektgruppe wichtig ist die Unterst tzung des Quick Time Formats s Kap 2 5 2 sowohl zur Kodierung als auch zur Dekodierung Log4J Log4J ist eine kostenlose Java Klassensammlung zur vereinfachten Protokollierung eines P
281. loge ber diesen Men punkt sowie ber die dazugeh rigen Buttons in der Werkzeugleiste lassen sich Dialoge ffnen mit denen die vom Editor unterst tzten Objekte neu anlegen bearbeiten und l schen lassen 3 In den Auswahlboxen Nummer der Dialoge l sst sich festlegen ob ein neues Objekt des je weiligen Objekttyps erzeugt oder das Objekt mit der entsprechenden Nummer bearbeitet wer den soll Wurde ein zu bearbeitendes Objekt ausgew hlt so lassen sich nicht in allen Feldern neue Werte setzen die entsprechenden Felder sind nicht editierbar 4 Bestehende Objekte k nnen mit dem Knopf L schen aus der Domain entfernt werden da gt Fiir die SegmentList existiert kein Dialogfenster Sie l t sich nur mit der Maus anlegen Gel scht werden kann sie allerdings ber den L sche Boundaries Dialog Wird zum Beispiel ein bestehendes Quad bearbeitet so lassen sich die Edges aus denen das Quad besteht nicht mehr ver ndern um sicherzustellen da das Quad stets wohldefiniert ist Die Gr e des Quads lie e sich ndern indem die beteiligten Nodes verschoben werden Makroeigenschaften lassen sich nur im 2D Modus ndern da die Quads im 3D Modus keine Makroeigenschaften haben A 5 GRID EIN GITTEREDITOR FUR ZWEI UND DREIDIMENSIONALE GITTER145 bei werden auch alle Objekte entfernt die dieses Objekt enthalten Mit Anwenden werden die Werte bernommen das Dialogfenster bleibt f r weitere Eingaben offen Bei OK wer
282. lprojektion Bei der Parallelprojektionen sind alle Projektoren modulo Parallelver schiebung gleich die Strahlen durch alle Punkte sind parallel und schneiden sich nicht Der Betrachterstandpunkt liegt formal im Unendlichen Back clipping plane Front clipping plane VPN ior Abbildung 2 1 Parallelprojektion nach 13 Perspektivische Projektion Bei der perspektivischen Projektion ist der Projektor eines Punk tes der Strahl von einem festen endlichen Betrachterstandpunkt durch den jeweiligen Punkt Back clipping plane Front View clipping Plane plane VPN Abbildung 2 2 Perspektivische Projektion nach 13 Beleuchtungsmodelle Ein Beleuchtungsmodell beschreibt wie eine dreidimensionale Szene zur Darstellung einge f rbt und beleuchtet werden soll Dazu werden einzelnen Objekten gewisse Materialeigen schaften wie Reflexion oder Absorption einfallender Lichtstrahlen zugeordnet Zus tzlich wer den Lichtquellen definiert diese k nnen entweder punktf rmig oder ausgedehnt sein Auch 2 1 ALLGEMEINE GRUNDBEGRIFFE 11 die Angabe wie Lichtstrahlen die sich in der Szene ausbreiten mit wachsender Laufl nge an Intensit t verlieren ist Teil eines Beleuchtungsmodells In der Praxis hat sich im Wesentlichen das Beleuchtungsmodell von Phong durchgesetzt Ei ne umfassende Erl uterung w rde an dieser Stelle den Rahmen sprengen daher wird auf die Literatur verwiesen insbesondere auf 13
283. lting a remote file see the fromfile des cription below Tracers The tracers keyword indicates that tracer particle data or any point data other than node data follow The ntracers variable following the keyword is the number of tracers that are input The next three lines are the x y and z floating point coordinates of the tracers Following the coordinates are the variable data fields for the tracers The data is entered as a group for each field variable Up to 40 different field variables are allowed Each tracer field data variable contains an eight character variable name followed by a floating point data array The endtrace string terminates the tracer data Traceids The keyword traceids indicates that an optional list of alternate tracer id numbers follows These alternate id numbers are used for display and reference purposes within GMV Enter ntracer integers Problem Time The probtime keyword is followed by a floating point number that represents the simulation problem time This value is displayed at the top right corner of the main viewer Cycle Number The cycleno keyword is followed by an integer number that represents the familiar cycle number This value is displayed at the top left corner of the main viewer Surface The surface keyword indicates the beginning of polygonal facet descriptions of sur faces The variable nsurface on this line is the number of facet descriptors that follow There are nsurface descriptor lines th
284. lue that is less than the minimum value entered Face centered data can only be entered when faces or vfaces are used to define cells Selection Flags The flags keyword means that integer selection flag data sets follow Up to 10 different types of selection flags and up to 1000 different flag values per flag are allowed These data sets can be any type of integer data that can be used to select a node or cell for display purposes The names for the flags and for the flag types are placed in selection buttons in a menu The integer data must be a number between and ntypes 1 to 1000 The endflag string ends the flag data Flag data input may also be performed by consulting a remote file see the fromfile description below Polygons The polygons keyword indicates that surface polygons data follows The surface polygons can be interface or boundary polygons for a material Each line describes one po lygon The line contains the material number 1 to nmats associated with the polygon the number of vertices in the polygon and the x y z arrays that define the vertices for the polygon The endpoly string terminates the polygon data 256 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN The polygons keyword can be used to describe any surface a simulation can generate Be sure to give each surface a material number and that this material number has a material name listed under the materials keyword Polygon data input may also be performed by consu
285. mationen Affine Transformation ist ein Sammelbegriff f r Translationen Skalierungen und Rotatio nen Homogene Koordinaten Um alle affinen Transformationen einheitlich durch eine Matrix Vektor Multiplikation darstellen zu k nnen wird ein Punkt q 2 9 2 R berf hrt in den Punkt p 2 y 2z w x y 2 1 Rt Dies entspricht einer Projektion auf die Ebene w 1 C Rt In homogenen Koordinaten k nnen alle affinen Transformationen im Gegensatz zu den kartesischen Koordinaten einfach durch Matrix Vektor Multiplikationen dargestellt werden die Hintereinanderausf hrung mehrerer Transformationen entspricht der Multiplikation ihrer entsprechenden Matrizen und durch Multiplikation mit der inversen Ma trix K nnen sie r ckg ngig gemacht werden Dies erlaubt insbesondere die Kaskadierung und damit die einfachere und effizientere Umsetzung in Hardware Im folgenden werden alle Punk te in homogenen Koordinaten angenommen 2 1 ALLGEMEINE GRUNDBEGRIFFE 9 Translationen Eine Translation um den Vektor t t1 t2 t3 D ist wie folgt definiert OOo a N Skalierungen Eine Skalierung um die Faktoren a 3 y R in x y bzw z Richtung ist wie folgt definiert on oo eS GO Rotationen Eine Rotation des Vektors p um die x Achse um den Winkel a lautet 1 0 0 0 0 cosa sina 0 Ra p a 0 sina cosa 0 P 0 0 0 1 Eine Rotation des Vektors p um die y Achse um den Winkel a lautet cosa 0 sina 0 0 1
286. meter 1035 Righthandside RHS FALSE 6 1 Definition of the right hand side ScalarParameter 1041 Maximum Number of global Iterations aximum Number of global Iterations Integer 0 100 10 nonunit ScalarParameter 1042 Maximum storage block NNWORK FALSI aximum storage block for the program in int Integer 0 2000000000 50000000 nonunit Gl 6000 ea GUI CheckBox Codebeispiel 44 Parameterdatei Teil 2 Auf die Parameter sollte das Tool create_pathfiles angewendet werden welches Hea derdateien f r C und Fortran mit den Konstanten f r die Parameterids erzeugt In der Datei devisor server server server c mu an der Stelle MODULE PARAMETER HANDLING der Code f r die initiale Konfiguration an gegeben werden Codebeispiel Problem 45 zeigt das entsprechende Codesegment f r das FeatPoisson 200 ANHANG B ERWEITERUNGSM GLICHKEITEN else if while if if MODULE_TYPE_FEATPOISSON generation of grid file test par routertable actrtl apara par modules command moduleid callsign par NULL par gt parameterid gt 1024 amp amp par gt parameterid lt 4096 par gt type PARA_GRID strcpy buffer routertablelactrtl wdpath strcat buffer test transfer_grid par buffer par gt next Codebeispiel 45 Parameterkonfiguration 1 generation of include file nnwork inc strc
287. module id InstanceHandle INT handle ResultID INT result id NumberOfTimeSteps INT nots SelectedTimeSteps INT timestep 0 End_SelectedTimeSteps End_Command Codebeispiel 149 ClearResult protocol command CMDREPLY 21 Subtype CONTROL SERVER ClearResultReply LOE End_ClearResultReply Codebeispiel 150 ClearResultReply protocol command CMD 22 Subtype CONTROL SERVER Command ClearProject ModuleID INT module id InstanceHandle INT handle End_Command Codebeispiel 151 ClearProject protocol command CMDREPLY 22 Subtype CONTROL SERVER ClearProjectReply LOE End_ClearProjectReply Codebeispiel 152 ClearProjectReply protocol command 278 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN CMD 23 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command UpdateRouterTable ModuleID INT module id InstanceHandle INT handle End_Command Codebeispiel 153 UpdateRouterTable protocol command CMDREPLY 23 Subtype CONTROL NUMERICS CONTROL GRID UpdateRouterTableReply CONTROL VISION CONTROL GID CONTROL METIS LOE End_UpdateRouterTableReply Codebeispiel 154 UpdateRouterTableReply protocol command CMD 24 Command ExitSe
288. n Beispiele f r solche Umgebungen sind das Visualisierungstool AVS 2 und der IRIS EXPLO RER 25 Theoretische Untersuchungen finden sich im Grundlagenartikel 20 2 2 Mathematischer Hintergrund Dieses Kapitel beschreibt die mathematischen Grundlagen von numerischer Str6mungssimu lation 1 Modellbildung Hier wird ein physikalisches Ph nomen durch eine Reihe von Differen 14 KAPITEL 2 GRUNDLAGEN tialgleichungen beschrieben Um verschiedenste Probleme mit einheitlichen Verfahren l sen zu k nnen werden die Modelle mit Hilfe von Differentialgleichungen formuliert 2 Diskretisierung Das Modell wird nun diskretisiert d h in eine f r den Computer verar beitbare Form gebracht Dies liefert typischerweise gro e lineare Gleichungssysteme 3 Berechnung Diese Gleichungssysteme werden abschlie end gel st Es werden folgende Notationen verwendet Es werden Gebiete Q C R betrachtet f r d 1 2 3 mit dem Rand OQ Der senkrecht zum u eren Rand stehende Normalenvektor von O9 ist n der Tangentenvektor t s Abb 2 4 and Abbildung 2 4 Definition eines Gebiets Ortspunkte werden mit x x1 2 73 Zeitpunkte mit t bezeichnet F r d dimensionale Vektoren a b wird das bliche euklidische Skalarprodukt mit a b und die euklidische Norm mit a bezeichnet a b X aibi llall Funktionen treten entweder skalarwertig u u x oder u u x t oder vektorwertig
289. n Die Richtung spielt aber intern eine Rolle und hat f r die L ser keine Relevanz Die Kanten k nnen in 2D und 3D Modus erzeugt werden und repr sentieren genauso wie die Knoten an sich noch keine vollst n digen Geometrie Objekte Allerdings haben sie spezielle Eigenschaften die f r die L ser wichtig sind Sie haben einen Kantenstatus der entweder NONE INNER oder EXTERI OR sein kann siehe die Beschreibung des Moduls GRID Kap 3 5 oder die Beschreibung des FEAST Formats Kap D 1 Zus tzlich haben sie noch die Boundary Condition die wiederum beschreibt nach welchem Prinzip der L ser die Kanten verarbeitet NEU MANN oder DIRICHLET siehe dazu auch die Beschreibung des FEAST Formats Die Tri Objekte beschreiben Dreiecke im Raum und werden dementsprechend durch drei Knoten und drei Kanten dargestellt In 2D sind das vollst ndige Geometrie Objekte die eine Teilmenge der Eigenschaften eines Macro Objekts enthalten Es handelt sich um den Parallelblock der den Prozessor beschreibt den der L ser verwenden soll um dieses Objekt zu bearbeiten Dadurch wird eine Lastverteilung erm glicht Der Matrix block beschreibt den Teil der allgemeinen Gittermatrix in dem sich das Element befin det Der Verfeinerungslevel zeigt an wie fein das Element in eine Gitterstruktur zerlegt wird Tri In 3D sind Tris Fl chen aus denen ein Tetra Objekt siehe unten besteht Hier haben sie keine Macro Eigenschaften mehr daf r a
290. n chst spaltet man die Koeffizientenvektoren c a b d R bez glich der ungeraden und geraden 9 Indizes wie folgt auf C1 ay by d C3 a3 b3 d3 sn C5 val a5 Sb bs dw ds E Ber Cn 1 An 1 bn 1 dn 1 C2 a2 bo da C4 a4 b4 d4 c8 amp a8 b8 w a8 de eR Cn An bn dn Im weiteren werden die folgende Vektoroperationen ben tigt e bezeichne die komponentenweise Addition zweier Vektoren x y i Yis e amp die komponentenweise Multiplikation x y ziyi e 1 die Vernachl ssigung des ersten Indexwertes T a T 1 T2 E3 lt 3 En ig Ten e _ die Vernachl ssigung des letzten Indexwertes i T Den 4 iz 1 2 En 1 2 3 WISSENSCHAFTLICHES RECHNEN 35 Man beachte da diese Operationen auf einem Vektorrechner in nur einem Schritt durchgef hrt werden k nnen Nun werden Hilfsvektoren gebildet 1 a ca a r ayes e R p c r u ER ee ei i b2 a3 b a ee dn An Damit lassen sich die gesuchten Vektoren des Reduktionsschrittes 2 9 2 of w P wf 2 DfA f aD E f Daf ain A erm ofl al po gi folgenderma en durch reine Vektoroperationen bestimmen indem einfach die Gleichungen des Reduktionsschrittes 2 9 in die neue Schreibweise bertragen werden 1 u c cl Q p b bi 8 q a de dW p e d e q Auch der Schritt des R ckw rts
291. n in welchem Modus sich die Maus befindet z B Selektieren Punkte einf gen usw Die dritte Gruppe erm glicht es Dialoge f r alle Objekte aufzurufen die eine Domain A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER133 enthalten kann Die Dialoge erm glichen es dem Benutzer u a die Koordinaten der Punkte exakt als Gleitkommazahlen einzugeben Im folgenden werden die Namen der Werkzeuge aufgelistet die in den Toolbars vorkommen Sie entsprechen den Icons auf den ensprechenden Bildern von links nach rechts Da deren Funktionalit t genau den zugeh rigen Men punkte in der Men zeile entspricht werden sie hier nicht weiter erl utert sondern weiter unten bei der Men leiste ausf hrlich erl utert Die Werkzeuge der Projekt Toolbar Propeht Bearbeiten Dialoge Rak x OIR AIRIR m Akuwalisheren Abbildung A 26 Die Projekt Toolbar Neue Domain Domain laden Domain speichern Beenden Domain durchsuchen Zoom zu r cksetzen Alles zeigen Hineinzoomen Herauszoomen 2D Modus 3D Modus Aktualisie ren Die Werkzeuge der Edit Toolbar Beki Mesa Malen Bom CAERE Abbildung A 27 Die Edit Toolbar Auswahl kopieren Kopierte Auswahl einf gen Ausgew hlte Objekte l schen Ansicht ver schieben Objekte ausw hlen Ausgew hlte Objekte verschieben Ausgew hlte Objekte rotie ren Ausgew hlte Objekte skalieren Punkte Nodes erzeugen Kanten Edges erzeugen Tris erzeugen Quads erzeugen SegmentLists erzeug
292. n GUI Typen sind TextFields CheckBoxes Sliders oder ein ColorChooser e JFunctionPanel f r einen FunctionParameter Die GUI hier besteht aus einer Tabelle f r die Funktionsparameter sowie einer TextArea f r die Funktion selbst e JGridPanel f r einen GridParameter Hier kann eine FEAST Datei mittels FileChoo ser ausgew hlt und betrachtet werden Zum Betrachten einer Domain gibt es die Klasse JDomainViewerDialog die einen Dialog erzeugt der ein 2D ViewerPanel enth lt e JSelectionPanel f r einen SelectionParameter Die m glichen GUI Typen f r die Aus wahl von Parametern sind RadioButtons und ComboBox f r die Auswahl eines einzigen Parameters CheckBoxes f r die Mehrfachauswahl und Selection f r Mehrfachauswahl mit mehrfacher Wahlm glichkeit des gleichen Parameters Bei Selection hat man zwei Listen eine die die verf gbaren Parameter enth lt und eine zweite Liste die die ausge w hlten Parameter enth lt Die Konfiguration der jeweils ausgew hlten Parameter erfolgt ber weitere Dialoge Falls es sich bei dem ausgew hlten Parameter um einen NodePa rameter handelt wird der Dialog JDynamicGuiDialog aufgerufen der wieder f r die Parameterliste des NodeParameter ein JDynamicGuiPanel enth lt In allen anderen F llen wird der Dialog JSelectionGuiDialog aufgerufen der das entsprechende Panel f r den Parameter enth lt Falls der gegebene SelectionParameter die ID 1 hat handelt es sich um den Statistikparameter der eine Au
293. n Java Zuerst mu eine Kennung festgelegt und in devisor server server parser h de finiert werden z B FEATPOISSON Die Konstante MAX_MODULE mu entsprechend erh ht werden Codebeispiel 37 define MODULE_TY define MAX_MODUL E_FEATPOISSON 4 8 Gl U Codebeispiel 37 Modulkennung Im Quelltextbaum mu ein Modulerzeichnis festlegt werden z B devisor server modules module_fp Die Aktivierung der verschiedenen Module wird ber eine Konfigurationsdatei gesteuert Die Steuerung der Aktivierung befindet sich in der Datei devisor server server server c in der Prozedur void init_parameterlist Codebeispiel 38 zeigt das Codefragment zur Aktivierung des Moduls 196 ANHANG B ERWEITERUNGSM GLICHKEITEN else if strcmp rl FEATPOISSON n 0 printf Module FEATPOISSON enabled n enablemodule MODULE_TYPE_FEATPOISSON 1 Codebeispiel 38 Modul Aktivierung In Codebeispiel 39 ist das Setzen der Moduldefinitionsvariable modules dargestellt modules ist eine C Struktur und enth lt folgende Komponenten e moduleid fortlaufende Nummer e callsign die eingangs vergebene Identifikationsnummer e name Kurzname des Moduls e descr Beschreibung des Moduls e appl Name der zu startenden Programmdatei e initappl Name eines Initialisierungsskriptes Dieses Skript erzeugt die Verzeichnisse des Projektes und kopiert Modul
294. n Module kapseln die Netzwerk funktionalit t jeweils durch eine H llklasse aus der NET Komponente wrapper Das CON TROL Modul und sein ControlWrapper tauschen beispielsweise Daten aus indem das Modul Methoden des Wrappers aufruft die jeweils eine vollst ndige Kommunikationssequenz Sen den der Anfrage und Empfangen der Antwort durchf hren und das Ergebnis in Form einer Klasse aus dem interim Paket s Kap 3 2 3 zur ckliefern 3 1 ALLGEMEINE BESCHREIBUNG 59 CONTROL SR PREISE 7 VISION lokaler Computer Graphikworkstation NUMERIK Konfiguration B gt Datentransfer Supercomputer we Ergebnisse Abbildung 3 1 Beispiel Szenario f r eine mit dem DEVISOR durchgef hrte Simulation Phase 1 der Simulation Vorbereitung Im folgenden wird davon ausgegangen da bereits Instanzen von NEXUS auf den verwendeten Computern gestartet wurden Der Benutzer star tet lokal eine Instanz des CONTROL Moduls und tr gt zun chst die Computer identifiziert ber Port und Namen bzw IP Adresse in das Programm ein mit denen er sp ter kommu nizieren m chte in diesem Fall also den Supercomputer und die Graphikworkstation Sodann wird vom Supercomputer eine Liste der angebotenen Module angefordert Ein Numerikmo dul wird ausgew hlt und gestartet Auf der Seite des Supercomputers wird ein Tochterproze von NEXUS initialisiert fork der von nun an exklusiv f
295. n das DEVISOR das Verzeichnis devisor installiert wur de DEVISOR_SERVER Das Verzeichnis in dem sich der Server befindet z B devisor devisor server DEVISOR_SERVERPPORT Ein beliebiger Port an dem der Server lauschen soll z B 4711 DEVISOR_SOLVERENGINES Das Verzeichnis in das FEATFLOW installiert wurde z B devisor solverengines DEVISOR_WORKSPACE Irgend ein Arbeitsverzeichnis z B devisor devisor server workspace FEATFLOW Das Verzeichnis von FEATFLOW z B devisor solverengines featflowl 2 featflow ARCH die Architektur auf der FEATFLOW benutzt wird ultra2 oder intelp2 A 3 SCHNELLSTART SIMULATION DES MEMBRANPROBLEMS 109 A 3 Schnellstart Simulation des Membranproblems An dieser Stelle wird exemplarisch die Vorgehensweise bei der Simulation und Visualisierung des Membranproblems auf einem lokal laufenden NEXUS Server mit dem DEVISOR Modul Schritt f r Schritt und modul bergreifend beschrieben Als Voraussetzung wird angenommen da der Server NEXUS und das DEVISOR Paket instal liert und kompiliert sind siehe Kap A 2 Nun folgt eine bersicht ber das Vorgehen in diesem Kapitel Diese Schritte repr sentieren die bliche Vorgehensweise bei der Bedienung des Systems 1 Starten des Servers NEXUS und CONTROL 2 Konfiguration des Servers und ein neues Projekt anlegen 3 Starten von NUMERICS und Berechnung von ein paar Schritten des Moduls FeatPoisson 4 Starten von VISION und Vis
296. n dort die Feinheiten der Datenstruktur nachzulesen Die Knoten k nnen wie gesagt in 3D und 2D Modus erzeugt werden und sie bilden die unterste Stufe in der Elementenhierarchie Das bedeutet da sie kein Parent f r andere Elemente bilden BoundaryNode und BoundaryNode3D Diese Art Knoten sind normale Knoten mit einer Knotennummer und drei Koordinaten Diese Koordinaten sind nicht absolut sondern werden bez glich der Boundary gesetzt der sie zugeordnet werden BoundaryNodes sind f r den 2D Modus bestimmt Sie haben zus tzlich zu den Kno teneigenschaften einen Parameter und eine BoundaryNummer die ein dem Knoten zu geordneten BoundaryObjekt referenziert In 2D sind es BoundaryCircle und Bounda rySegmentList Der zweite Typ enth lt eine Reihe von Segmenten und mu gesondert behandelt werden Der Kreis besteht aus nur einem Segment also kann mit dem Para meter die Position auf dem Kreis bestimmt werden Die durch den Parameter definierte Zahl im Intervall 0 1 beschreibt den prozentualen Anteil des Weges den man geht wenn man von der Drei Uhr Position auf dem Kreis startet und den Kreis gegen den Uhrzegersinn durchl uft Genauso wird vorgegangen wenn bei der Boundary Segment List nur ein Segment existiert Wenn dieses Segment eine Kante Edge ist dann wird der entsprechende Anteil beim Durchlauf vom Start zum Endknoten bestimmt Wenn die Boundary Segment List mehrere Segmente hat dann kann im Dialog das ent sprechende Segmen
297. n in der Visualisierungstransformation engl mapping in Geometriedaten umge wandelt Im letzten Schritt dann werden die Geometriedaten in der visuellen Abbildungstrans formation engl rendering in Bilddaten transformiert die auf einem Bildschirm ausgegeben werden k nnen Filtering Mapping Rendering Aufbereitete Geometrie Rohdaten Daten daten Bilddaten Abbildung 2 15 Die Visualisierungspipeline 2 4 2 Klassifizierung von Visualisierungstechniken Im folgenden werden verschiedene Ans tze zur Klassifikation von Visualisierungstechniken diskutiert Sehr einfach einzusehen ist die Einteilung nach der Dimension des Definitionsge biets Algorithmen arbeiten auf ein zwei oder dreidimensionalen Daten Diese Klassifikation ist einfach aber nicht sehr weitreichend da sehr viele sehr unterschiedliche Algorithmen in dieselbe gro e Klasse eingeordnet werden Ein anderer Ansatz ordnet die Techniken nach der Dimension des L sungsraumes Simulationen k nnen nulldimensionale Daten also Punktwol ken skalare Daten oder vektorielle Daten liefern Diese Methode ist m chtiger vernachl ssigt aber die Komplexit tssteigerung bei wachsender Gitterdimension Eine dritte M glichkeit ist die Einteilung gem der Gittertypen s Kap 2 7 dies ist aber eine rein algorithmische und keine konzeptionelle Unterscheidung da beispielsweise Methoden zur Zellsuche auf ka
298. n jeweils ber die den Methoden bergebenen Module Instanzen werden zus tzlich noch der Projektkennzeichner und die Mo dulidentifikation eingetragen Programmierbarkeit und API Durch Kombination einiger der vom ControlWrapper gebotenen Methoden lassen sich Teil funktionalit ten der einzelnen Zielmodule in eigene Programme integrieren Dies soll hier am Beispiel einer numerischen Berechnung verdeutlicht werden 1 Start des Servers NEXUS mit integriertem Numerikmodul 3 2 DAS MODUL NET 69 2 Holen der Modulliste mit getAvailableModules 3 Extraktion des Numerikmoduls 4 Start des Numerikmoduls per startModule 5 Holen der Problem und Parameterlisten durch getProblemList getParameterListFor getConfigurationList 6 Hartcodierte Anpassung gem der eigenen Vorstellungen 7 Konfiguration des Moduls per configureModule 8 Start der Berechnung per start 9 Beenden des Moduls nach Rechnungsende per stop 10 Herunterladen der Ergebnisse per getAvailableResult und downloadResult 11 Schlie en des Moduls per closeModule Beispielimplementierungen hierzu finden sich im debug Package 3 2 5 Die Schnittstelle zu beliebigen anderen Modulen Das Paket NET bietet fertig implementierte abstrakte Klassen zur Integration beliebiger anderer Module Diese Klassen finden sich ebenfalls im Paket wrappers Ein ausf hrliches Tutorial zur Modulintegration findet sich im Anhang B 2 Die Klasse AbstractModuleWrapper wird per Konstru
299. n negativer Wert bedeutet mehrere 2 beispielsweise zwei Nachbarn dies erzwingt f r jede solche Kante einen Detailblock mit den Indizes eben dieser Kanten Im letzten Schritt folgen die Knotennachbarn Diagonalnach barn ebenfalls wieder mit dem Detailblock bei mehreren Nachbarn D 1 SPEZIFIKATION DES FEAST FORMATES F R DIE GITTERDEFINITION 243 20 Abbildung D 1 Numerierung der Knoten und Kanten bei Hexa und Tetraedern Die Elementdefinition schlie t mit der Angabe von Parallel und Matrixblock und der aniso tropen Verfeinerung Sechs Bits sind zur Angabe der Verfeinerungssteuerung n tig die bei den niedrigwertigen geben die Verfeinerung in x Richtung an links oder rechts dann in y Richtung unten oder oben und zum Abschlu in z Richtung vorne oder hinten Es sind sechs Verfeinerungsfaktoren n tig Tetraeder werden vollkommen analog definiert nur das es entsprechend weniger Knoten Kan ten und Nachbarn gibt Auch eine anisotrope Verfeinerung ist analog zum zweidimensionalen Fall nicht m glich 244 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN 0 Typ 0 Hex 1 Tetra 12 76 910 11 12 Knoten 1 bis 8 12345678 9 10 11 12 Kanten 1 bis 12 123456 Seitenfl chen 1 6 025000 Indizes der 6 durch eine Fl che benachbarter Zellen 025000 30 2000 Indizes der noch nicht genannten Nachbarzellen die durch nur eine Kante benachbart sind Nachbarn fuer Edge 7 Position
300. n vorhandener Knoten existiert wird dies unterbunden und in der Statusleiste erscheint die Meldung da ein Knoten mit ausgew hlten Koordinaten schon existiert Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Bearbeiten Nodes hinzuf gen Zu den Knoten geh ren auch Kanten Diese kann man mit dem Werkzeug Edges hinzuf gen erzeugen Dies geschieht zun chst analog zu der Knotenerzeugung denn man definiert einen Start und einen Endknoten Es wird also eine gerichtete Kante erzeugt Die Richtung dieser Kante wird durch einen Pfeil bei dem Endknoten angezeigt Zus tzlich wird in der Mitte der Kante die Kantennummer eingeblendet Kantennummern unterscheiden sich von den Knoten nummern durch ein vor und nachgestelltes Minuszeichen z B f r die Kante 1 w rde dann stehen 1 Abbildung A 33 Eine Kante auf der Zeichenfl che Wenn man in eine einstellbare siehe unten N he eines existierenden Knotens klickt dann wird dieser Knoten als ein Knoten der Kante erkannt und bernommen Wenn dies nicht erw nscht ist es also ein neuer Knoten erzeugt werden soll dann mu man bei der Eingabe zus tzlich die SHIFT Taste halten Ein neuer Knoten wird allerdings nur erzeugt wenn die neuen Koordina ten mit denen von keinem der existierenden Knoten bereinstimmen Wenn man es sich mitten 140 ANHANG A BENUTZERHANDBUCH in der Bearbeitung anders berlegt hat und nun doch nicht die Kante
301. name of author This program is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foun dation either version 2 of the License or at your option any later version This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public Li cense for more details You should have received a copy of the GNU General Public License along with this program if not write to the Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Also add information on how to contact you by electronic and paper mail Ifthe program is interactive make it output a short notice like this when it starts in an interactive mode Gnomovision version 69 Copyright C yyyy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY for details type show w This is free software and you are welcome to redistribute it under certain conditi ons type show c for details The hypothetical commands show w and show c should show the appropriate parts of the General Public License Of course the commands you use may be called something other than show wand show c they could even be mouse clicks or menu items whatever suits your program You should also get your employer if you work as a prog
302. nd Node Triangle und die InterfacesSegment und Segment3D boundary Dieses Paket enth lt die Klassen die Boundaries beschreiben Oberklasse f r alle Boundaries ist die Klasse BoundaryBase Soll es m glich sein einen BoundaryNode auf einer Boundary zu plazieren so muss dieses das Interface Segment implementie ren Analog kann man einen BoundaryNode3D nur auf einem Boundary liegen die Segment3D implementiert Die Klasse Boundary ist ein Container f r alle Boundary klassen Sie enth lt Methoden die die Beziehungen der enthaltenen Boundaries z B die Liste der Eltern auf dem aktuellen Stand h lt C 3 DAS PAKETFRAMEWORK 217 domain Dieses Paket enth lt die Klasse Domain Sie dient als Container f r alle Finiten Elemente Paket devisor grid elements und enth lt au erdem eine Instanz der Boun dary Klasse und verwaltet somit alle Objekte die eine Domain enthalten kann F r jedes Objekt XYZ gibt es einen Methode addXYZ und removeXYZ die Beziehun gen der Objekte untereinander aktuell h lt z B die Lste der Eltern Au erdem gibt es createXYZ Methoden die das Objekt XYZ erzeugen falls g ltige Parameter bergeben werden Ist dies der Fall so wird eine neue Instanz des Objektes mit einer eindeutigen Nummer zur ckgeliefert Ansonsten wird eine Exception erzeugt Die entsprechenden Exceptions sind ebenfalls in diesem Paket enthalten elements Diese Paket enth lt Klassen die Finite Elemente beschreiben Die einzelnen Klas sen ba
303. ndle Display EVILSTRING display End_Command Codebeispiel 109 ReStartModule protocol command CMDREPLY 2B Subtype CONTROL SERVER ReStartModuleReply LOE End_ReStartModuleReply Codebeispiel 110 ReStartModuleReply protocol command CMD 3 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command GetProblemList ModuleID INT module id End_Command Codebeispiel 111 GetProblemList protocol command 266 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN CMDREPLY 3 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS GetProblemListReply Problem ID INT problem id Name GOODSTRING name Description EVILSTRING info End_Description ocalProtocol CONSTSTRING NONE STARTSTOP STARTSTOPPAUSE STARTSTOPPAUSERECONFIG FULL End_Problem End_GetProblemListReply Codebeispiel 112 GetProblemListReply protocol command CMD 4 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command GetParameterListFor ModuleID INT module id ProblemID INT problem id End_Command Codebeispiel 113 GetParameterListFor protocol command CMDREPLY 4 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL G
304. ne Konsequenzen f r be reits angebundene Module vorgenommen werden e Alle Kommunikationssequenzen sind beantwortet Dies bedeutet da jede Kommunika tion zwischen zwei Modulen immer von einem Modul ausgeht und definitiv vom anderen Modul beantwortet wird Dies vereinfacht zum einen die Implementierung der Module erheblich und garantiert die Fehlerkontrolle ber das Netzwerkmodul Au erdem h lt dies die Schnittstelle zu den einzelnen Modulen schmal und bersichtlich Im folgenden wird eine solche Kommunikationssequenz auch synonym mit Protokollsequenz bezeich net Das Modul NET besteht aus f nf Paketen devisor net enth lt die wichtige Schnittstellenklasse NetException ber die alle Fehlermel dungen des Moduls an die Au enwelt weitergegeben werden 64 KAPITEL 3 SYSTEMBESCHREIBUNG devisor net interim enth lt Klassen zur Kapselung der Protokollinterna insbesondere die Par ser die Klassen aus diesem Paket in ihre Protokollrepr sentation umwandeln und umge kehrt devisor net wrappers enth lt die H llklassen um die Module devisor net example enth lt eine komplette Beispielapplikation als Tutorial zur Integration neuer Module devisor net debug enth lt Testroutinen f r die skriptbasierte Steuerung aller Module sowie den DeViSoRBenchmark die umfangreiche Testumgebung f r alle Module 3 2 2 Fehlermeldungen Alle Fehlermeldungen seien es Parserfehler Verbindungsfehler oder sonstige des NET Pakets
305. ng eines streng modularen Ansatzes diese Probleme zu l sen Im System sind alle Komponenten enthalten die der Anwender ben tigt um direkt praktisch arbeiten zu k nnen so ein Gittereditor ein Kontrollmodul und eine Visualisierungskomponente F r die Durchf hrung der eigentlichen Simulation wurden beispielhaft die umfangreichen Numerikpakete FEATFLOW und FEAST vgl 40 3 37 angebunden Beide sind ohne Einschr nkung im Quelltext frei verf gbar Mit ein wenig Programmiererfahrung ist es jedem Anwender m glich gerade weil das von der Projektgruppe entwickelte System ebenfalls open source ist und unter der General Public Licence GPL s Elund 14 ver ffentlicht ist beliebige Module zu erg nzen oder auszutau schen Weiter bieten kommerzielle L sungen keinen Ausweg aus dem oben zitierten Versuch und Irrtum Problem Selbst kleine nderungen der Simulationsparameter resultieren in einem neu en Berechnungszyklus ltere Ergebnisse k nnen nicht weiterverwendet werden Es gibt zwar schon lange Ans tze zum computational steering s Kap 2 1 3 d h zur interaktiven Kontrolle eines in der Ausf hrung befindlichen Rechenprozesses aber diese Ideen sind bisher nicht auf den Bereich der numerischen Str mungssimulation bertragen worden Die Darstellung von Zwischenergebnissen stellt dabei kein Problem dar interessant ist die Neukonfiguration des Berechnungsprozesses ohne wieder von vorne beginnen zu m ssen
306. nge geben werden darf und das Ende der Zeile wird auch als das Ende der Anweisung interpretiert D 3 2 Syntax des Protokolls Es folgt die syntaktische Spezifikation des Netzwerkprotokolls Intern wurde im Hinblick auf internationale Benutzer des DEVISOR Paketes die Spezifikation des Protokolls auf Englisch erstellt Hier wird sie in un bersetzter Form wiedergegeben Basic data types INT Integer GOODSTRING n terminated string containing a z A Z 0 9 _ EVILSTRING n terminated string containing any character CONSTSTRING n terminated string containing A Z 0 9 _ LOCALESTRING n terminated string of form xx_YY where xx are two lowercase letters representing a language code in ISO 639 and YY are two uppercase letters representing a country code in ISO 3166 TYPE IntegerlLong DoublelBoolean String Syntax conventions in this document NAME Macrosubstitution Type Name expression name of type TYPE appears once Type Name expression name of type TYPE appears at least once Type Name 0 expression name of type TYPE doesn t appear or appears at least once D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 261 binary OR amp amp binary AND CONSTSTRING TYPE MYTYPE new dynamic type definition when evaluating any ex pression of type MYTYPE only the type specified by the contant string TYPE is accepted MYTYPE always is of one of the types defined under basic
307. nput Specifications D 2 2 InputDataDetails D 2 3 Reading some GMV data from a different file D 2 4 Sample input data D 3 Spezifikation des Netzwerkprotokolls D 3 1 Der Aufbau des Protokolls D 3 2 Syntax des Protokolls E Lizenz Literaturverzeichnis Vil 226 226 229 229 229 230 230 231 231 231 231 232 232 233 233 233 234 235 235 236 239 244 244 252 257 258 259 259 260 291 297 viii INHALTSVERZEICHNIS Kapitel 1 Einleitung Motivation Aufgabenstellung und Einordnung 1 1 Motivation und Projektidee Um Naturvorg nge verstehen zu k nnen gibt es zwei grundlegende Ans tze das Experiment und die Simulation W hrend man beim Experiment versucht die Wirklichkeit in verkleiner tem Ma stab vereinfacht nachzubilden z B in einem Windkanal und damit Erkenntnisse zu gewinnen geht die Simulation von einem abstrakten Ansatz aus Man versucht aus Natur vorg ngen eine mathematische Beschreibung zu gewinnen das sogenannte Modell Dieses Modell kann z B aus einer Reihe von Differentialgleichungen bestehen so beschreiben die sogenannten Navier Stokes Gleichungen Str mungsvorg nge s Kap 2 2 Um nun aus dem Modell Vorhersagen f r die Wirklichkeit ableiten zu K nnen ist es notwendig das mathemati sche Modellproblem zu l sen W hrend es m glich ist f r einfache Probleme die L sung noch geschlossen d h exakt zu bestimmen ist
308. nte ADD_CONE mit einem sinnvollen Wert eintragen In der Methode GridMainFrame createToolBar sollte man analog zu Cylinder den Toggle Button f r Cone erstellen Das Iconbild Cone png sollte nat rlich schon in devisor grid images liegen Codebeispiel 65 coneModeButton new JToggleButton new Imagelcon getClass getResource imagepath Cone png coneModeButton addActionListener coneModeListener coneModeButton addActionListener new ActionListener public void actionPerformed ActionEvent e coneModeltem setSelected true a modeGroup add coneModeButton editToolbar add coneModeButton threeDComponentVector addElement coneModeButton threeDComponentVector addElement coneButton Codebeispiel 65 Modifikation in GridMainFrame createToolBar hnliche Modifikationen m ssen analog zu Cylinder auch f r Cone in der Methode createMenu durchgef hrt werden Auch in der Methode changeMouseMode mu einiges ver ndert werden Codebeispiel 66 B 4 EIN NEUES ELEMENT IN GRID ERSTELLEN 211 switch mode case GridManager ADD_CONE setViewerCursor crosshair_c viewers 0 addMouseListener oldm1 0 new AddConeListener this ViewerPanel2D viewers 0 viewers 1 addMouseListener oldml 1 new AddConeListener this ViewerPanel2D viewers 1 viewers 2 addMouseListener oldml 2 new AddConeListener this ViewerPan
309. ntegeradditionen in festen Zeitintervallen um einen festen Wert vorzunehmen und wahlweise Zwischenergebnisse sowohl als Huckepack Statistik als auch per Ergebnis download zu liefern bersetzt in die Sprache der Interimsobjekte s Kap 3 2 bedeutet dies da das Modul ein Problem definiert und f r dieses Problem drei skalare Parameter initial Value incrementValue delayValue existieren Die globale Konfigurationsliste enth lt einen Parameter der als Flag den Umgang mit anfallenden Ergebnissen steuert sowie einen speziellen Parameter zur Konfiguration der Huckepack Statistiken Es sei daran erinnert da die Steue rung der Statistiken ber die spezielle reservierte Parameter ID 1 abgewickelt wird und zwar mit einem SelectionParameter der f r jede zu erzeugende Statistik einen ScalarParameter enth lt B 2 TUTORIAL ZUR INTEGRATION EINES NEUEN MODULS IN DAS SYSTEM 185 public class ExampleMC public static ModuleCapabilities createMC ResourceBundle i1l8n create new container create problem create parameter list create initial value parameter create increment parameter create delay parameter and add them all to the parameter list pl addParameter initialvalue pl addParameter incrementvalue pl addParameter delayvalue with module capabilities mc add p pl create generateresult parameter conf addParameter generateresults create generateStat
310. nten verschiebt Ein Linksklick in eine Ansicht aktiviert diese Funktionen wie das Zoomen wirken sich immer auf die aktive Ansicht aus Alle weiteren Auswirkungen der Maus h ngen vom ausgew hlten Mausmodus ab Die 3D Ansicht liefert im allgemeinen kein direktes Feedback Da es beson ders auf langsamen Rechnern bei gro en Modellen leicht zu Performanz Problemen kom men kann wird die 3D Ansicht nur aktualisiert wenn der Aktualisieren Knopf in der Toolbar gedr ckt wird In den Ansichten mit fester Kameraposition OBEN SEITE VORNE sieht man ein Gitternetz Die Standardgr e des Gitters ist auf 10 gesetzt Farbige Linien kennzeichnen die Achsen Ein kleines Kreuz kennzeichnet den Mittelpunkt des Fensters Die 3D Ansicht Die 3D Ansicht l t sich nur ber die Maus steuern Bei gedr ckter linker Maustaste rotiert die Kamera um den Nullpunkt bei gedr ckter mittlerer Maustaste kann man in die angezeigte Domain hineinzoomen bzw herauszoomen bei gedr ckter rechter Maustaste ver ndert man die Position der Kamera siehe Kapitel A 5 3 Die Arbeitsfenster sind abgegrenzt durch Balken an denen kleine Pfeile angebracht sind Diese erleichtern die Arbeit denn man kann mit ihnen die Arbeitsfenster in Pfeilrichtung maximie ren Genauer ausgedr ckt wenn man auf eins der Pfeile am Rand des Arbeitsfensters mit der linken Maustaste klickt das vom Fenster weg zeigt wird das Fenster in die Richtung des Pfeils maximiert Wenn man dann den an
311. ntral zu steuern und zu konfigurieren Da f r den kompletten Durchlauf einer Simulation in der Regel mehrere Module f r einen klassischen Ablauf siehe Kap A 3 ben tigt werden werden diese komplett in Projekten ver waltet 3 4 1 Funktionalit t des Moduls In CONTROL werden alle Module in Projekten verwaltet Dies hat den Vorteil da die ver schiedenen Module die f r die Durchf hrung einer vollst ndigen Simulation ben tigt werden zusammen verwaltet werden geladen gespeichert Konfiguriert und ein Datenaustausch nur zwischen Modulen des gleichen Projektes stattfinden kann Auch werden alle Daten eines Projektes in einer eigenen Verzeichnisstruktur verwaltet Insbesondere gilt dies f r benutzeru nabh ngige Module wie solche aus der Numerik die einmal konfiguriert nur rechnen und solche wie GRID die ber eine GUI interaktiv vom Benutzer bedient werden Wie auch in NET gilt auch in CONTROL Alle Module werden komplett gleich behandelt Die einzige Ausnahme ist da der bersichtlichkeit halber Module nach Modultypen sortiert wer den die angebotene Funktionalit t ist jedoch bei allen Modulen gleich Ein typischer Ablauf f r die Benutzung eines Moduls sieht folgenderma en aus 3 4 DAS MODUL CONTROL 73 Als erstes wird ein Server aus einer Serverliste ausgew hlt falls n tig mu der neue Ser ver zuerst eingetragen werden Der Server liefert eine Liste mit allen auf diesem Server zur Ve
312. ntsprechen den Protokollbefehlen aufgerufen Viele gerade ltere Numerikprogramme erwarten einige ihrer Parameter als ausf hrbaren Co de Der Server bietet daher die M glichkeit aus den FunctionParametern ausf hrbaren Code zu erzeugen Dieser Code wird von einem Zwischenmodul namens VINCULUM bersetzt War die Kompilation erfolgreich berl dt sich das Modul mit dem erzeugten Kompilat und f hrt so das eigentliche Modul aus Nach dem Starten forkt sich der Serverproze und bildet damit einen exklusiven Kommunika tionskanal f r das gestartete Modul F r jedes CONTROL Modul existiert ein eigener Server proze F r jede Kommando bermittlung zum Modul wird jedoch eine eigene Verbindung auf und nach Kommando und Antwort bermittlung wieder abgebaut damit mehrere CONTROL Module Zugriff auf das Modul haben k nnen Informationen der Routingtabelle wie Parame terwerte Zeitschrittwerte etc werden vom geforkten Serverproze an den Ursprungsserver bertragen damit die Informationen erhalten bleiben Wird das CONTROL Modul beendet be endet sich auch der zugeh rige Serverproze 3 4 Das Modul CONTROL Mit Hilfe des CONTROL Moduls ist es m glich komplette Simulationsabl ufe durchzuf hren daim CONTROL Modul gewisserma en alle f r die Durchf hrung einer Simulation ben tigten Module unter einen Hut gebracht werden Dazu wird eine Benutzeroberfl che zur Verf gung gestellt mit der es m glich ist alle anderen Module ze
313. numbering scheme counterclockwise around the periphery of the cell The general cell type is available for nonstandard cells These cells are described by their faces The nfaces variable indicates the number of faces for the cell The next line of data is the number of vertices for each cell face The third line of the set contains the node numbers of the vertices for each face for all faces The integer array size for the nodes will be the sum of the vertices for the cell faces The faces do not have to be specified in any order However the vertices for each face must be specified in an order that describes the face polygon and generates an outward normal using the right hand rule The vface3d cell type is available for nonstandard 3D cells These cells are described by their face numbers within the vface keyword The nfaces variable indicates the number of faces for the cell If vface3d is used all cell types must be vface3d The vface2d cell type is available for nonstandard 2D cells These cells are described by their face numbers within the vface keyword The nfaces variable indicates the number of faces for the cell If vface2d is used all cell types must be vface2d The faces in vface2d are 2d faces edges The node and cell data are required and must be in order although the number of cells can be zero if no cells exist Note there is no external numbering for the nodes and cells the order of input is the numbering sequence for both node
314. odebeispiel 183 GUI GridViewer protocol definition GUIFUNCTIONEDITOR GUI FunctionEditor End _ GUI Codebeispiel 184 GUI FunctionEditor protocol definition D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 289 Special parameter IDs Id Meaning Structure 1 StatisticsAvailable SelectionParameter with list of ScalarParameters only 2 Data source for modules DATASOURCE only lt 1024 per Definition reserved IDs Tabelle D 1 Special parameter Id s 290 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN Anhang E GNU General Public Licence Version 2 June 1991 Copyright 1989 1991 Free Software Foundation Inc 59 Temple Place Suite 330 Boston MA 02111 1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The licenses for most software are designed to take away your freedom to share and change it By contrast the GNU General Public License is intended to guarantee your freedom to share and change free software to make sure the software is free for all its users This General Public License applies to most of the Free Software Foundation s software and to any other program whose authors commit to using it Some other Free Software Foundation software is covered by the GNU Library General Public License instead You can apply it to your programs too When we speak of free software we are r
315. oduleObject wird das Modul selbst verwaltet Dazu geh ren zum einen alle mo dulbezogenen Informationen wie das Module selbst Zustand des Moduls Downloadinfos die aktuelle Konfiguration Modultyp und Verzeichnis zum anderen enth lt die Klasse alle Metho den zur Steuerung und Konfiguration des Moduls ber den ControlWrapper 3 4 5 Das Paket gui Gui beinhaltet alle statischen Oberfl chenelemente des CONTROL Paketes Hauptfenster ist DeViSoR in welchem alle Projekte in internen Frames dargestellt werden Alle app Klassen werden hier mit einer grafischen Interaktionsdarstellung versehen Au er dem befinden sich hier alle Dialoge zum Erstellen eines neuen Projektes JNewProjectDialog eines neuen Servers JNewServerDialog ein JCheckConnectionDialog zum Testen einer Verbindung zu einem Server der JResultDownloadDialog um Ergebnisse der einzelnen Mo dule herunterzuladen und JImportModuleDialog und JOpenModuleDialog zum Importie ren von auf anderen Rechnern gestarteten bzw ffnen von geschlossenen aber nicht beendeten Modulen 3 4 DAS MODUL CONTROL 75 3 4 6 Das Paket properties Im properties Paket befindet sich nur das JPropertyPanel Interface und Implementierungen dieses Interfaces Diese Implementierungen werden in den JDeViSoRPropertiesDialog von DEVISOR zur Ver nderung der Einstellungen eingebunden JPropertyPanel stellt dabei si cher da die ben tigten Methoden zum Darstellen und Aktualisieren der Properties zur Verf
316. ommand equals GetCompleteStatistics so we just reroute the command to the unsupported handler which luckily is defined in the superclass In some other cases it might be useful to reroute to a new method defined in this class handleCommand_UnsupportedCommand din dout return this call is cruci abstract comm thre its original versi command handlers catch Exception ex al It prevents the ad from executing on of the if an exception comes this far up send it back via piggyback ping if ex instanceof NetException promote ex to NetException to get the ListOfErrors x new NetException ex There were errors ExampleCommunicationThread Exception in ExampleCommThread devisor net interim Error ERROR_COMMTHREAD wrapper getInterimBundle then add it to the queue wrapper getOutbox enqueue NetException ex getListof wrapper getProjectID Integer toString wrapper get wrapper getInstanceHandle I Errors oduleID r let the abstract class reply to all other commands super handleIncomingCommand command din dout Codebeispiel 27 Blockierung von Protokollbefehlen 189 190 ANHANG B ERWEITERUNGSM GLICHKEITEN B 2 3 Implementierung des Wrappers f r das neue Modul Dieser Teil besteht im wesentlichen
317. on Iso Linien ScalarThresholdFilter Schneidet die Werte in einer Domain an Grenzwerten ab Surface3DFilter Lenkt eine zweidimensionale Domain anhand der Knotenwerte in die dritte Dimension aus C 7 10 devisor vision pipe mapper AbstractArrowMapper Fasst einige allgemeine Funktionen f r den Arrow2D und den Ar row3DMapper zusammen AbstractGlyphMapper Fasst einige allgemeine Funktionen f r die AbstractArrow und den AbstractSphere Klassen zusammen und den Arrow3DMapper zusammen AbstractMapper Fasst einige allgemeine Mapper Funktionen zusammen und bietet somit ei ne Grundlage f r Maper Implementierungen Implementiert die I_Mapper und I_Con fi gu rab le Interfaces AbstractSphereMapper Fasst einige allgemeine Funktionen f r die Sphere2D und den Sphe re3DMapper zusammen Arrow2DMapper Interpretiert die Daten der VisionDomain als L nge Dicke Richtung und oder Farbe von zweidimensionalen Pfeilen Arrow3DMapper Interpretiert die Daten der VisionDomain als L nge Dicke Richtung und oder Farbe von dreidimensionalen Pfeilen Axis_3D Stellt ein dreidimensionales Achsenkreuz dar DomainFineGridMapper Zeichnet die Kanten eines Feingitters DomainMapper Zeichnet die Kanten und Begrenzungsobjekte einer Domain I_Mapper Schreibt Methoden vor die von Mapper Implementierungen angeboten werden m ssen NullMapper Erzeugt ein leeres Ergebnisbild C 7 DAS PAKET VISION 233 Particle2DDefaultMapper Ein Standard Mapper f r 2D
318. on analog ausge f hrt Es mu ein Filter ein Mapper sowie ein Renderer ausgew hlt werden Es empfiehlt sich den Identity Filter den ShadedPlot Mapper und den Standard Renderer auszuw hlen Die Komponenten der Pipe sind bereits f r dieses Problem passend konfiguriert so da ein zus tz liche Konfiguration optional ist Nachdem man auf Weiter geklickt hat mu man die Domain auf welcher die Pipe arbeitet ausw hlen Man beachte da das die selbe Domain sein mu die auch das Numeric Modul zur Berechnung der Daten benutzt hat Als letztes mu nur noch das Numeric Modul ausgew hlt werden Wenn alles eingestellt ist dann kann man auch VISION starten Es erscheint ein VISION typisches Fenster in dem die Visualisierung der Domain anhand der Auslenkung der Membran dargestellt wird Um eine ideale Visualisierung zu erstellen kann nun der Blickwinkel und die Entfernung des Gebiets in dem sich ffnenden Fenster eingestellt werden Nach dieser Justierung kann der Ok Knopf geklickt werden F r jeden Zeitschritt wird nun ein offline Bild erstellt und ein QuickTime Movie von allen Zeitschritten zusammen erstellt Alle anderen Module sind analog aufgebaut so da die Bedienung des Programms nach dem Durchspielen des gerade vorgestellten Beispiels sehr einfach ist Die Bedienung unterscheidet sich haupts chlich in den Problem und Parametereinstellungen f r die Module F r die n here und detailliertere Beschreibung der Bedienung der einzelnen
319. onal steering erh ht die Produktivit t indem die Zeit die normalerweise zwischen der nderung von Parametern und der Visualisierung der Resultate auftritt wesentlich reduziert wird Es erm glicht dem Anwender eine Was w re wenn Analyse Da nderungen von Pa rametern nun zeitn her beobachtet werden k nnen kann der Forscher Zusammenh nge zwi schen Ursache und Wirkung besser erkennen Computational steering ist in Bereichen der Computerwissenschaften in weitem Umfang ein setzbar Weitgefa t kann man alle interaktiven Berechnungsprozesse als eine Form von compu tational steering ansehen Beispiele hierf r w ren das zeilenweise Debuggen von Quellcode die interaktive wissenschaftliche Visualisierung oder auch Computerspiele In diesem Bereich k nnen grunds tzlich drei Hauptanwendungen von computational steering festgestellt werden Modellerforschung Experimentieren mit Algorithmen sowie die Leistungsoptimierung Bei der Modellerforschung wird computational steering dazu benutzt den Parameterraum zu erforschen und dessen Auswirkung auf die Simulation zu beobachten um neue Einsichten ber die Simulation zu erhalten Computational steering erlaubt beim Experimentieren mit Algorith men die Anpassung eines Algorithmus w hrend der Laufzeit um zum Beispiel verschiedene 2 2 MATHEMATISCHER HINTERGRUND 13 Methoden zur Berechnung numerischer Probleme auszuprobieren Die Optimierung der Lei stung einer Anwendung besteht zum Beispiel
320. onaler Domains durch Kreise dar Die Parameter die sich von denen bei den ArrowMappern unterscheiden sind im einzelnen e Scalar Value Name Der Name des Wertes in der erzeugten GM V Datei der visualisiert werden soll e Visualiszation Method Die Art und Weise auf der die Werte dargestellt werden sollen M glich sind hier Radius und Farbe der Kreise e SphereColor Legt die Farbe der Kreise bei Visualisierungsmethode Radius fest e SphereRadius Lest den Radius der Kreise bei Visualisierungsmethode Farbe fest Sphere3DMapper Stellt skalare Werte an den Knoten dreidimensionaler Domains durch Ku geln dar Die Parameter die sich von denen bei den ArrowMappern unterscheiden sind im einzelnen e Scalar Value Name Der Name des Wertes in der erzeugten GM V Datei der visualisiert werden soll e Visualiszation Method Die Art und Weise auf der die Werte dargestellt werden sollen M glich sind hier Radius und Farbe der Kugeln e SphereColor Legt die Farbe der Kugeln bei Visualisierungsmethode Radius fest e SphereRadius Legt den Radius der Kugeln bei Visualisierungsmethode Farbe fest Renderer SimpleRenderer Der SimpleRenderer kapselt die Darstellung der Domain er ben tigt aber keine Parameter und hat daher auch keine Benutzerschnittstelle A 6 VISION DIE VISUALISIERUNG DER ERGEBNISSE 167 Das VISION Fenster Das VISION Fenster zeigt die Domain in der konfigurierten Visualisierungstechnik in
321. onen Konkreter ausgedr ckt hat man bei jeder Visualisierung eine Information ber die Ausrichtung und die Farbe ber die Ausrichtung und die L nge oder ber die Ausrichtung und die Dicke des Pfeils Wird eine dieser drei Angaben Farbe Dicke oder L nge gew hlt so sind die anderen Eigenschaften konstant d h sie nehmen bestimmte konstante Werte an Dabei haben diese drei Eigenschaften keine vordefinierte Bedeutung sie k nnen vom Benutzer f r jede m gliche Vi sualisierungsart jeweils benutzt werden Die Pfeile k nnen benutzt werden um zum Beispiel die Geschwindigkeit darzustellen Die Ausrichtung des in Bewegung schreitenden Objektes wird durch die Richtung des Glyphs an einem Punkt erkennbar Die Geschwindigkeit selbst wird nach Einstellung durch die Farbe der L nge oder durch den Radius bestimmt Au er der Geschwindigkeit sind mit diesen Glyphs noch andere Simulationswerte visualisier bar Manchmal ist jedoch die implizite Richtungsangabe nicht erw nscht bzw irrelevant so da man auf die kugelf rmigen Glyphs wechselt Eine Kugel kann jedoch maximal zwei Infor mationen die Farbe und der Radius enthalten Es kann wieder der bersichtlichkeit halber jeweils nur zwischen einer der beiden Informationen gew hlt werden Kugeln oder Kreise im 3 6 DAS MODUL VISION 97 2D werden z B f r den Druck oder f r die Temperatur verwendet Dabei bleibt die nicht ge w hlte Eigenschaft konstant Wie werden die Glyphs
322. onstruktion am Beispiel marching cubes Die marching cubes werden so genannt weil bei dieser Methode Voxel f r Voxel im Raum abgegangen wird hnlich dem Er stellen von Isolinien werden zun chst alle Eckpunkte der Voxel klassifiziert je nachdem ob sie gr er oder kleiner als der gesuchte Schwellenwert sind Dann kann anhand dieser Klassifikati on der Eckpunkte des Voxels wieder bestimmt werden ob die Oberfl che das Voxel schneidet Wie diese Oberfl che im Voxel aussieht wird anhand einer Tabelle entschieden Dazu werden die 8 Bit der Eckpunkte als Index zu dieser Tabelle genutzt die die Lage der Oberfl chen und Normalenvektoren f r alle F lle enth lt Da die dabei auftretenden 256 M glichkeiten f r die Oberfl che in einem Voxel aber durch Rotation und Spiegelung auf 15 verschiedene reduziert werden k nnen mu nur unter diesen 15 der passende Fall im Zusammenhang um L cher in der Oberfl che zu vermeiden ausgew hlt werden hnlich wie bei der Isolinienerstellung werden jetzt die Schnittpunkte der Oberfl che auf den Voxelkanten durch lineare Interpolation bestimmt und anschlie end die Oberfl che anhand der Schnittpunkte eingepa t Ist das Voxel fertig bearbeitet wird zum n chsten bergegangen bis alle Voxel besucht wurden Volume Rendering Raycasting Volume Rendering bzw Raycasting stellt die andere Her angehensweise zu Darstellung von Voxelmodellen dar Da das Modell direkt auf eine Ebene projiziert wird hat es sogar
323. orden ist Sie wird aber nach dem ersten Start automatisch f r das System auf dem es l uft erstellt und konfiguriert 84 KAPITEL 3 SYSTEMBESCHREIBUNG Das letzte Panel ist das 3D Panel das eine dreidimensionale Sicht auf die Objekte erlaubt Alle Operationen in GRID gehen ber GridMainFrame Zus tzlich befinden sich dort die Verbindung zu der Netzschnittstelle die Klasse GridNet Die se implementiert das Interface Wrappable und enth lt eine Instanz der Klasse GridWrapper als Attribut ber den dann ber das Netz kommuniziert werden kann Siehe 3 2 Auch die Schnittstellen zu den externen Datentypen wie Java Wavefront Dateien WaveFront Importer und zu dem Datentyp FEAST FeastLoader unter welchem alles was mit GRID erstellt wird abgespeichert wird befinden sich in diesem Paket Eine Hilfsklasse der MouseModeListener ist ebenfalls in diesem Paket zu finden Sie schaltet in GridMainFrame zwischen verschiedenen Mouse Modi um Mouse Modi sind Konstanten die bestimmen welcher Event Handler intern aktiv sein soll Im Paket devisor grid dialogs befinden sich alle Dialoge von GRID deren Namen gleichzeitig auch ihre Funktionalit t beschreiben Es handelt sich um AboutDialog HierarchyDialog BoundaryCubicleDialog NodeDialog BoundaryDeleteDialog OptionsDialog BoundaryNode3DDialog PasteAtDialog BoundaryNodeDialog PointOflnterestDialog CircleDialog QuadDialog CylinderDialog SphereDialog EdgeDialog TetraDialog
324. orizontalen TabbedPanes sind die Module nach Modultypen sortiert Module eines Modultyps hingegen sind in vertikalen TabbedPanes angeordnet 116 ANHANG A BENUTZERHANDBUCH Neues Modul ber NUMERICS gt Neues NUMERICS kann z B ein neues Numerikmodul erstellt werden Analog k nnen Module anderer Modultypen erstellt werden An laufende inaktive Module anbinden ber NUMERICS gt ffne NUMERICS kann z B ein bereits laufendes inaktives Modul neu angebunden werden Dazu erscheint der in Abb A 6 gezeigte Dialog Analoges gilt f r Module anderer Modultypen import NUMERICS Import Module Select Server and Module Alias v FeatPoisson v Module Modulename FeatPoisson Moduletype NUMERICS Moduleld 3 Projectid My_Project106 Moduleport 4711 Username Benutzername FEAT2D Testmodul Poisson mit LOCUTUS Linkmodul OK X cancel Abbildung A 6 Module importieren Modul schlie en ber NUMERICS gt Schlie e NUMERICS kann z B das aktive Modul eines Modultyps geschlossen werden Das gleiche gilt f r alle anderen Modultypen ber NUMERICS gt Alle schlie en k nnen alle Module eines Modultyps geschlossen werden Modul ausw hlen Die Modulauswahl erfolgtin dem Panel Select Module and Server Falls noch kein Modul ausgew hlt wurde gibt es zwei M glichkeiten zur Modulauswahl zum einen kann man ein Modul ber die zwei
325. orm von Differentialgleichungen beschrieben Beispiele 1 Wellengleichung Schwingende Ausbreitungsvorg nge sind z B die Ausbreitung einer Wasserwelle lokale St rung der Wasseroberfl che oder eines Ger uschs lokale St rung der Luftdichte Es erscheint sinnvoll hier im Eindimensionalen diese im einfachsten Fall durch eine Funktion u u x t im Ort x und der Zeit t der Form u x t sin x sin t zu be schreiben Die Welle wird als Sinusfunktion im Ort modelliert zus tzlich beeinflu t durch eine Sinusfunktion in der Zeit Diese gen gt der Differentialgleichung u Hu 2 1 Beweis f r den skalaren Fall 5 sin x sin t sin x cos t sin x sin t 82 sin x sin t Oz cos x sin t sin x sin t Gleichungen dieser Form hei en auch hyperbolisch 16 KAPITEL 2 GRUNDLAGEN 2 W rmeleitungsgleichung Andere Ausbreitungsvorg nge sind dadurch gekennzeichnet da lokale St rungen nicht schwingend sondern diffundierend und sich abschw chend fort pflanzen z B die Temperaturausbreitung in einem Leiter W rmeleitung oder die Verteilung einer Dichtekonzentration in einer Fl ssigkeit Stofftransport Zur Beschreibung solcher Vor g nge dienen Funktionen der Form u x t sin x e hier als Beispiel im Eindimensiona len Die Sinus Funktion spiegelt die im Ort unged mpfte Wellenbewegung wider w hrend die e Funktion f r eine D mpfung in der Zeit sorgt Diese Funktion gen gt der Diff
326. ples DO NOT use quotes in actual file cells1 051471012 nodes1 1 8 57 10 30 45 50 55 62 faces1 24141218 endgrp Keyword indicating end of group data comments Keyword indicating that ASCII comments follow endcomm Keyword indicating end of comments codename anyname The name of the code that generated the file where anyname is the eight character name of the code codever version The version of the code that generated the file where version is the eight character version of the code simdate date The date the file was generated where date is in the form mm dd yy endgmv Keyword signifying the end of the input file D 2 2 Input Data Details Header The header line contains the gmvinput keyword and the character variable file_type which contains either ascii ieee ieeei4dr4 ieeei4r8 iecxi4r4 or iecxi4r8 The AS CII file type indicates that the file was written as a formatted ASCII file the file will be read using list directed I O so there must be at least one space between data elements The ieee ieeei4r4 and ieecxi4r4 file types indicate the file was written as an unformatted file with IEEE single precision floating point and 32 bit integers ieeei4r8 and iecxi4r8 indicate that all floa ting point data is 64 bit The iecxi4r4 and iecxi4r8 file types indicate that character data is 32 characters long while the other ieee types have eight characer
327. ppe durch einen Klick auf Auswahl zum Diagramm hinzuge f gt werden und ebenso wieder entfernt werden Durch einen Klick auf Abbrechen wird der Vorgang der Konfiguration unterbrochen ein Klick auf Okay f hrt zur Erstellung der konfigurierten Diagramme und deren Darstellung in einem neuen Fenster In diesem Fenster werden alle Diagramme angezeigt und bei Eingang 120 ANHANG A BENUTZERHANDBUCH VisionViewer Statistik Diagramm 0 Diagramm 1 MECPU times convergence v j CPU times Elprocess speed j process speed Hicompleted calc time HL LLL Wicalc time Timestep Timestep Diagramm 2 Diagramm 3 0 92 9 0 26 3 0 52 5 0 69 7 0 91 9 0 61 6 mconvergence Bcalc time memory usage 0 10 1 0 53 5 0 87 9 0 72 7 0 83 8 0 65 7 Timestep 0 64 7 0 81 8 0 81 8 Abbildung A 8 Das Diagrammfenster neuer Daten ber die Schnittstelle zu CONTROL werden diese im Diagramm ebenfalls ange zeigt ber das Popup men dieses Fensters welches auch hier durch Bet tigen der rechten Maustaste ausgel st werden kann kann das Diagrammfenster als JPEG Grafik abgespeichert werden Nach Klick auf Speichere Statistik als Bild wird dieser in eine Abbildung A 9 Das Popup Men anzugebene Datei geschrieben um so das Diagramm auch nach Abschlu der Berechnungen weiterhin zur Verf gung zu haben Download Der Ergebnisdownload s Abb
328. properly which means that the reference to the nodes has to be changed in a reference to a corresponding visionnode F F FF public void updateEdgesChildren for all edges for int i 0 i lt getEdges size i getting the children of the edge int startNodeNumber Node Edge edges elementAt i getStartNode getNumber int endNodeNumber Node Edge edges elementAt i getEndNode getNumber setting up children of the visionedge elementAt i actualEdge setStartNode getValueNode startNodeNumber actualEdge setEndNode getValueNode endNodeNumber VisionEdge actualEdge VisionEdge visionEdges Codebeispiel 5 Referenzaktualisierung Um die Werte der GMV Daten fiir jeden aktuellen Zeitschritt in den ValueNodes zu speichern wird der GMVWrapper benutzt Nachdem alle Informationen aus den GMV Daten mittels 90 KAPITEL 3 SYSTEMBESCHREIBUNG des GMVWrapper gelesen wurden werden diese unter Benutzung der folgenden Methode in die Domain integriert public void setValues GMVWrapper aWrapper Zur Aktualisierung der Knotenwerte wird der Knotenvektor der VisionDomain durchlaufen wobei an jedem Knoten e Platz f r die Werte gemacht wird und e skalare und vektorielle Werte gespeichert werden In der VisionDomain sind die Knoten ihre Koordinaten und skalaren bzw vektoriellen Werte
329. py buffer routertablelactrtl wdpath strcat buffer nnwork inc fh fopen buffer w fprintf fh parper LVD_FEPO_NNWORK PLMIN fclose fh PARAMETER NNARR 299 NNAB 21 NNWORK 1d n Codebeispiel 46 Parameterkonfiguration 2 B 3 EINBINDUNG ANDERER PROGRAMMPAKETE generation of parameter file TEST2D DAT strcpy buffer routertablelactrtl wdpath strcat buffer TEST2D DAT fh fopen buffer w fprintf fh i t tM n parper LVD_FEPO_M PLMIN fprintf fh i t tMT n parper LVD_FEPO_MT PLMIN fprintf fh Si t tNFINE n parper LVD_FEPO_NFINE PLMIN fprintf fh i t tICUB n parper LVD_FEPO_ICUB PLMIN fprintf fh Si t tICUB RHS n parper LVD_FEPO_ICUB_RHS PLMIN fprintf fh Si t tISOLV CG n parper LVD_FEPO_ISOLV_CG PLMIN fprintf fh i t tNIT CG n parper LVD_FEPO_NIT_CG PLMIN fprintf fh SE t tEPS CG n parperl LVD_FEPO_EPS_CG PLMIN fprintf fh E t tOMEGA CG n parper1 LVD_FEPO_OMEGA PLMIN forintf fh 2 ICUBM ELIT n forintf fh 8 ICUB2 ELPT n fprintf fh Si t tMAXNITER n parper LVD_FEPO_MAXNITER PLMIN fprintf fh 66 OUTPUT UNIT n fprintf fh TEST2D OUT OUTPUT FILENAME n fclose fh Codebeispiel 47 Parameterkonfiguration 3 201 202
330. r Anwender kann eine gest artete Rechnung nach Belieben pausieren und wieder aufnehmen Falls dies in der Modulvorbe 60 KAPITEL 3 SYSTEMBESCHREIBUNG reitung so konfiguriert wurde werden auf Knopfdruck Statistiken in Diagrammform angezeigt und es k nnen eventuell anstehende Zwischenergebnisse heruntergeladen werden Darstellung von Zwischenergebnissen durch VISION Auf dem Rechner localhost wird eine Instanz des VISION Moduls gestartet Das Modul bietet nur ein Problem an die Visuali sierung Seine Parameterliste gliedert sich in drei Bestandteile e Filter sieben ungew nschte Teile der Daten aus beispielsweise mit der Rasenm herme thode jeden zweiten Datensatz oder alle Werte die nicht auf einer bestimmten Isolinie liegen e Mapper berf hren die Daten in eine Darstellungsform f r den Bildschirm e Renderer stellen das fertige Bild dar Die globale Konfigurationsliste von VISION enth lt die interessanteren Parameter Zum einen wird das Grobgitter ben tigt auf dem auch das Numerikmodul arbeitet zum anderen kann entschieden werden ob nur ein Schnappschu oder ein Film gerendert werden soll Im kon kreten Szenario wird sich der Anwender an dieser Stelle f r einen Schnappschu entscheiden Der letzte Punkt ist die Einstellung der Datenquelle f r VISION Hier w hlt der Anwender das Numerikmodul aus das gerade im Hintergrund auf dem Supercomputer das Membranproblem l st Ferner wird angegeben welcher Zeitschritt visualisier
331. r Domain eine VisionDomain zu erstellen Dazu m ssen alle Objekte des devisor framework foundation Pakets in die entspre chenden Klassen des devisor vision ds Pakets umgewandelt werden Wenn dies geschehen ist m ssen die Referenzen auf die Kinder bzw Eltern dieser Objekte wieder aktualisiert werden Dazu werden die entsprechenden Vektoren der gegebenen Domain durchlaufen und in den Vektoren der VisionDomain gespeichert Alle Objekte k nnen in den Vektoren der Vision Domain ber ihre eindeutige Nummer angesprochen werden Das Suchen von benachbarten Elementen kann ber die Referenzen auf die Kinder und Eltern der Objekte geschehen 3 6 DAS MODUL VISION converting domain elements in vision elements nodes if getNodes size 0 System out printin creating VisionNodes for int i 0 i lt getNodes size i ValueNode newNode new ValueNode valueNodes add newNode Node getNodes elementAt i Codebeispiel 4 Erstellung einer VisionDomain 89 Danach m ssen die Referenzen der neuen Objekte aktualisiert werden Die Notwendigkeit hierf r besteht darin das die urspr nglichen Klassen Referenzen auf Objekte der devisor framework foundation Klassen besa en aber Referenzen auf die devisor vision ds Klassen ben tigt werden This method updates the childern of the edges lt br gt After that edges are tranformed to visionedges their children have to be set up
332. r Partikel sich unterscheiden 94 KAPITEL 3 SYSTEMBESCHREIBUNG Abbildung 3 3 mit Feingitter Abbildung 3 4 ohne Feingitter 3 6 10 Filter Der Identit tsfilter IdentityFilter Der Standard Filter Er schreibt alle Daten die er erh lt unver ndert in den Ausgabestrom Sinnvoll l t er sich durch Angabe eines Dateinamens zur Speicherung des ersten eingehenden Datenstroms verwenden Der Schwellwertfilter ThresholdFilter Hier werden alle Werte ber bzw unter dem konfigurierten Schwellwert abgeschnitten Beste hen die Daten aus einem Vektorfeld wird der Schwellwert jeweils mit der euklidischen Norm der Vektoren verglichen Dadurch wird das Mapping auf interessante Bereiche der Simulation konzentriert was sich ebenfalls in einem Geschwindigkeitsgewinn bemerkbar machen d rfte 3 6 DAS MODUL VISION 95 Der CutlinesFilter CutplanesFilter Cutlines und Cutsurfaces bilden die Ausnahme bei der Zuordnung von Visualisierungstechnik und Mapper Hier besteht die Aufgabe darin eine Ebene oder einen Raum zu durchschneiden und f r die entstehende Schnittflache linie eine neue Domain zu erzeugen und die Datenwerte f r die entstehende Struktur zu interpolieren Somit erledigt dieser Filter die Hauptarbeit der Visualisierungstechnik Die vielf ltigen An wendungsm glichkeiten dieses Filters entstehen daraus da jeder beliebige Mapper mit die sem Filter benutzt werden kann So k nnte aus einer Schnittfl che zum Beispiel
333. r die Kommunikation zwischen der CONTROL Instanz und dem gestarteten Numerikmodul verantwortlich ist Der n chste Schritt besteht in der Konfiguration des Moduls Sie geschieht in drei Schnit ten Zun chst wird eine Liste der unterst tzten Probleme angefordert der Anwender w hlt beispielsweise das Membranproblem aus Danach werden die n tigen Parameter eingestellt Statistikoptionen rechte Seite der Gleichungen usw Ein spezieller Parameter ist das Grobgitter f r die Rechnung Das Numerikmodul liefert zwar ein Standardgitter als Vorbelegung f r die sen Parameter f r eigene Rechnungen ist aber ein angepa tes Gitter n tig Also wird auf dem Rechner localhost eine Instanz des GRID Moduls gestartet mit denselben Mechanismen wie das Numerikmodul auf dem entfernten Rechner Der Benutzer erstellt das individuelle Grob gitter speichert es ab und tr gt es als Wert des entsprechenden Parameters in die Konfiguration des Numerikmoduls ein Der letzte Vorbereitungsschritt besteht in der Einstellung der problemunabh ngigen Konfi gurationsm glichkeiten Im konkreten Beispiel des Membranproblems ist hier nichts zu tun Start der Berechnung Ist das Numerikmodul fertig konfiguriert kann der Anwender die Berechnung starten Das Modul hat bereits bei der Auflistung der angebotenen Probleme s 0 dem Kontrollmodul mitgeteilt inwiefern es die Kassettenrekorder Funktionen unterst tzt im Fall des Membranproblems werden alle Funktionen unterst tzt De
334. r diese Kleinschritte zur L sung Wieder andere verwenden pri mitive Startverfahren und intelligente Extrapolationsverfahren zur Verbesserung der schlech ten Startwerte Allen Verfahren gemeinsam ist jedoch die Tatsache da in der Zeit diskretisiert wird Eine Klassifikation teilt g ngige Verfahren dahingehend ein ob sie neue Werte immer nur aus dem zuletzt berechneten oder aus vielen vorherigen Werten errechnen Man spricht hier von Einschritt und Mehrschrittverfahren Weiter unterscheidet man Verfahren mit konstan ter Schrittweite und Verfahren die die Schrittweite adaptiv unter Verwendung intelligenter Fehlersch tzer anpassen um den Fehler kontrollieren zu k nnen Als letzter Punkt sollte er w hnt werden da durch die Diskretisierung und die Verwendung von Computern viele neue Probleme im Bereich der numerischen Stabilit t auftreten Im wesentlichen k nnen ber lan ge Zeitr ume verst rkende Rundungsfehler exponentielles Wachstum der L sung verursachen oder Verfahren konvergieren auf dem Computer nicht zur L sung obwohl dies analytisch be weisbar passieren sollte Eine ausf hrliche Untersuchung existierender Verfahren besonders im Bezug auf Partikelverfolgung findet sich in 10 Als besonders geeignet haben sich Verfahren des Runge Kutta Typs erwiesen so zum Beispiel das folgende vierter Ordnung zur Schrittweite h p Po ky h v p tk 1 ko i h v p ghar tk 5 1 h ha k Z
335. r ganze Rest ausgeschlossen wird Um das bei der Zeichnung ei nes Kreises zu ber cksichtigen kann man bei der Eingabe die CTRL Taste dr cken um den u eren Raum zu beschreiben Ansonsten wird das Innere des Kreises beschrieben Die Nummer des Kreises erscheint neben der Nummer des Mittelpunkts sie hat allerdings eine andere Farbe als dieser Dieses Werkzeug ist das gleiche wie in der Werkzeugleiste Bearbeiten Circles hinzu f gen In 3D gibt es drei Arten von Randbeschreibungen Cubicles Quader Spheres Kugeln und Cylinders Zylinder Das Werkzeug Cubicles hinzuf gen f gt einen rechteckigen Quader ein Mit zwei Punkten wird ein Grundquader erstellt Die Punkte beschreiben den linken oberen und den rechten un teren Punkt des Quaders Sie d rfen verst ndlicherweise nicht auf einer Ebene liegen deswe gen mu bei der Erstellung dieses Objekts die rechte Maustaste verwendet werden um die dritte Koordinate zu bestimmen Es mu ein Punkt eingegeben werden der die Rotation des Quaders bestimmt Die Rotation kann hier leider sehr unpr zise anhand der simulierten Dre hung eingegeben werden Um eine genaue Eingabe zu erhalten mu man die 8 Punkte in dem entsprechenden Dialog eingeben Es existieren f r alle Elemente entsprechende Dialoge siehe unten mit denen man die Eingabe genauer als mit der Maus vornehmen kann Die Nummer des Quaders wird nicht explizit eingezeichnet wohl aber die Nummern der 8 Eckpunkte aus denen er beste
336. rList getParameterlist public ListOfErrors configure ParameterList aList public void setBranchGroup BranchGroup aBranchGroup Codebeispiel 19 Grundgeriist jeder Rendererklasse Die Importe sind nat rlich abh ngig von der Implementierung des Renderers aber f r unser Beispiel werden die folgenden ben tigt javax media j3d BranchGroup javax media j3d TransformGroup impor impor Ben import com sun j3d utils universe SimpleUniverse import devisor net interim ListOfErrors import devisor net interim ParameterList import devisor vision util EmptyParameterList import devisor vision util MouseConfig import devisor vision util MouseManipulator import devisor vision util NoErrors Codebeispiel 20 Die Importe der neuen Mapper Klasse 182 ANHANG B ERWEITERUNGSM GLICHKEITEN B 1 4 Eine Parameterliste Parameterlisten bestehen aus ineinander verschachtelten Objekten so da Options Hierarchien aufgebaut und Abh ngigkeiten definiert werden k nnen Allerdings sind die Konstruktoren die ser Objekte recht un bersichtlich was die Generierung von Parameterlisten zu einer schwieri gen Aufgabe machen kann public ParameterList getParameterlist Internationalisierung wird konsequent praktiziert ResourceBundle il8n ResourceBundle getBundle devisor net interim interimil8n LocaleHandler getLocale Diese Liste wird sp ter zur
337. ral cell with 20 vertex ids Patran order verts 20 vertex ids prism 6 Prism cell with 6 vertex ids verts 6 vertex ids pyramid 5 Pyramid cell with 5 vertex ids verts 5 vertex ids Note the ordering of the vertices for tet hex prism and pyramid is shown in Fig 9 1 The tri and quad cells are two dimensional entities that employ a sequential vertex numbering scheme around the periphery of the cell vface3d nfaces Vface3d type number of faces in cell vfaces nfaces vface ids in vface keyword see below Note vface3d type cannot be mixed with other cell types vface2d nfaces Vface2d type number of faces in cell vfaces nfaces vface ids in vface keyword see below Note vface2d type cannot be mixed with other cell types Vface2d faces are 2D faces i e edges vfaces nfaces Vface data number of faces Followed by nfaces lines of nverts Number of vertices per face pe_no Processor number of the face 1 if single processor oppface Opposite face number opp_pe_no Processor number of the opposite face 1 if single processor cellno Cell number of the cell the face is part of vertex_ids Integer list of node numbers that define the polygonal faces 248 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN faces nfaces ncells Face data number of faces and number of cells Followed by nfaces lines of nverts Number of vertices per face vertex_ids Integer list of node numbers that define the polygonal faces cellnol Cell number
338. ram Whether that is true depends on what the Program does 1 You may copy and distribute verbatim copies of the Program s source code as you re ceive it in any medium provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty keep intact all the notices that refer to this License and to the absence of any warranty and give any other recipients of the Program a copy of this License along with the Program You may charge a fee for the physical act of transferring a copy and you may at your option offer warranty protection in exchange for a fee 2 You may modify your copy or copies of the Program or any portion of it thus forming a work based on the Program and copy and distribute such modifications or work under the terms of Section 1 above provided that you also meet all of these conditions a You must cause the modified files to carry prominent notices stating that you chan ged the files and the date of any change b You must cause any work that you distribute or publish that in whole or in part contains or is derived from the Program or any part thereof to be licensed as a whole at no charge to all third parties under the terms of this License c If the modified program normally reads commands interactively when run you must cause it when started running for such interactive use in the most ordinary way to print or display an announcement including
339. rammer or your school if any to sign a copyright disclaimer for the program if necessary Here is a sample alter the names Yoyodyne Inc hereby disclaims all copyright interest in the program Gnomovision which makes passes at compilers written by James Hacker signature of Ty Coon 1 April 1989 Ty Coon President of Vice 297 This General Public License does not permit incorporating your program into proprietary pro grams If your program is a subroutine library you may consider it more useful to permit linking proprietary applications with the library If this is what you want to do use the GNU Library General Public License instead of this License 298 ANHANGE LIZENZ Literaturverzeichnis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ABRAMOWSKI S und M LLER H Geometrisches Modellieren BI Wissenschaftsverlag Jan 1992 AVS Advanced Visualization Systems Techn Ber Advanced Visualization Systems Jan 2003 http www avs conm BECKER CH und TUREK S FEATFLOW Finite Element Software for the Incompres sible Navier Stokes equations User Manual Release 1 1 Techn Ber Universit t Hei delberg Jan 1998 BERN M und EPPSTEIN D Mesh Generation and Optimal Tri angulation UC Irvine Dept Inf amp Computer Science Jan 1995 http www ics uci edu eppstein pubs BerkEpp CEG 95 pdf BORLAND TogetherJ 6 0
340. ransform p p add center Codebeispiel 3 Berechnung des Strahls Es fehlen die Klassen Boundary und Domain Diese sind intelligente Container f r die Boundary Objekte die Finiten Elemente und ihre Bestandteile Knoten Kanten usw Die Aufteilung in Boundary und Domain ist prinzipiell unn tig Sie ist durch Mi verst ndnisse w hrend des Entwurfs entstanden Domain und Boundary enthalten createXYZ ad dXYZ und removeXYZ Methoden Die add und remove Methoden dienen dazu die Objekte in der Instanz zu speichern und die Listen der Eltern aktuell zu halten Die createX YZ Methoden erzeugen eine neue Instanz von XYZ und weisen diesem eine eindeutige Nummer zu Au erdem werden Plausibilit ts berpr fungen durchgef hrt z B sind keine Kanten zuge lassen die aus zweimal demselben Knoten bestehen Werden diese nicht erf llt so werden entsprechende Exceptions geworfen Zus tzlich gibt es eine Vielzahl von Methoden um Objekte nach bestimmten Kriterien zu suchen z B findEdgeByNumber 3 um die Kante 3 zu suchen oder findEps p v d bb um einen Knoten zu finden der h chstens Abstand d von der Gerade p alpha v hat und innerhalb der Boundingbox bb liegt Das Paket devisor framework viewer In diesem Paket werden die Methoden und graphische Schnittstellen bereitgestellt um die im devisor framework foundation Paket vorgestellten Objekte zu visualisieren Dabei sind na t rlich nicht nur die Objekte gemeint
341. ration werden so eine oder mehrere Statistiken angezeigt 78 KAPITEL 3 SYSTEMBESCHREIBUNG e Durch die Klasse StatChart wird jeweils eine einzige solcher Statistiken dargestellt innerhalb dieser Klasse findet die eigentliche Visualisierung der Statistikdaten dar Dazu wird eine Instanz aus einer der Klassen LBChart2D LLChart2D oder PieChart2D aus der benutzten Java Bibliothek Chart2D von Jason J Simas erzeugt und innerhalb eines JPanels graphisch dargestellt e Die Konfiguration der Statistikdarstellung wird durch die Klasse StatConfigurationDia log vorgenommen die einen Dialog f r die Konfiguration der einzelnen Statistikdarstel lungen bietet Die verwendete Java Bibliothek Chart2D Copyright C 2001 von Jason J Simas steht un ter der GNU Lesser General Public License und kann somit in dem DEVISOR Projekt frei eingesetzt werden Die Klasse StatManager kapselt wie bereits zu Eingang erw hnt die komplette Konfiguration und Darstellung der Statistiken das CONTROL Modul mu nur die Methoden dieser Klasse integrieren um die volle Funktionalit t der Statistikdarstellung anbieten zu k nnen Eine neue Instanz dieser Klasse wird hierbei ber den Konstruktur erstellt der als Parame ter zwingend einen SelectionParameter enthalten mu in welchem die angebotenen Stati stikdaten und deren Format beschrieben werden wie das auch bei den f r die anderen Mo dule benutzen Parameterlisten der Fall ist Durch Aufruf des Konstruktors wir
342. rbe bzw Schattierung besitzen In Abbildung 2 19 a kann man z B nicht sofort erkennen da der kleine Bereich in der Mitte der oberen Kante auf der gleichen H he wie ein anderer liegt Aus Abbildung 2 19 b hingegen ist dieser Umstand leicht ersicht lich Als weitere Variante ist es auch m glich die Farbe der Fl chen zwischen den Isolinien durch lineare Interpolation der Werte zu erhalten a H hen als Isolinien b und als Shaded Plot Abbildung 2 19 Isolinien und Shaded Plot Gitternetze und Dreiecksnetze Eine Alternative zu den vorangegangenen Methoden ist es Gitter engl rectangular bzw Dreiecksnetze engl triangular meshes ber die Daten die als H he ber einer Ebene interpretiert werden zu legen und damit ein Oberfl chennetz zu erzeugen Gitternetze werden meistens dadurch erzeugt da man in gew hlten Abst nden auf den Koordinatenachsen Gitterlinien parallel zur jeweils anderen Achse zieht Dieses Verfahren eignet sich eigentlich nur f r sowieso schon auf Rechteckgittern vorgegebene Samplewerte da sonst entweder der Aufwand zur Interpolation der Samplewerte oder aber die Anzahl der Gitterlinien extrem zunimmt F r Dreiecksnetze sieht das Verfahren etwas komplizierter aus daf r hat man den Vorteil da sie f r beliebig verstreute Daten effizient erstellt werden k nnen Denn aus jeder beliebigen Punktmenge l t sich in O n log n Zeit im ebenen Fall ein Drei ecksnetz erstellen Ein
343. rd zun chst zwischen VisionEdges VisionTris und VisionQuads unterschieden Dies ist n tig weil die Kanten der Polygone f r die sp tere Visualisierung in der richtigen Reihenfolge erstellt werden m ssen Abh ngig von den skalaren Werten die danach auf einem bestimmten Knoten berechnet wur den wird diesem ein bestimmter Farbwert zugeteilt Die Zuordnung dieses Farbwertes erfolgt ber das Legendenmodul des CONTROL Pakets ner are Cre dus saaaud nis Abbildung 3 6 Beispiel f r einen Shaded Plot 98 KAPITEL 3 SYSTEMBESCHREIBUNG Particle Tracing Mapper Dieser Mapper stellt die M glichkeit zur Verf gung die Bewegung virtueller Teilchen Parti kel in einem Vektorfeld zu berechnen und darzustellen s auch S 44 Das Particle Tracing basiert auf folgendem Algorithmus vgl dazu Kap 2 4 4 1 Ermittlung der aktuellen Position p t des Teilchens zum Zeitpunkt t 2 Interpolation zwischen Gitterpunkten um den Geschwindigkeitsvektor an der Stelle p t zu bekommen 3 Integration der Gleichung um p t 1 zu bekommen wobei das Vektorfeld V p t t einen Vektor in Abh ngigkeit eines Punktes IR und des Zeitschritts t liefert Zellsuche Um den Wert eines Partikels ermitteln zu k nnen mu das Element gefunden werden in wel chem sich das Partikel befindet Jedes Element der VisionDomain VisionHexa VisionTetra VisionQuad VisionTri bietet daher die Methode public boolean isInElement Po
344. rden die intensiv miteinander kommunizieren d rfen Auf Clustern die eventuell nur ber Ethernet verbunden sind im Extremfall nur ber eine Modem Verbindung wie dies beim ubiquitous computing beispielsweise beim SETI Programm der NASA der Fall ist m ssen die Algorithmen grunds tzlich anders entworfen werden so da die einzelnen Knoten unabh ngig voneinander arbeiten k nnen Auch die Ausnutzung maschinenabh ngiger Gegebenheiten wie der Cachegr e kann enorme Geschwindigkeitsgewinne oder einbu en nach sich ziehen Da die Transfergeschwindigkeit zwischen Cache und RAM um ganze Gr enordnungen differiert und da ein komplettes Gitter nie in den Cache pa t kann schon eine nderung der Element und Knotennummerierungen gewaltige Laufzeitunterschiede nach sich ziehen Feste Regeln gibt es hier allerdings nicht 2 4 Wissenschaftliche Visualisierung von Simulationsdaten 2 4 1 Die Visualisierungspipeline Die Visualisierungspipeline beschreibt den Proze Daten bzw Informationen in Bilder um zuwandeln bzw zu kodieren Dazu werden folgende Stufen durchlaufen Als erstes wird eine Datentransformation engl filtering vorgenommen in der die Ausgangsdaten oder Rohdaten aufbereitet werden z B k nnen die Daten durch Schwellwertoperationen Interpolation oder 2 4 WISSENSCHAFTLICHE VISUALISIERUNG VON SIMULATIONSDATEN 37 Rundung reduziert vervollst ndigt oder konvertiert werden Anschlie end werden die aufbe reiteten Date
345. rekt in die Quelltexte umge setzt Dies hat den Vorteil da die nderungen an den Modellen direkt an den Quelltexten verfolgt werden k nnen und umgekehrt Zu den bedeutendsten Nachteilen z hlt der hohe Ver brauch an Rechenressourcen von Together Together bietet die komfortable Erstellung von Sequenz use case Klassen und vielen weiteren Diagrammen und generiert automatisch Coderahmen 2 6 4 FEATFLOW und FEAST FEATFLOW ist ein Programmpaket zur numerischen Str mungssimulation konkret zur Be rechnung der inkompressiblen Navier Stokes Gleichungen s Kap 2 2 in 2D und 3D FEAT FLOW setzt auf die Basisbibliotheken FEAT2D und FEAT 3D auf Diese bieten effiziente Im plementierungen f r viele Unterprobleme die typischerweise in der numerischen Str mungs simulation auftreten wie z B Matrixaufbau L ser etc FEATFLOW ist komplett im Quell text frei verf gbar unter http www featflow de und wird st ndig weiterentwickelt FEATFLOW ist im Vergleich zu kommerziellen Codes in einigen Bereichen bis zu einem Faktor 100 schneller in der Berechnung und kann durch seine Fortran77 Implementierung auf vielen Supercomputern eingesetzt werden Es erfordert jedoch eine sehr lange Einarbeitungszeit da ein Arbeitszyklus immer die Editierung vieler Parameterdateien und die Neukompilierung er fordert FEAST ist das Nachfolgepaket der Bibliotheken FEATxD und zeichnet sich durch eine inh rente Parallelisierung aus Alle Pakete wurden von
346. ren Fg O S Nodes hinzuf gen 1 lo Edges hinzuf gen 2 O Tris hinzuf gen 3 8 a Quads hinzuf gen 4 ee ey O SS cubicles hinzuf gen GD 4 O 2 Spheres hinzuf gen GD 5 f O ment Cylinders hinzuf gen GD Y Abbildung A 31 Das Bearbeiten Men gesetzte Richtung schiebt also z B wenn man wissen will was sich oberhalb des Fensters befindet schiebt man die Maus nach unten Gleich darauf folgt der Men eintrag Ausw hlen Damit kann man diverse Objekte ausw hlen um auf der gesamten Auswahl eine Aufgabe durchzuf hren Dabei gibt es implizit zwei Modi die Boxauswahl und die Einzelauswahl die auch kombiniert werden k nnen und sollen Die Boxauswahl ist am einfachsten und schnellsten durchzuf hren man h lt die linke Maustaste gedr ckt und zieht ein Rechteck um die Fl che in der sich die zu markierende Objekte be finden Wenn man die Maustaste losl t werden die Knoten der ausgew hlten Objekte anders gef rbt als vorher Das bedeutet da diese selektiert sind Dabei k nnen unerw nschte Objekte in die Auswahl aufgenommen werden bzw erw nschte nicht erfastt werden Daf r gibt es die Einzelauswahl Um zus tzliche Objekte auszuw hlen dr ckt man die CTRI Taste und klickt Auf manchen Tastaturen ist das die St rg Taste oder auch die Cont ro1 Taste Im folgenden wird immer die CTRL Bezeichnung verwendet 138 ANHANG A BENUTZERHANDBUCH direkt auf die entsprechenden Objekte die zus tzlich
347. rf gung stehenden Modulen zur ck aus denen das gew nschte Modul ausgew hlt werden kann Nach Start des Moduls kann nun jederzeit zu dem ausgew hlten Modul Verbindung auf genommen und diese auch wieder unterbrochen werden Bevor das Modul jedoch rechnet mu es zuerst konfiguriert werden Da die Konfigura tionsbeschreibung komplett vom Modul vorgegeben wird wird in CONTROL dynamisch eine Benutzeroberfl che f r die Konfigurationsm glichkeiten erzeugt Die Konfigura tion erfolgt in drei Schritten zuerst wird ein Problem aus einer Liste von Problemen ausgew hlt die das Modul zur Verf gung stellt f r das ausgew hlte Problem wird eine Parameterliste angefordert die konfiguriert werden kann und zum Schlu erfolgt eine allgemeine Konfiguration des Moduls ber eine Konfigurationsliste Nach erfolgreicher Konfiguration steht eine Kassettenrekorderfunktion Start Stop Pau se Rewind Forward zur Verf gung und mittels Start kann das Modul zum Lau fen gebracht werden Inwieweit der Rest der Kassettenrekorderfunktion genutzt werden kann h ngt jeweils vom ausgew hlten Modul ab Rewind und Forward von Zeitschritten stehen in der Regel nur bei einem Numerikmodul zur Verf gung Falls ein Modul den Pause Modus unterst tzt z B Numerikmodule kann es auch im laufenden Zustand neu konfiguriert werden wobei jedoch in der dynamischen GUI auch nicht rekonfigurierba re Parameter geben kann d h deren Werte k nnen zwar eingese
348. rgibt den Dateneingangsstrom derselben Socket an die entsprechende fromProtocol Methode Diese blockiert bis sie die erste Zeile des Header Protokollblocks empf ngt und liest den vollst ndigen Block aus Der Kontrollflu geht zur ck an den ControlWrapper sobald das spezielle Stop Wort End_Header gelesen wurde Danach k nnen diese Informationen ausgewertet und beispielsweise eine Fehlermel dung generiert werden wenn der bermittelte Projektkennzeichner nicht mit dem erwarteten Projektkennzeichner bereinstimmt Danach wird ein leeres Objekt vom Typ ParameterList instantiiert und dessen Parser Methode aufgerufen Diese Methode iteriert ber die vorgefun denen Abschnitte die jeweils einen Parameter beschreiben und ruft je nach gelesenem Typ die entsprechende Methode einer der Erweiterungen der Parameter Klasse auf so zum Beispiel ScalarParameter fromProtocol oder SelectionParameter fromProtocol Treten im Daten strom keine Parameterbeschreibungen mehr auf so geht die Kontrolle zur ck an den Control Wrapper der die Protokollsequenz durch analogen Aufruf der Footer fromProtocol Methode beendet Dieser Kontrollflu beinhaltet auch gleichzeitig eine einfache Fehlerkontrolle Jede Klasse die das Interface Parsable implementiert Kennt ihre quivalente Repr sentation als Protokoll sequenz und sobald eine Protokollzeile auftritt die im Zusammenhang der gerade erwarteten Protokollsequenz keinen Sinn ergibt Kann die entsprechende Inter
349. rikmodul ein Zeitschritt zur ck gegangen werden Pause Falls dies unterstiitzt wird pausiert z B bei einem Numerikmodul die Berechnung und das Modul kann rekonfiguriert werden Gehe Falls dies unterst tzt wird Kann z B f r ein Numerikmodul angegeben werden bis zu welchem Zeitschritt gerechnet werden soll Verbindung ber die Buttons Connect und Disconnect kann nun jeder Zeit die Verbindung zu einem gestarteten Modul abgebrochen und zu einem sp teren Zeitpunkt wieder aufgenommen werden Statistik Uber den Button Statistik kann zu jeder Zeit das Statistikmodul aktiviert werden falls das jeweilige Modul die Wiedergabe von Statistiken unterst tzt blicherweise Numerikmodu le und bereits statistische Daten zur Darstellung zur Verf gung stehen Man gelangt ber den Button zun chst in das Konfigurationsfenster des Statistikmoduls Im angezeigten Dialog k n nen beliebig viele Statistikdiagramme aus den ankommenden Daten generiert werden es k n nen so auch mehrere Datengruppen in einem Diagramm dargestellt werden z B f r Vergleichs zwecke Im oberen Teil des Konfigurationsdialoges kann durch die Buttons Hinzuf gen und Entfernen jeweils ein weiteres Diagramm hinzugef gt bzw das aktuell markierte entfernt werden Die Buttons Nach oben und Nach unten verschieben das aktuell markierte Diagramm um jeweils eine Position nach oben oder unten um die M glichkeit zu schaffen d
350. rn Wissenschaftliches Rechnen nimmt somit einen Platz im Grenzgebiet zwischen praktischer Informatik und angewandter Mathematik ein Auf der anderen Seite wird mit dem Begriff des wissenschaftlichen Rechnens auch die konkrete Durchf hrung von Simulationen von Seiten der Anwender bezeichnet 32 KAPITEL 2 GRUNDLAGEN 2 3 1 Hocheffiziente Implementierung Die oben angesprochene Diskretisierung der partiellen Differentialgleichungen mit Finiten Ele menten schafft viele Probleme Aus Gr nden der numerischen Stabilit t und der geforderten Genauigkeit m ssen hochaufl sende Verfahren verwendet werden das bedeutet es wird mit ei nem sehr feinen Ortsgitter und nahe bei Null liegenden Zeitschrittweiten gerechnet Als Konse quenz sind Problemgr en von einer Million und mehr Unbekannten keine Seltenheit Direkte Verfahren scheiden also wegen ihres kubischen Laufzeitverhaltens aus Auf handels blichen PCs resultieren selbst hocheffiziente L sungsstrategien wie das CG Ver fahren s Kap 2 2 5 in unzumutbar langen Berechnungszeiten Ein Ausweg ist die Portierung auf andere Rechnerarchitekturen die so genannten Supercomputer Zwei verschiedene Modelle lassen sich voneinander trennen e Vektorrechner arbeiten nicht auf skalaren Variablen sondern k nnen Befehle direkt auf einen ganzen Vektor komponentenweise anwenden Klar ist bei allen komponenten weise definierten Vektoroperationen wie der Addition ist diese Architektur wesentl
351. ro grammdurchlaufs Anstelle konventioneller System out print1n Aufrufe tritt hier die automatische Generierung von Logfiles Log4J ist kostenlos unter http jakarta apache org log4j docs index html erh ltlich 2 6 2 C und Fortran GCC 3 2 Der Serverproze NEXUS wurde in der Programmiersprache ANSI C implementiert Zur kor rekten bersetzung ist der GNU C Compiler GCC in der Version 3 2 oder h her n tig Er bietet auch sinnvolle Optimierungsoptionen sowie eine Uberpriifung der Arrayzugriffe und steht fiir nahezu alle Architekturen und Betriebssysteme zur Verfiigung Fortran 77 Fortran 90 FEATFLOW steht im Quelltext in Fortran 77 zur Verf gung FEAST in Fortran 90 Zur berset zung sind Fortran Compiler f r diese Dialekte n tig so beispielsweise die in der Gnu Compiler Suite GCC enthaltenen Programme 77 und 90 2 6 3 Entwicklungswerkzeuge CVS 1 11 2 CVS concurrent versions system ist ein weitverbreitetes frei verf gbares Programm zur Ver waltung eines Softwarepakets durch mehrere Entwickler CVS kann alle textbasierten Datei formate verwalten CVS verwendet dazu eine zentrale Datenbank das sogenannte repository Quelltexte werden nie direkt in der Datenbank editiert sondern immer auf einer lokalen Ko pie Fertige Dateien werden dann in die Datenbank zuriicktransferiert commit Hierbei ver gleicht CVS die neue Version mit der bereits in der Datenbank vorhandenen und versucht die Anderungen
352. rotokolls Das Netzwerkprotokoll spezifiziert das was konkret ber das Netz verschickt wird Es sind wie oben spezifiziert ist Zeichenketten die hierarchisch aufgebaut sind 260 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN Das Protokoll ist stets gleichartig aufgebaut Zuerst kommt der Header Codebeispiel 97 Danach folgt der eigentliche Protokollblock der entweder einen Protokoll oder einen Daten block Kap 97 enth lt Wenn allerdings Fehler an einem beliebigen Teil der Kommunikation auftreten dann besteht der Protokollblock aus einer ListOfErrors Codebeispiel 99 die die aufgetretenen Fehler auflistet Diese Liste wird aber auch benutzt um Statusmeldungen innerhalb eines Kommandos zu bertragen Zum Schlu kommt noch der Footer Codebeispiel 98 der das Ende der Kommunikations sequenz einleitet und einige Statusmeldungen enth lt Die Kommandos treten stets paarweise auf ein Kommando und deren Anwort Kap 13 2 1 Sie k nnen eine ParameterListe enthalten in der die Parameter Kap D 3 2 des Be fehls enthalten sind F r alle Parameter kann eine GUI Beschreibung Kap D 3 2 an der daf r vorgesehenen Stelle in der Parameter Protokoll Sequenz definiert werden Manche Parametertypen d rfen nur spezielle Identifikationsnummern IDs enthalten Diese werden im Kap D 3 2 festgelegt Das gesamte Protokoll ist zeilenbasiert Das bedeutet da pro Zeile nur eine enweisung ei
353. rs reputations Finally any free program is threatened constantly by software patents We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses in effect making the program proprietary To prevent this we have made it clear that any patent must be licensed for everyone s free use or not licensed at all The precise terms and conditions for copying distribution and modification follow TERMS AND CONDITIONS FOR COPYING DISTRIBUTION AND MODIFICATION 0 This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public Li cense The Program below refers to any such program or work and a work based on the Program means either the Program or any derivative work under copyright law that is to say a work containing the Program or a portion of it either verbatim or with mo difications and or translated into another language Hereinafter translation is included without limitation in the term modification Each licensee is addressed as you Activities other than copying distribution and modification are not covered by this Li cense they are outside its scope The act of running the Program is not restricted and the output from the Program is covered only if its contents constitute a work based on the Program independent of having been made by running the Prog
354. rtesi schen Gittern wesentlich einfacher zu implementieren sind als auf beliebig krummberandeten Gittern Als Erweiterung von 6 wird in der Projektgruppe eine Mischform bzw mehrstufi ge Klassifikation verwendet Die prim re Unterscheidung erfolgt nach den Dimensionen von Definitions und L sungsraum Nur bei Bedarf wird eine Klasse weiter eingeteilt gem der Gittergeometrie Etwas konkreter werden zum einen Punktwolken zum andern die Funktio nenklassen R R R R R R R R R R3 R R unterschieden 38 KAPITEL 2 GRUNDLAGEN dim dim Punktwolke skalar 2D vektoriell 3D vektoriell Liniendiagramm 1D 1D Scatter Plot Tortendiagramm Histogramm Isolinien Pfeilplots Schattierte Plots Str mungslinien 2D Bilder Partikelverfolgung Pfeilplots 2D Scatter Plot Gitternetze Pfadverfolgung Schattierte Fl chen LIC H henfelder Diffusionsmodelle Schnittfl chen Pfeilplots 3D Isofl chen Str mungslinien 3D Scatter Plot Voxelmodelle Partikelverfolgung Pfadverfolgung Die Bereiche zwei und dreidimensionaler skalarer und vektorieller Daten k nnen aus algorith mischer Sicht s o jetzt noch nach Gittertypen aufgespalten werden 2 4 3 Techniken f r skalare Daten Alle in diesem Abschnitt betrachteten Funktionen bilden in die reellen Zahlen ab Techniken f r Scatter Plots Punkt bzw Streudiagramme engl scatter plots sind die einfachst
355. rticles start line of particles start line of particles start la le MIN ACT Max Einstellungen JA ok X Abbrec Abbildung A 60 Erstellen einer Partikellinie show fine grid and coarse grid show finegrid Beschreibung show fine grid in addition to goarse grid v show fine grid and coarse grid show finegrid Ax X anne Abbildung A 61 Anzeigen des Feingitters maximum scale ae Legendmasimum Beschreibung macinum value lor ihe kapanchcak Maximum scale vads Legem eaxienem o Minimale Wert 100 Maximater Wert 01 Format Dwbe Enhet Nja Am Ka Abbildung A 62 Maximalwert der Legende e show nodes Gibt an ob die Knoten der Domain angezeigt werden sollen e show elements Gibt an ob die Fl chen der Domain angezeigt werden sollen e variable name 165 166 ANHANG A BENUTZERHANDBUCH Gibt den Variablennamen an dessen Werte Grundlage des shaded plot werden sollen z B pressure e max value Der maximal anzeigbare Wert innerhalb der Domain Gr ere Werte werden schwarz dargestellt Dieser Parameter ist insbesondere wichtig f r die Darstellung der Legende e min value Der minimal anzeigbare Wert innerhalb der Domain Kleinere Werte werden schwarz dargestellt Dieser Parameter ist insbesondere wichtig fiir die Darstellung der Legende Sphere2DMapper Stellt skalare Werte an den Knoten zweidimensi
356. rundlage der Konfigu ration aus Abbildung 1 1 berechnet werden kann Die Str mung ist per Shaded Plot Verfahren visualisiert Erkennbar ist die Temperatur je dunkler eine Stelle desto w rmer ist sie Am An fang der Simulation ist nur die Fahrzeugkontur beheizt Der Windstrom kommt gleichm ig vom linken Rand Am Verlauf der Temperatur ist das Str mungsverhalten erkennbar Diese Suche durch Versuch und Irrtum kann zahlreiche Simulationsl ufe mit unterschiedli chen Parametern zur Folge haben die dementsprechend zeit und kostenaufwendig sind Hin zu kommt da der Datenaustausch zwischen den leistungsf higen Software Werkzeugen die heute f r die einzelnen Schritte zur Verf gung stehen wie Gittereditoren f r Schritt 1 Si mulationsprogramme f r Schritt 2 und Visualisierungssoftware f r Schritt 4 h ufig nicht eng gekoppelt ist da diese Werkzeuge unterschiedlichen Ursprung haben Ein weiteres Problem be steht darin da aufgrund der ben tigten Rechenleistung unterschiedliche Rechner zum Einsatz kommen beispielsweise gro e Parallelrechner f r die Simulation und leistungsf hige Graphik Workstations f r die Visualisierung deren Kommunikation h ufig nicht transparent ist 1 2 Einordnung des Projekts Es gibt durchaus viele Umgebungen die numerische Str mungssimulationen gewisserma en unter einem Dach anbieten Diese Systeme haben jedoch alle einen prinzipiellen Nachteil Nicht alle Komponenten entsprechen
357. rung partielle Differentialgleichungen enthalten Ableitungen nach Orts und Zeitvariablen gew hnliche nur nach einer Variablen du T R u t 0 u tn Un mit R u t Lu f L ist beim Poissonproblem s Kap 2 2 1 der Laplace Operator allgemein die linke Seite der Gleichung Die noch kontinuierliche Zeitableitung au kann nun mit dem Standard O Schema diskretisiert werden Br ORnii 1 Rn 0 Dabei ist 0 1 und f r 0 5 ergibt sich das Crank Nicolson Verfahren der Ordnung 2 Weitere Verfahren finden sich beispielsweise in 33 16 Eine Alternative dies f hrt auf Taylor Galerkin Verfahren diskretisiert zun chst in der Zeit mit einer Taylorentwicklung h herer Ordnung 3 4 und ersetzt dann diese h here Zeitablei tung durch Ortsableitungen ea N a m t o u Ot 2 Ot At Untl I Un AtLun OO Pn Jetzt werden alle verbleibenden Ortsableitungen typischerweise mit der Methode der Finiten Elemente diskretisiert Die Auswertung der vorkommenden h heren Ortsableitungen kann durch Unterteilung in mehrere Teilschritte vermieden werden Verfahren dieses Typs sind deut lich aufwendiger zeichnen sich aber durch h here erreichbare Ordnungen in der Zeit und bes sere Stabilit tseigenschaften aus 2 2 7 Anwendbarkeit von computational steering Konzepten Die Idee des computational steering s Kap 2 1 3 ist leider nicht generell auf numerische Str mungssimulation
358. rver End_Command Codebeispiel 155 ExitServer protocol command CMDREPLY 24 ExitServerReply End_ExitServerReply Codebeispiel 156 ExitServerReply protocol command CMD 25 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command AskForLocalPort ModuleID INT module id InstanceHandle INT handle End_Command Codebeispiel 157 AskForLocalPort protocol command D 3 SPEZIFIKATION DES NETZWERKPROTOKOLLS 279 CMDREPLY 25 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS AskForLocalPortReply Port INT port End_AskForLocalPortReplyReply Codebeispiel 158 AskForLocalPortReply protocol command CMD 26 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS Command GetStatus ModuleID INT module id InstanceHandle INT handle End_Command Codebeispiel 159 GetStatus protocol command CMDREPLY 26 Subtype CONTROL NUMERICS CONTROL GRID CONTROL VISION CONTROL GID CONTROL METIS GetStatusReply Status CONSTSTRING UNKNOWN STARTED CONFIGUR RUNNING FINISHED TapeRecorder CONSTSTRING PAUSE PLAY STOP CurrentTimeStep INT timestep ResultsAvailable Boolean available End_GetStatusReply zal oO Cod
359. s Glattungsverfahren e Anzahl der Glattungsschritte e Wahl der Relaxationsparameter und e Art und Weise der Gitterstufenwechsel Zyklus Hierbei sind drei Zyklen gebrauchlich V W und F Der F Zyklus folgt dem V Zyklus beim Abstieg und dem W Zyklus beim Aufstieg Level3 ____ Abbildung 2 13 Mehrgitter Zyklen Der Mehrgitteralgorithmus l t sich also folgenderma en zusammenfassen 1 Vorgl ttung 2 Berechnung des Korrekturterms durch Abstieg zum Grobgitter 3 Prolongation der L sung zum Feingitter und 4 Nachgl ttung Die Mehrgitterverfahren zeichnen sich durch einen linearen Aufwand aus und die Konvergenz raten sind im allgemeinen sehr gut Konvergenzrate 0 1 Au erdem ist die Iterationszahl unabh ngig von der Gitterweite Sie bilden sozusagen die Allzweckwaffe 30 KAPITEL 2 GRUNDLAGEN 2 2 6 Zeitschrittverfahren In komplexen Differentialgleichungen wie z B den Navier Stokes Gleichungen f r Stromungs probleme kommt der Parameter Zeit t vor w hrend die Gleichung aber auch Informationen ber den Ort liefert Das gebr uchlichste Vorgehen ist erst im Ort und dann in der Zeit zu diskretisieren Die Orts diskretisierung Kann wie oben beschrieben mit der Methode der Finiten Elemente durchge f hrt werden Einsetzen dieser semidiskreten Form in die schwache Formulierung ergibt eine gew hnliche Differentialgleichung in der Zeit wobei die bereits diskretisierte Ortsableitung als Anfangswert eingeht zur Erinne
360. s Partikel enth lt vgl getInterpolated Vector Methoden der entsprechenden devisor vision ds Klassen Integration der Differentialgleichung Die Integration der Differentialgleichung ist n tig um die neue Position eines Partikel zu er mitteln Hierf r wird das Paket devisor vision particle benutzt Nachdem der Wert eines Partikels ermittelt wurde kann nun mit Hilfe der Klasse RungeKutta die oben genannte Gleichung gel st werden Das hei t es wird die aktuelle Position und der Wert an dieser Position ben tigt Die aktuelle Position wird wie oben erw hnt in der Klasse ParticleFunction gespeichert Der aktuelle Wert wird ermittelt indem die vom aktuellen Ele ment angebotete Methode getInterpolatedVector benutzt wird Sind diese Werte vorhanden wird die Methode public void step benutzt um das Verfahren von Runge Kutta vierter Ordnung anzuwenden wodurch die neue Position ermittelt wird An die Koordinaten der neuen Position kann dann ber public final double getY zugegriffen werden Um eine Berechnung starten zu K nnen mu die Methode public final void setStart double startX double startY 102 KAPITEL 3 SYSTEMBESCHREIBUNG aufgerufen werden durch welche der Startzeitpunkt gesetzt wird sowie die Koordinaten des Partikels als Array Der Algorithmus realisiert durch den Mapper Der Mapper kann durch einen inneren Z hler feststellen ob er sich am Anfang einer Berech nung befindet oder ob schon
361. s and cells Cell data input may also be performed by consulting a remote file see the fromfile description below Vfaces The vfaces keyword indicates the beginning of polygonal face descriptions related to the vface3d or vface2d cell types The variable nfaces on this line is the number of face descriptors that follow There are nfaces descriptor lines that contain the number of vertices in the face the processor number for the face the opposite face number the processor number 254 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN for the opposite face the cell in which this face is part of and the list of node numbers of the vertices for the face Order the face vertices to generate an outward normal using the right hand rule If the face describes a vface2d face then it must contain only two vertices Vface data input may also be performed by consulting a remote file see the fromfile description below Faces The faces keyword indicates the beginning of polygonal face descriptions and their associated cells The variable nfaces on this line is the number of face descriptors that follow and the variable ncells is the number of cells in the problem There are nfaces descriptor lines that contain the number of vertices in the face the nodes that define the face the cell that is to the left of the face and the cell to the right of the face Each polygonal face can be a part of up to two cells if the face is part of only one cell a cell num
362. schen f nf verschiedenen Befehlsgruppen zu unterscheiden Die Methoden getAvailableModules getRunningModules und getInactiveModules dienen dazu unterst tzte Module bereits gestartete Modulinstanzen oder beendete aber noch nicht gel schte Instanzen vom Server anzufordern Sie erhalten als bergabepara meter den Rechnernamen und den Port des Zielmoduls sowie Benutzername und Projekt kennzeichner des Anwenders Es wird eine tempor re Verbindung auf und nach Ende der Kommunikationssequenz wieder abgebaut Die per Parameter bergebenen Informa tionen werden in jede Instanz der Klasse Module eingetragen die diese Methoden in Form einer ModuleList zur ckliefert Die Methoden startModule und connectModule starten eine Modulinstanz neu oder nehmen Verbindung zu einem bereits laufenden Modul auf Ihr Ubergabeparameter ist jeweils eine Instanz der Klasse Module die von den Methoden getAvailableModu les bzw getRunningModules oder getInactiveModules zur ckgeliefert wurden Bei de Methoden bauen eine neue Verbindung auf und starten den KeepAliveThread Die verwendete Socket und ihre Datenstr me sowie der Thread werden in die bergebene Module Instanz eingetragen Die Methoden closeModule und disconnectModule sind genau invers dazu und erhalten demzufolge eine Module Instanz Die Methode downloadResult baut basierend auf der bergebenen Module Instanz die bereits eine bestehende Verbindung kapselt eine neue parallele Verbindung auf um
363. se Einschr nkungen gegen ber der Domin die intern in GRID verwen det wird um die Daten zu halten z B lassen sich die Daten nur in einem Modus speichern also nur in 2D oder nur in 3D Das Bedeutet da wenn z B in 2D gespeichert wird die evtl in der Domain enthaltenen 3D Elemente 3D Boundaries Hexas und Tetras nicht mitgespeichert werden Umgekehrt gilt das nur f r die Boundaries da die anderen Elemente sehr wohl in 3D legale Elemente sind Zus tzlich geht beim 2D Modul die in der Domain implizit enthaltene dritte Koordinate beim Abspeichern verloren das bedeutet da sie beim erneuten Laden auf 0 gesetzt wird Zus tzlich werden Eigenschaften der Faces Tris und Quads wie Inner Ex ter Dirichlet oder Neumann nicht in 2D mitgespeichert denn dort sind diese Fl chen schon vollst ndige Macro Objekte Auch beim Importieren gibt es einiges zu beachten Die obj Dateien werden in eine Boun dary Triangulation umgewandelt und auf dem Bildschirm dargestellt wobei die Koordinaten der einzelnen Punkte nicht ver ndert werden Daraus resultiert da wenn ein Punkt der schon vorhandenen Domain und ein Punkt des neuen Objektes die gleichen Koordinaten bzgl des eingestellten Epsilon Wertes s o haben sie als ein Punkt behandelt werden Das bedeutet da kein neuer Punkt erzeugt wird sondern der alte Punkt bekommt zus tzlich die Verweise auf die neuen Triangles Ein Beispiel Es wurde eine Kante mit den Punkten 1 und 2 eingef gt Der
364. seManipulator attached Adding transformation and own BranchGroup to new Branchgroup Object BranchGroup rootBranchGroup new BranchGroup TransformGroup sceneTransform new TransformGroup myMouseConfig getTransform sceneTransform addChild myBranchGroup rootBranchGroup addChild sceneTransform myBranchGroup rootBranchGroup Create a light and add it addLight myBranchGroup compile myLogger debug BranchGroup compiled mySimpleUniverse addBranchGraph myBranchGroup Codebeispiel 18 Die setBranchGroup Methode einer Renderer Klasse B 1 EINBAU WEITERER VISUALISIERUNGSTECHNIKEN IN DAS VISION MODUL181 Configurables xml Die Eintr ge in der Datei Configurables xml im Paket devisor vision util wurden bereits in Kap B 1 1 ausf hrlich beschrieben Die dort f r Filter beschriebenen Techniken k nnen direkt auf Mapper bertragen werden Die Internationalisierung Die Eintr ge in der Datei FindConfigurablesi18n properties im Paket devisor vision util wurde bereits in Kap B 1 1 ausf hrlich beschrieben Die dort f r Filter beschriebenen Techni ken k nnen direkt auf Mapper bertragen werden Abschlie ende Arbeiten Die angef hrten Methoden geh ren in das Ger st das bereits im ersten Schritt erstellt wurde public class SimpleRenderer extends AbstractRenderer public SimpleRenderer super public Paramete
365. sen VisionWrapper und VisionCommunicationThread realisiert Letztere unter scheidet sich nur unwesentlich von ihrem GRID Pendant Die Klasse VisionWrapper stellt jedoch eine wichtige Methode zur Verf gung getTimeStepData Diese Methode bekommt eine Instanz von DataSourceParameter bergeben sowie den Zeitschritt zu dem Rohdaten transferiert werden sollen Mit den Informationen aus dem Parameter wird Kontakt zu dem dort bezeichneten Numerikserver aufgenommen und ein zeitschrittabh ngiger Datensatz trans feriert der dann lokal zwischengespeichert wird so da das VISION Modul ihn als Datenquelle verwenden kann 3 3 Das Modul NEXUS Der Server stellt die Verbindung zwischen den einzelnen Modulen her und sorgt f r die Modul konfiguration und steuerung Er bindet sich an einen festgelegten Port und erzeugt bei einem Verbindungseingang einen lokalen Serverproze so da f r jede laufende Modulinstanz ein exklusiver Kommunikationskanal zur Verf gung steht Die Module binden sich beim Start an einen eigenen lokalen Port und warten auf Befehle F r jeden Befehl wird eine eigene Verbindung auf und wieder abgebaut Dies hat den Vorteil da mehrere CONTROL Module von verschiedenen Stellen auf dasselbe Modul zugreifen k nnen Das Lauschen am Port ist nicht blockierend so da die Module im Hintergrund weiterlaufen k nnen Rechnung ber Nacht Der Server kennt zwei Arten von Modulen legacy und nonlegacy Module Die legacy Module sind exist
366. sich Klassen die dazu dienen das Gitter zu visualisieren Das Paket Foundation Ein Gitter enth lt drei unterschiedliche Typen von Objekten e Boundaries beschreiben den Rechenbereich In einer Str mungssimulation Kann dies z B ein Kanal oder der Bereich au erhalb der Karosserie eines Autos sein Die Da tenstrukturen des Frameworks erlauben es zweidimensionale Boundaries durch Kreise Linien und Kombinationen dieser beiden und dreidimensionale Boundaries durch Ku geln Quader und Dreiecksnetze darzustellen Die Datenstrukturen die dies leisten sind BoundaryCircle BoundarySegmentList im zweidimensionalen und BoundarySphere BoundaryCubicle und BoundaryTriangu lation im dreidimensionalen Fall e Finite Elemente beschreiben die kleinsten Recheneinheiten Dies k nnen in der Ebene Dreiecke oder Vierecke Tris oder Quads sein und im Raum Tetraeder oder Hexaeder Tetras oder Hexas e Desweiteren gibt es die sogenannten Basisobjekte aus denen sich die Boundaries und die Finiten Elemente zusammensetzen Dadurch ist es m glich die Nachbarschaftsbe ziehungen zwischen den Objekten ebenfalls in der Datenstruktur festzuhalten Jedes Gitter Objekt egal ob Boundary Finites Element oder Basisobjekt enth lt eine Liste seiner Eltern In dieser Liste stehen die Objekte die das Objekt in dessen Liste sie stehen be nutzen Eine Kante steht beispielsweise in der Elternliste ihres Start und Endknotens Stehen 80 KAPITEL 3 SYSTE
367. sie beziehen sich immer auf alle Nachfolgeknoten Ist ein Szenengraph einmal aufgebaut erfordert seine Darstellung eine Breiten oder Tiefensu che durch den Graphen Treten auf einem Pfad zu einem Geometrieobjekt mehrere Transfor mationsknoten auf so mu am zweiten Knoten die Transformation nur noch relativ zur ersten durchgef hrt werden usw Wenn zwei Objekte nicht durch einen gerichteten Pfad verbunden sind so erfordert die nderung eines Objekts keine nderungen bei einem anderen 2 1 3 Konzepte des computational steering Computational steering kann man als interaktive Kontrolle eines in der Ausf hrung befind lichen Rechenprozesses verstehen W hrend eines interaktiven Rechenprozesses werden Se quenzen von Spezifikationen Berechnungen und Analysen durchgef hrt F r jede Anpassung des Berechnungsmodells mu dieser Proze wiederholt werden Computational steering schlie t diesen Kreis indem einem Anwender erm glicht wird auf Resultate zu reagieren 12 KAPITEL 2 GRUNDLAGEN c e Groups El children B lt gt Shape H appearance Appearance 3 material El Material cof diffuseColor fa geometry E s Cone 0 bottomRadius MM height Shape of appearance Ei Appearance AB material El Material cof diffuseColor B geometry i Sphere MM radius Abbildung 2 3 Beispiel f r einen Szenengraphen wenn sie aktuell vorliegen indem er interaktiv die Eingabeparameter manipulieren kann Com putati
368. snahme bildet Bei ihm ist keine Konfigu ration sondern nur die Auswahl der Parameter m glich e JDataSourcePanel f r einen DataSourceParameter Hier kann von einem gew hlten Numerikmodul ein Ergebnis ausgew hlt und konfiguriert werden In dem Dialog JSe lectTimeStepsDialog ist es m glich f r ein gew hltes Ergebnis ein Datenfeld und Zeit schritte auszuw hlen 3 4 DAS MODUL CONTROL 77 Aus diesen Panels setzt sich nun modular jeweils das Panel eines Knotens zusammen Die Klassen ParamTreeNode und JDynamicGuiPanel besitzen jeweils die Methoden validInput und setAllParameters Bei validInput wird hier true zur ckgegeben wenn die Eingaben f r ein Knotenpanel oder f r eine Parameterliste zul ssig sind Bei setAllParameters werden alle Parameter f r ein Knotenpanel oder f r eine Parameterliste gesetzt Solange die Eingabe f r das Panel des ausgew hlten Knotens unzul ssig ist Kann kein anderer Knoten gew hlt werden bzw in der Konfiguration einen Schritt weiter oder zur ck gegangen werden 3 4 8 Das Paket event Im event Paket liegen die Klassen der benutzten Events und die entsprechenden Listener Als erstes ServerChangedEvent und ServerListChangedEvent welche im Falle einer Ver n derung eines Wertes eines Servers bzw der Serverliste an alle ServerChangedListener bzw alle ServerListChangedListener geliefert werden Zum anderen CloseTabEvent der von den JCloseableTabbedPanes an die CloseTabListener gefeuert wird wenn sie g
369. spiel 29 B 2 TUTORIAL ZUR INTEGRATION EINES NEUEN MODULS IN DAS SYSTEM private int public class ExampleModul reference to the wrapper itself set via constructor private ExampleWrapper wrapper module capabilities private ModuleCapabilities mc module status update private ModuleStatus ms initial value set vi initialValue delay val private int increment value set private int incrementValue lue set via delayValue flag for private bool results set implements Wrappable set via constructor d by various methods a setCompleteConfiguration i via setCompleteConfiguration setCompleteConfiguration via setCompleteConfiguration flag for an generat statistics s private bool an generat ResultList created by private ResultList resul vector of timesteps b filled by inner class private Vector available reference to inner cl private Incrementor incr Results et via setCompleteConfiguration Statistics setCommand tList uffering the result list TimeSteps ass itself ementor the constructor just performs basic initialisations this mc this ms false public ExampleModule Ex this wrapper wrapp ExampleMC wrapper getl new Module ampleWrapper wrapper er createMC nterimBundle Status ModuleStatus ST
370. sult_size NULL bspresultl next NULL strcpy bspresultl resultmask result auslenkung gmv Codebeispiel 41 Ergebnisdefinition Die Parameter die ein Problem definieren werden in einer separaten Datei gespeichert Die Parameterdatei wird durch einen Aufruf der Funktion load_parameter_file eingelesen und damit der Problemdefinition hinzugef gt s Codebeispiel 42 modules mc prb 0 param tpara malloc sizeof tpara load_parameter_file modules mc prb 0 param modules module_featpoisson test2 param Codebeispiel 42 Einlesen der Parameter 198 ANHANG B ERWEITERUNGSM GLICHKEITEN Codebeispiel 43 zeigt eine Parameterdatei f r das FeatPoisson Problem Das erste Schl sselwort beschreibt den Typ des Parameters ScalarParameter GridParameter FunctionParameter SelectionParameter oder NodeParameter Dann folgen Indexnummer Pa rametername Kurzname und Angabe der Rekonfigurierbarkeit F r SelectionParameter folgen Minimalauswahl Maximalauswahl und Anzahl der folgenden Subparameter f r Nodeparame ter nur die Anzahl der folgenden Subparameter F r alle Parametertypen folgt anschlie end die Beschreibung die durch die Zeichenfolge beendet wird Die weiteren Eintr ge h n gen vom Typ ab Bei Node und Selectionparametern folgen die Subparameter Scalarpara meter werden durch Typ Integer oder Double minimaler erlaubter Wert maximal erlaubter Wert Defa
371. szublenden In Aufsicht Vorderansicht und Seitenansicht werden lediglich die Boundaries angezeigt die in diesem Dialogfenster mit ei nem H kchen versehen sind Es lassen sich beliebig viele dieser Dialogfenster ffnen auf diese Weise kann ber Anwenden zwischen den unterschiedlichen Einstellungen der verschiedenen Dialoge gewechselt werden Der Men punkt Optionen Optionen Fenster 2 Domain Einstellungen Strg D Farbeinstellungen Farbtransparenz Abbildung A 43 Das Options Men Unter Optionen lassen sich etliche Einstellungen nach pers nlichem Bedarf einstellen Domain Einstellungen erm glichen allgemeine Einstellungen wie den Gitterabstand ob No des Edges Boundaries oder Finite Elemente Quads Tris Hexas Tetras oder deren Num mern gezeichnet werden sollen oder ob Maus Snapping benutzt werden soll Maus Snapping beschreibt die Toleranz einer Mauseingabe Voreingestellt ist der Wert 10 Das bedeutet da f r die Maus zwei Punkte die im Abstand von weniger als zehn Punkten voneinander liegen als ein Punkt behandelt werden das bedeutet da insbesondere bei der Eingabe von Kanten ein m glicherweise in der n he liegender Punkt als der ausgew hlte Punkt erkannt wird Um das zu verhindern dr ckt man bei der Eingabe die SHIFT Taste Man kann in diesem Men Mouse Snapping komplett ausschalten oder f r jedes Arbeitsfenster einzeln den Wert setzen Zus tzlich hat man die M glichkeit den Epsilon Wert der Dom
372. t Die zweite M glichkeit ist die schnelle interne Bus Verbindung der Knoten Allen diesen Architekturen ist gemeinsam da die Portierung von Programmen f r PCs in der Regel nicht automatisch durch Compiler geschehen kann Die Programmierung der Maschi nentypen unterscheidet sich zu stark voneinander 2 3 WISSENSCHAFTLICHES RECHNEN 33 2 3 2 Ein Beispiel f r Algorithmen auf Vektorrechnern Bei Vektormaschinen m ssen die vorkommenden Operationen vektorisiert werden Anhand eines Beispiels die sogenannte zyklische Reduktion soll hier verdeutlicht werden wie aufwendig dies ist Die Details sind 33 und einer unver ffentlichten Seminararbeit eines Teil nehmers der Projektgruppe entnommen Die zyklische Reduktion ist eine spezielle Implementierung des Thomas Algorithmus eine Modifikation des Gau Algorithmus s Kap 2 2 5 f r die L sung tridiagonaler Gleichungs systeme auf Vektorrechnern Gegeben sei das trilineare System ay by 0 Basis ayia 0 Ly d C2 a2 ba U ta Gg lt p rm le 2 8 0 bn 0 ae Pro 0 Cn An Ln dn A x d Sein 2mundi N gerade mit 1 lt 7 lt n Betrachtet werden die folgenden drei benach barten Gleichungen aus Gleichung 2 8 Bas ae 5 di 0 EG aixi sa di 0 Citi an Be diy gt Durch Addition des c a _1 fachen der ersten zur mittleren Gleichung und durch Addition des b a 1 fachen der dritten zur m
373. t die Art in der die Werte dargestellt werden Einstellbar sind Visualisierung durch a Dicke der Pfeile b L nge der Pfeile und c Farbe der Pfeile Maximum Arrow Length Legt die maximale L nge der Pfeile im erzeugten Scene Graphen fest Arrowlength Legt die konstante L nge der Pfeile bei ausgew hlter Visualisierungsmethode Visuali sierung durch Farbe fest 162 ANHANG A BENUTZERHANDBUCH e Arrowwidth Legt die konstante Dicke der Pfeile fest e Arrowcolor Legt die konstante Farbe der Pfeile bei ausgew hlter Visualisierungsmethode Visuali sierung durch L nge Dicke fest e MaxColorValue Bestimmt die obere Schranke des Farbraums auf der verwendeten Legende e MinColor Value Bestimmt die untere Schranke des Farbraums auf der verwendeten Legende DomainFineGridMapper Arbeitet wie der DomainMapper mit der Erweiterung der Visua lisierung der verfeinerten Zellen Als Parameter erforderlich ist zus tzlich ein Vektor mit den Indizes der Zellen welche verfeinert werden sollen DomainMapper Der DomainMapper stellt eine M glichkeit zur Visualisierung eines Gitters in 3D dar e QuadColor Gibt an in welcher Farbe die Kanten deren Parent Element ein Quad ist gezeichnet werden sollen Einstellbar ist diese Farbe als Kombination aus Rot Gr n und Blau Wert im Bereich von 0 bis 255 e HexColor Gibt an in welcher Farbe die Kanten deren Parent Element ein Hex ist gezeichnet wer den sollen Einstellbar ist diese
374. t direkt angesprochen werden oder wenn man ber die komplette Liste geht dann gibt man als Parameter eine Dezimalzahl bei der die Stellen vor dem Komma die Segmentnummer innerhalb der Liste bezeichnen und die Stellen nach dem Komma die eigentliche Position auf diesem Segment BoundaryNodes3D Diese Knoten werden relativ zu einem 3D Boundary Objekt ge setzt Cubicle Cylinder Sphere und Triangulation Sie haben zus tzlich zu den norma len Knoteneigenschaften noch zwei Winkel Parameter alpha und beta und die Num mer des zugeordneten Boundary Objekt Die Positionierung geht intern folgenderma en vor Mit reelwertigen Koordinaten sind nat rlich Werte vom Java Typ double gemeint Die genaue Beschreibung dieses Typs liefert 41 150 ANHANG A BENUTZERHANDBUCH 1 Das Programm erstellt eine Kugel die den Mittelpunkt in der Mitte des Boundary Objekts hat und genau die Boundary beinhaltet 2 Auf dieser Kugel wird mit Hilfe der zwei als Winkel bergebenen Parameter eine Position bez glich des Punktes auf der Kugel auf 3 Uhr auf einer zur z Achse senkrechten Ebene die durch den Kugelmittelpunkt geht bestimmt 3 Ein Strahl wird durch den Kugelmittelpunkt und dem berechneten Punkt auf der Kugel gezogen 4 Ein Schnittpunkt mit dem Boundary Objekt ist dann der gesuchte Punkt Edge Kanten Die Kanten werden durch zwei Knoten repr sentiert Sie sind in Grid gerich tet und haben einen Start und einen Endknote
375. t werden soll Im ersten Schritt fordert das VISION Modul die zu visualisierenden Daten vom Numerikmodul an Dies erledigt die angepa te H llklasse aus dem Modul NET Sind die Daten vorhanden so werden sie in die interne Pipeline aus Filtern Mappern und dem Renderer eingespeist und das Modul generiert den aktuellen Schnappschu Ist der Anwender mit dem Ergebnis und der Analyse beispielsweise der Konvergenzrate anhand der Statistikdaten zufrieden wird er keine nderungen vornehmen wollen Andernfalls kann er einige der Parameter neu konfigurieren die Berechnung um einige Zeitschritte zur cksetzen und mit den neu belegten Parametern kor rigiert durchf hren Allerdings ist hierbei zu beachten da die Neubelegung der Parameter analog zu den Kassettenrekorderfunktionen explizit vom Modul unterst tzt werden mu Beim Membranproblem ist dies bei einigen Parametern der Fall Zu bemerken ist da es selbstverst ndlich m glich ist die Verfolgung der Berechnung von beliebigen anderen Computern vorzunehmen Auch ist es jederzeit m glich die Verbindung zu laufenden Modulen zu trennen ohne diese pausieren oder gar beenden zu m ssen Die prakti sche Relevanz dieser Funktionalit t ist offensichtlich Postprocessing Nach Ende der Berechnung beginnt das Postprocessing Im betrachteten Fall wird der Anwender typischerweise eine Animation der gerechneten Zeitschritte vom VISION Modul erstellen lassen Die dazu notwendige Konfiguration geschi
376. tain GMV keywords and their data can be read in from a different GMV input file These keywords are nodes cells faces material flags polygons nodeids cellids and faceids The format for all the keywords is similar to the following nodes fromfile filename This syntax is used within the scope of the current GMV file to instruct GMV that keyword data is located in a fromfile specified by filename Filename is a user supplied character string that must be enclosed by double quotes The use of this keyword form specifies that the fromfile will contain the pertinent data in the same format and context as would be used in the main GMV file the fromfile must be a valid GMV format file When GMV encounters this keyword form main file processing stops and the fromfile is opened and searched for the applicable data Once the data is input the fromfile is closed and main GMV file processing continues Fromfiles are useful within GMV for displaying animation sequences and the production of movies In many animation sequences much of the data remains unchanged between frames for example nodes cells faces material flags and polygon data may remain constant if the problem domain and physical geometry of the problem does not change between frames Con structing distinct and complete GMV files of each frame consumes much disk space needlessly the fromfile capability allows the placement of constant data i e one or more of node cell fa
377. te Visualisierungs Pipeline in eine Unter klasse von JPanel Sie wird im Grid Editor zur dreidimensionalen Visualisierung der erstellen Objekte verwendet C 7 DAS PAKET VISION 231 C 7 5 devisor vision gui VisionViewer Diese Klasse dient zum Anzeigen des von einem Renderer erzeugten Can vas3D sowie einer erklr renden Legende auf dem Bildschirm C 7 6 devisor vision movie MovieMaker Diese Klasse dient zum Erzeugen eines Films aus den erzeugten JPEG Bildern MovieMakerGUI Diese Klasse dient dem einfachen Zugriff auf die MovieMaker Funktionalitat Wird im normalen Visualisierungs Vorgang nicht benutzt PlayMedia Diese Klasse dient dem einfachen Abspielen von Quicktime Filmen Wird im nor malen Visualisierungsvorgang nicht benutzt SnapshotTaker Diese Klasse dient der Erzeugung von JPEG Bildern aus den berechneten Ergebnissen der Pipeline C 7 7 devisor vision particle DiffEqu Diese Klasse ist eine Datenstruktur f r Differentialgleichungen DiffEquHelper Diese Klasse stellt Hilfsfunktionen f r DiffEqu zur Verf gung ParticleFunction Diese Klasse stellt Grundfunktionen der Partikel Verfolgung zur Verf gung ParticleFunction2d Diese Klasse stellt Grundfunktionen der zweidimensionalen Partikel Ver folgung zur Verf gung Nur f r Testzwecke ParticleFunction3d Diese Klasse stellt Grundfunktionen der dreidimensionalen Partikel Ver folgung zur Verf gung Nur f r Testzwecke ParticleFunctionHexa Diese Klasse stellt Grundfunk
378. te geschieht mit Hilfe der Maus oder durch Dialoge Die Dialoge er m glichen insbesondere die exakte Eingabe von Zahlenwerten Der Editor besitzt zwei unterschiedliche Betriebsmodi e Im 2D Modus gibt es ein einzelnes gro es Editorfenster Alle Werkzeuge zum Erstellen dreidimensionaler Objekte sind gesperrt e Im 3D Modus ist das Fenster in vier unterschiedliche Bereiche aufgeteilt wie man es aus den bekannten 3D Editoren wie Maya oder Blender kennt Die Teilbereiche enthalten die Front Side und Top Ansicht und zus tzlich eine 3D Ansicht in der sich die Ansicht frei bewegen l t Da GRID ein Teil des DEVISOR Pakets ist ist es m glich den Editor vom Kontrollmodul aufzurufen und die Ergebnisse direkt zur weiteren Bearbeitung weiterzuvermitteln A 5 2 Installation Die Installation von GRID wird in Kapitel A 2 dieses Handbuches beschrieben Die Einzelversion von GRID l sst sich mit dem Befehl javac classpath devisor log4j 1 2 8 jar devisor grid main GridApp java aus den Quelltexten bersetzen und mit java classpath devisor log4j 1 2 8 jar devisor grid main GridApp starten A 5 GRID EIN GITTEREDITOR F R ZWEI UND DREIDIMENSIONALE GITTER131 A 5 3 Die Komponenten des Editors Der Editor besteht aus folgenden Komponenten e dem Men s Kapitel A 5 3 e den Werkzeugleisten s Kapitel A 5 3 e dem Hauptfenster bestehend aus AUFSICHT SEITENANSICHT und VORDERANS
379. terne Datenstruktur Im Beispiel sieht diese Methode so aus public boolean filter myLogger debug Identity filter doing nothing Wow this was fast return true Codebeispiel 13 Die filter Methode des Identity Filters 172 ANHANG B ERWEITERUNGSM GLICHKEITEN Der R ckgabe Wert zeigt an ob das Filtern erfolgreich war Das Attribut myLogger ist eine Instanz eines Log4j Loggers vgl auch Kap 2 6 1 der bereits fertig konfiguriert ist Die Daten sind ber die VisionDomain Instanz myDomain zug nglich die zu diesem Zeitpunkt ebenfalls fertig konfiguriert ist Da der Identity Filter die Daten nicht ver n dern mu wird dieses Attribut hier gar nicht benutzt Abschlie ende Arbeiten Damit das so auch funktioniert m ssen auch einige Klassen importiert werden import devisor net interim ListOfErrors import devisor net interim ParameterList import devisor vision util AbstractFilter import devisor vision util EmptyParameterList import devisor vision util NoErrors Codebeispiel 14 Die Importe der neuen Filterklasse Configurables xml Die zentrale Datei in der alle Komponenten der Pipeline angemeldet werden m ssen ist die XML Datei Configurables xml im Paket devisor vision util Sie wird als Basis benutzt um alle verf gbaren Pipeline Komponenten zu sammeln und ihre Parameterlisten zu erfragen Dies ist nat rlich nicht die Stelle um einen XML Kurs durch
380. thode bernimmt folgende zur Erstellung des Feingitters notwendigen Aufgaben e Ermittlung der Anzahl der neuen Elemente Die Anzahl der Elemente welche pro Grobgitterzelle neu hinzukommen ist abh ngig vom Verfeinerungsfaktor welcher durch den GMV Wrapper ermittelt wird und von dem Elementtyp aus welchem das Gebiet besteht vgl Kapitel Mehrgitter Erstellung der neuen Elemente Insbesondere m ssen hierbei erst die Kinderelemente neu geschaffen werden und dann die entsprechenden Referenzen gesetzt werden Hinzu kommt die wichtige Aufgabe den neuen Elementen eindeutige Nummern zu geben welche konform zu den Elementnum mern der VisionDomain sowie der Nummerierung der GMV Daten sind Die Elementnummern der neuen Elemente werden ebenso den GMV Daten entnommen wie die Koordinaten und Nummern der neuen Knoten Da die GMV Daten keine Kanten enthal ten m ssen diese neu berechnet werden Dabei wird auf die Spezifikation der Mehrgitterdaten zur ckgegriffen indem die Knoten nach der durch das Mehrgitterverfahren festgelegten Num merierung zu Kanten zusammengef gt werden Diese werden ebenso nach dem festgelegten Verfahren zu Elementen zusammengesetzt Die Nummer wird berechnet indem ermittelt wird wieviele Kanten sich vor dieser Kante be f nden wenn jede Gitterzelle verfeinert w rde Diese Anzahl mu zu der Gesamtanzahl aller Kanten der Domain addiert werden um die Nummer der aktuellen Kante zur erhalten vgl dazu Codebeispiel 6
381. ting surface polygon data follows eg interface or boundary faces material_no nverts x nverts y nverts z nverts Where material_no Integer number related to material data nverts No of vertices x nverts x coordinate of polygon vertices y nverts y coordinate of polygon vertices z nverts z coordinate of polygon vertices This data is repeated for all polygons endpoly Keyword to indicate end of polygon data tracers ntracers Tracer points and the number of tracers input x ntracers Float x coordinates y ntracers Float y coordinates z ntracers Float z coordinates Followed by trace data of the form anyname An eight character name for the data data ntracers array of float data Examples temp temp_data ntracers pressure pressure_data ntracers endtrace Keyword indicating end of variable data traceids Alternate tracer id numbers for display ids ntracers Integer alternate tracer ids probtime ptime Keyword and floating point problem time value cycleno cycleno Keyword and integer problem cycle number surface nsurfaces Surface facet data and number of facets Followed by nsurfaces lines of nverts Number of vertices per facet vertex_ids Integer list of node numbers that define the polygonal facet D 2 SPEZIFIKATION DES GMV FORMATS 251 surfmats Surface material data matids nsurfaces Integer material ids for surface facets Note surface data must be input before surfmats s
382. tionen Die Koeffizienten der Gleichung ziehen sozusagen an den Ansatzfunktionen und bilden so durch unterschiedliche Werte die L sung ab Weitere Beispiele f r die Definition von Ansatz funktionen und ihre analytische Untersuchung finden sich in jedem Lehrbuch ber Finite Ele mente also insbesondere in 33 16 2 2 4 Berechnung der Integrale Eine wichtige Teilaufgabe ist die Berechnung der in der schwachen Formulierung auftretenden Integrale Jo piQ dx Da diese Integrale im allgemeinen nicht analytisch gel st werden k nnen ist man hier auch wieder auf numerische Verfahren angewiesen Diese Verfahren zur numeri schen Integralberechnung nennt man Quadraturverfahren Ein allgemeines Quadraturverfahren sieht folgenderma en aus b n f x dx wif wi mit x a b a i 1 24 KAPITEL 2 GRUNDLAGEN Die x hei en St tzstellen die w Gewichte der Quadraturformel Das Verhalten und die Quali t t der Quadraturformel wird von der Wahl dieser Werte ma geblich beeinflu t Zwei Verfahren sollen im folgenden vorgestellt werden Das erste Verfahren ist das Trapezverfahren Das Intervall ber das zu integrieren ist wird in gleich gro e Abschnitte eingeteilt und die so entstandenen Trapezfl chen werden aufsummiert Abbildung 2 10 verdeutlicht das Verfahren Abbildung 2 10 Trapez und Mittelpunktverfahren Die St tzstellen sind durch die Vorschrift x a jh mit h b a n gegeben
383. tionen der Partikel Verfolgung in Hexa Domains zur Verf gung Nur f r Testzwecke ParticleTracing2D Diese Klasse f hrt eine zweidimensionale Partikel Verfolgung durch ParticleTracing3D Diese Klasse f hrt eine dreidimensionale Partikel Verfolgung durch RungeKutta Diese Klasse kapselt den Algorithmus von Runge Kutta vierter Ordnung C 7 8 devisor vision pipe Pipelnstance Dies ist die zentrale Klasse der Visualisierungs Pipeline Bei jedem Start des VISION Moduls wird eine Instanz erzeugt Sie k mmert sich um das Zusammentra gen der ben tigten Parameter mittels der Klasse FindConfigurables aus dem devi sor vision util Pakets Diese Informationen werden anschliessend an CONTROL bertra gen dort ver ndert und zur Konfiguration der Pipeline zur ckgeschickt Eine intensive Abhandlung zu dieser Klasse findet sich in der Systembeschreibung 232 ANHANG C API DOKUMENTATION C 7 9 devisor vision pipe filter AbstractFilter Fasst einige allgemeine Filter Funktionen zusammen und bietet somit eine Grundlage f r Filter Implementierungen Implementiert die I_Mapper und I_Confi gurable Interfaces CutlinesFilter Verkleinert eine zweidimensionale Domain um eine Dimension CutsurfacesFilter Verkleinert eine dreidimensionale Domain um eine Dimension I_Filter Schreibt Methoden vor die von Filter Implementierungen angeboten werden m ssen IdentityFilter L t die Domain wie sie ist IsoLinesFilter Erzeugt aus einer Domain eine Anzahl v
384. tryfree Eintrag frei ja nein int moduleid Module ID int problemid Problem ID int instancehandle Instancehandle der zug Applikation int localport lokaler Port der zug Applikation char appl 512 Pfad zur Applikation char initappl 512 Pfad zum Initialisierungsskript char wdpath 512 Pfad des Projektverzeichnisses char projectid 128 Projekt ID in Stringform char username 128 Name des Benutzers char display 128 Bildschirmkennung in X11 Notation int modus Modus int status Status int firstconfigured Wurde die Applikation schon konfiguriert ja nein struct setpar apara Verweis auf die aktuellen Parameterwerte struct tresult result Verweis auf die Ergebnisliste struct tstat stat Verweis auf die Statistikenliste routertableentry Codebeispiel 2 Routingtabelle Die Information welche Module auf einem Rechner verf gbar sind sind in einer Konfigurati 72 KAPITEL 3 SYSTEMBESCHREIBUNG onsdatei modules conf gespeichert Der Inhalt dieser Datei wird anfragenden CONTROL Modulen bei entsprechendem Protokollbefehl zur ckgegeben F r jedes Modul wird ein Initialisierungsskript angegeben welches die grundlegenden Initia lisierung vornimmt wie Verzeichnisse erzeugen Programmdateien kopieren etc Ein zweites Skript startet schlie lich die eigentliche Applikation Die Skripte werden bei den e
385. tschritt berechnet ist zus tzlich zur aktuellen Position eines Partikels seine vorherige Position bekannt und somit auch die Zelle in welcher sich das Partikel im vorherigen Zeitschritt befand Mit dieser Information kann nun eine Breitensuche gestartet werden um die Position des Partikels zu ermitteln Ausgehend von der berlegung da w h rend der Dauer eines Zeitschrittes das Partikel eine relative kleine Entfernung zur cklegt wird nun ber die Nachbarschaftsbeziehungen der Zellen auf die angrenzenden Zellen zugegriffen und berpr ft ob das Partikel sich in eine von diesen Zellen befindet Vereinfacht ausgedr ckt wird um die Zellen herum gesucht bis das Partikel gefunden wird Der Suchweg beschreibt in etwa eine Spirale Die oben genannten Techniken werden auf dem Grobgitter des Gebietes benutzt Ist eine Zel le des Grobgitters gefunden welche das Partikel enth lt wird im Feingitter s Kap 2 2 5 weitergesucht F r jede Grobgitterzelle existiert ein Feingitter welches nur Zellen enth lt die innerhalb dieser Grobgitterzelle liegen F r die Suche eines Partikels innerhalb der Zellen des Feingitters wird eine lineare Suche angewandt Die Anzahl der Feingitterzellen innerhalb einer Grobgitterzel le ist im Gegensatz zur Gesamtanzahl aller Grobgitterzellen in dem Gebiet relativ klein so da eine lineare Suche eine tolerierbare Suchzeit erfordert Durch die Verwaltung zus tzlicher Suchdatenstrukturen l t sich Effizienz se
386. tzernamen ist der DEVI SOR somit klar ein System f r den Einzelbenutzer und nicht f r den Einsatz in Group ware Umgebungen konzipiert Es ist jedoch selbstverst ndlich m glich mehrere Instan zen desselben Moduls unter einer Benutzerkennung innerhalb desselben Projekts parallel zu verwenden Modularit t Das System hat zwei Kernkomponenten Der Server NEXUS und das CON TROL Modul sind f r den Einsatz unerl lich und damit implizit auch Teile der NET Komponente Alle anderen Module sind austauschbar insbesondere auch die Numerik software Ebenso selbstverst ndlich k nnen eigene Module erg nzt werden beispiels weise ein Gittergenerator als Erg nzung zum existierenden Gittereditor GRID Im An hang B 2 findet sich ein Tutorial zur Integration eines solchen neuen Moduls N Programmierbarkeit Als Konsequenz des modularen Entwurfs sind auch die einzelnen Mo dule wieder modular aufgebaut Dies erm glicht es Teile des Systems in Form eines API auch in externen Programmen zu verwenden Einige Beispiele sollen dies verdeutlichen e Darstellung eines Gitters oder einer Geometrie mit Hilfe von Komponenten aus den Modulen GRID oder VISION in beliebigen eigenen Fenstern e Einbindung einer Numeriksoftware durch hartcodierte Konfigurationen und die Verwendung des ControlWrappers isoliert vom CONTROL Modul Insbesondere k nnen so Berechnungen ohne notwendige Benutzereingaben in eigene Program me eingebunden werden e Das Paket
387. u u1 uq X t auf ausf hrlicher U4 x t m t Partielle Ableitungen d h Ableitungen nach einer der vorkommenden Variablen werden wie folgt geschrieben u u Ot Ug OU u Ox i 2 2 MATHEMATISCHER HINTERGRUND 15 Mit dem Nabla Operator V werden der Gradient Vektor aller partiellen Ableitungen einer skalaren sowie die Divergenz einer Vektorfunktion geschrieben als grad u Vu Qyu qu divu V u 9u qua Zu einem Vektor b R wird die Ableitung in Richtung b mit dyu b Vu bezeichnet Entsprechend ist 0 u n Vu die Ableitung in Richtung der u eren Normalen auf dem Gebietsrand Die Kombination von Divergenz und Gradientenoperator ergibt den Laplace Operator Au V Vu Ofu u F r weitergehende Informationen sei auf diverse Lehrb cher wie z B 33 oder entsprechende Vorlesungsskripte wie z B 27 verwiesen 2 2 1 Modellierung Ziel der Modellierung ist es f r Naturvorg nge eine oft stark vereinfachte mathematische Beschreibung zu finden d h Vorg nge wie Diffusion Stofftransport oder Temperaturverteilung mit Hilfe mathematischer Gleichungen zu beschreiben Dies ist ein h chst kreativer Akt der viel Erfahrung erfordert und f r den es kein Standardkochrezept gibt Deshalb sollen an die ser Stelle nur drei exemplarische Vorg nge dargestellt werden Um alle Modelle sp ter gleich behandeln zu k nnen werden sie in F
388. ualisierung der Rechenschritten mit dem ShadedPlot Filter Der Server NEXUS wird mit dem Aufruf von nexus von dem Verzeichnis SDEVISOR_SER VER gestartet Nun wechselt man in das DEVISOR Verzeichnis und gibtant run_control ein Damit wird das Modul CONTROL gestartet Es erscheint das Hauptfenster Nun mu der Server konfiguriert werden Man gehe unter das Men Server und dort zum Men punkt Serverver waltung Dort ist schon der Server Alias auf dem localhost und dem Port 4711 voreinge stellt Den w hlt man aus Falls man mit den Einstellungen zufrieden ist so klickt man auf den Aktualisieren Button Man sieht falls die Aktualisierung gutgeht in dem Modulbeschreibungs Fenster die von dem Server angebotenen Module Mit dem Schlie en Button wird dieser Dia log geschlossen Als n chstes wird ein neues Projekt erstellt Dies geht ber das Men Projekt Neues Projekt Dort w hlt man ein Verzeichnis in einem Standard Datei Auswahl Dialog aus in dem man das neue Projekt anlegen m chte Man kann einfach tmp_devisor eingeben und mit OK best tigen dann wird das neue Verzeichnis in dem Startverzeichnis des aktuellen Benutzers angelegt Ein neues Benutzerfenster wird eingeblendet bei dem oben die verf gbaren Module angezeigt werden Im folgenden wird das Szenario geschildert um auf einem fertigen Gitter eine Simulation zu starten Dazu klicke man auf NUMERICS in dem neu erschienenen Fenster Es wird ein neu es TabPane mit dem Namen
389. uch Kap A 5 im HTML Format HexaDialog Dieser Dialog dient als Eingabem glichkeit f r Hexa Objekte HierarchyDialog Dieser Dialog zeigt den hierarchischen Aufbau der aktuell bearbeiteten Do main mit all ihren Elementen in einer Verzeichnis hnlichen Struktur NodeDialog Dieser Dialog dient als Eingabem glichkeit f r Nodes OptionsDialog Dieser Dialog dient als Eingabem glichkeit f r Optionen des Programms PasteAtDialog Dieser Dialog dient als Eingabem glichkeit f r die Stelle auf der zeichenfl che an die die kopierten Elemente eingef gt werden sollen PointOflnterestDialog Dieser Dialog dient als Eingabem glichkeit f r die Mittelpunkte der Arbeitsfenster Top Side und Front QuadDialog Dieser Dialog dient als Eingabem glichkeit f r Quad Objekte SphereDialog Dieser Dialog dient als Eingabem glichkeit f r BoundarySpheres TetraDialog Dieser Dialog dient als Eingabem sglichkeit f r Tetra Objekte TriDialog Dieser Dialog dient als Eingabem glichkeit f r Tris Objekte ViewBoxDialog Dieser Dialog dient als Eingabem glichkeit f r die Anzeigebeschr nkung in den Arbeitsfenstern VisibilityDialog In diesem Dialog kann man einstellen welche Boundary Objekte angezeigt werden und welche nicht item HexaDialog Dieser Dialog dient als Eingabem glichkeit f r Hexa Objekte 220 ANHANG C API DOKUMENTATION C 4 3 devisor grid event In diesem Packet befinden sich ausschlie lich Klassen die die Mouse Ereign
390. uen aufeinander auf Eine Edge besteht aus zwei Nodes ein Quad besteht aus vier Edges ein Hexa aus sechs Quads usw Dadurch sind auch die Nachbarschaftsbeziehungen zwischen den einzelnen Elementen festgelegt Haben beispielsweise zwei Edges einen gemeinsamen Node so sind diese benachbart Zus tzlich enthalten einige Objekte Informationen wie sie automatisch weiter verfeinert werden k nnen C 3 2 devisor framework il8n In diesem Paket befinden sich die Dateien zur Internationalisierung Im Moment sind dies die Sprachen Deutsch und Englisch C 3 3 devisor framework images Dies ist nicht wirklich ein Paket sondern lediglich das Verzeichnis das die Bilder f r die Icons enth lt C 3 4 devisor framework mainframe Das mainframe Paket ist ein berrest der Vorg ngerversion von GRID und enth lt nur noch einige Dialoge die wiederverwendet werden konnten C 3 5 devisor framework options Das options Paket enth lt die Optionsverwaltung die aus der Vorg ngerversion von GRID bernommen wurde Der OptionsManager stellt eine Schnittstelle zur Verf gung mit der man einheitlichen Zugriff auf die Optionsvariablen hat und erlaubt es die Daten persistent zu halten M chte man eigene Optionen verwalten so mu man eine Klasse erstellen die von AbstractOptions erbt C 3 6 devisor framework toolbox Das Paket toolbox enth lt einige Hilfsklassen Die wichtigsten sind BoundingBox und Geo metryExtractor 218 ANHANG C API DO
391. uerungs m glichkeiten das Modul erlaubt B 3 EINBINDUNG ANDERER PROGRAMMPAKETE 197 modules mc maxprb 1 modules mc prb 0 problemid 0 strcpy modules mc prb 0 name Membran strcpy modules mc prb 0 descr Membran modules mc prb 0 lp PARSER_LOCALPROTO_FULL es es Codebeispiel 40 Problemdefinition Die Ergebnisse die das Modul liefern kann werden in einer verketteten Liste definiert deren Elemente vom Typ tresult sind In jedem Element werden Indexnummer Typ Beschrei bung lokaler Dateiname d h unter welchem Namen die Ergenisse vom Modul ins lokale Ar beitsverzeichnis geschrieben werden gespeichert Fiir Ergebnisse vom Typ GMV werden zu s tzlich die in dieser Datei vorhandenen Datenfelder angegeben Die Namen m ssen exakt mit denen in der Datei vorkommenden bereinstimmen Codebeispiel Codefragment 41 zeigt ein exemplarisches modules mc prb 0 result amp bspresultl bspresultl resultid 0 bspresultl resulttype RESULT_TYPE_GMV bspresultl resultname char malloc 32 strcpy bspresultl resultname Auslenkung bspresultl resultdescr char malloc 32 strcpy bspresultl resultdescr Auslenkung bspresultl resultmask char malloc 32 bspresultl avail 0 bspresultl ndatafields 1 strcpy bspresultl datafields 0 solution bspresultl result_timestep NULL bspresultl re
392. ultm ig vorgegebene Funktionsparameter k nnen hingegen weder editiert noch gel scht werden was durch die roten und gr nen Punkte in der Spalte L schbar angedeutet wird Die Funktion selbst kann in dem unten gegebenen Textfeld eingetragen werden na unrbebeg Orere oer rue bien urn Te I mo I Dr 2 ea SEF eve Abbildung A 22 Eingabe von Funktionen Datenaustausch zwischen Modulen Mit dem in Abb A 23 abgebildeten Parameter ist es m glich ein Numerikmodul auszuw h len und von diesem Daten anzufordern Die Auswahl eines Moduls erfolgt ber den Button w hle Modul Dann erscheint ein Modulauswahldialog hnlich dem in Abb A 3 mit dem einzigen Unterschied da in der Modulliste f r einen ausgew hlten Server die laufen den und inaktiven Module angezeigt werden Das ausgew hlte Modul wird dann angezeigt und es kann ein Ergebnis ausgew hlt werden falls Ergebnisse bei dem ausgw hlten Modul verf g bar sind Die Ergebnisse sind in der Combobox gegeben ber Einstellungen wird der in Abb A 24 dargestellte Dialog ge ffnet Hier kann man die gew nschten Daten f r das aus gew hlte Ergebnis einstellen es ist m glich ein Datenfeld und Zeitschritte auszuw hlen F r 128 ANHANG A BENUTZERHANDBUCH die Datenfeldauswahl ist eine Combobox gegeben Da die Anzahl der Zeitschritte sehr gro sein kann 10 000 und mehr hat man mehrere M glichkeiten um Ze
393. ultwert und Einheit definiert GridParameter werden durch Eingabe des Gitters im FEAST Format definiert Diese Angabe mu wieder durch beendet werden Bei Function Parameter folgen die globalen Parameter und die Funktionsdefinition Abgeschlossen wird die Parameterdefinition durch die Angabe des zu verwendenden GUI Elements SelectionParameter 1 Statistics STAT FALSE 1 3 1 This parameter defines the available statistic items ScalarParameter 1038 Iteration ITER FALSE Count of iterations Integer 0 10000 0 nonunit GUI TextField GUI CheckBox INodeParameter 1037 Parameters PARAM FALSE 6 This parameter defines the available parameters ScalarParameter 1027 Refinement Level NFINE FALSE This parameter sets the number of refinements Integer 1 10 3 nonunit GUI TextField GI ScalarParameter 1032 RelativeAccuray EPS CG TRU If this relative accurac is fulfilled the iteration stops Double 1E 6 1E 16 1E 6 nonunit GUI TextField GUL CheckBox Codebeispiel 43 Parameterdatei Teil 1 B 3 EINBINDUNG ANDERER PROGRAMMPAKETE 199 Der Startwert FEAST GUI GridViewer Double x Double y Integer ia Integer ida Integer bfirst Double dt rhs 1 0 0 1 dt GUI FunctionEditor AXNITER TRUE GUI TextField GUI TextField GridParameter 1034 Gitter GRID FALSI FunctionPara
394. und f r jedes Dreieck die drei Punkte die es aufspannen sowie der maximal drei Nachbardreiecke Falls im Netz keine Nachbarschaftsinformationen zur Verf gung stehen ist es m glich jeweils die Zeilen die sie beschreiben wegzulassen Ein separater Kontrollparameter steuert dieses Verhalten Die so beschriebenen K rper m ssen alle konvex sein Da auch hier eine Parametrisierung analog zum 2D Fall m glich sein soll wird noch folgendes festgelegt zu jedem K rper wird sein geometrischer Mittelpunkt mitgespeichert als Tripel von 3 Koordinaten Dieser Schwerpunkt dient als Mittelpunkt einer Kugel deren Radius so gew hlt wird da sie vollst ndig im Inneren des Randobjektes liegt O B d A sei der Mittelpunkt nun der Koordinatenursprung Nun werden zwei Winkel a 3 betrachtet In der x z Ebene wird bei Winkel a 0 parallel zur x Achse die Ebene gegen den Uhrzeigersinn durchlaufen so da jedem Winkel ein Punkt auf dem Kugel quator entspricht Analog wird in der y z Ebene bei Winkel 8 0 auf der y Achse die Ebene gegen den Uhrzeigersinn d h der Nullmeri dian der Kugel durchlaufen Aus der geforderten Konvexit t des K rpers folgt Jedes Paar a B 0 27 x 0 27 ist durch Strahlverl ngerung eindeutig einem Punkt auf der K r peroberfl che zugeordnet und umgekehrt diese Konstruktion definiert also eine eindeutige Pa rametrisierung Aus historischen Gr nden wird jedes Intervall nun noch auf den Bereich 0 1 skal
395. und in die entsprechende Routine verzweigt F r jede Proto kollsequenz steht eine dieser Hilfsmethoden zur Verf gung Diese Methoden arbeiten alle nach demselben Schema 1 Einlesen der Anfrage 70 KAPITEL 3 SYSTEMBESCHREIBUNG 2 Generierung der Antwort bzw Anfordern der Antwort beim assoziierten Modul ber die vom Interface Wrappable vorgeschriebenen Methoden 3 Versenden der Antwort 4 Beenden der Verbindung zum Server und des Threads Die Kommunikation zwischen CONTROL Modul NEXUS und Zielmodul l uft folgenderma en ab Die Verbindung zwischen Server und CONTROL Modul bleibt permanent bestehen Zwischen Server und Zielmodul wird f r jede Kommunikation eine neue Verbindung ge ffnet Auftretende Fehler werden in eine Instanz der Klasse ListOfErrors umgewandelt und auto matisch in die outbox des Wrappers eingeh ngt 3 2 6 Die Schnittstelle zu GRID Basierend auf diesen abstrakten Klassen stellt das Paket NET eine angepa te Erweiterung durch den GridWrapper bzw GridCommunicationThread zur Verf gung Diese Klassen leiten im wesentlichen nur nicht unterst tzte Protokollsequenzen auf die spezielle Sequenz UnsupportedCommand um Die Implementierung der Erweiterung ist unaufwendig und bedarf keiner weiteren Erl uterung Das GRID Modul implementiert dazu das Interface Wr appable 3 2 7 Die Schnittstelle zu VISION Die Schnittstelle zu VISION ist etwas umfangreicher als die zu GRID und wird analog durch die beiden Klas
396. und seine An bindung an FEATFLOW und FEAST die als beispielhafte Numerikpakete verwendet wer den Die oben angesprochene Kassettenrekorder Funktionalit t wird unterst tzt Um eine Neu implementierung von FEATFLOW zu vermeiden wird diese jedoch auf die Anwendung des sogenannten Membranproblems s Kap 2 5 beschr nkt Die Funktionalit t soll beispielhaft am Membranproblem demonstriert werden Der Endbericht soll das komplette System dokumentieren und Bedienungsanleitungen sowie Tutorials zur Erweiterbarkeit enthalten Struktur des Berichts Nach der allgemeinen Einleitung und der Erkl rung ben tigter Formalia wie die genaue Auf gabenstellung und die von der Projektgruppe festgelegten Minimalziele stellt das zweite Ka pitel s Kap 2 zun chst die ben tigten theoretischen Grundlagen bereit In Kapitel 2 1 werden wichtige Begriffe im Zusammenhang mit Computernetzwerken zwei und dreidimensionaler Grafikprogrammierung und computational steering bereit gestellt Es folgt eine relativ umfangreiche Einf hrung in die mathematischen Grundlagen von numerischer Str mungssimulation engl CFD computational fluid dynamics s Kap 2 2 F r einige einfache Beispiele werden die mathematischen Modellierungen moti viert und pr zise formuliert insbesondere f r das im Verlauf dieses Berichts immer wie der auftauchende Membranproblem Auf Aspekte der Diskretisierung und in der Praxis verwendeter L ser wird eingeg
397. undation Paket um ValueNodes VisionFace Erweiterung der Face Klasse aus dem foundation Paket um ValueNodes VisionHexa Erweiterung der Hexa Klasse aus dem foundation Paket um ValueNodes VisionQuad Erweiterung der Quad Klasse aus dem foundation Paket um ValueNodes VisionTetra Erweiterung der Tetra Klasse aus dem foundation Paket um ValueNodes VisionTri Erweiterung der Tri Klasse aus dem foundation Paket um ValueNodes C 7 3 devisor vision exceptions ConfigurableException Diese Exception wird bei Problemen beim Einsammeln der Parame terlisten der Pipeline Elemente oder beim Konfigurieren der Pipeline Elemente benutzt ElementNotFoundException Dient zur Signalisierung von Problemen mit Elementen der Vi sionDomain ExceptionHandler Die zentrale Klasse zur Verwaltung von Exceptions ExceptionHandlerException Wird benutzt um einen nicht initialisierten ExceptionHandler zu signalisieren FilterException Signalisiert Fehler beim Filtervorgang HexaNotFoundException Signalisiert Fehler beim Zugriff auf ein Hexa MovieException Signalisiert Fehler beim Erzeugen eines Films QuadNotFoundException Signalisiert Fehler beim Zugriff auf ein Quad TetraNotFoundException Signalisiert Fehler beim Zugriff auf ein Tetra TriNotFoundException Signalisiert Fehler beim Zugriff auf ein Tri VisionException Signalisiert nicht n her spezifizierte Fehler bei der Visualisierung C 7 4 devisor vision grid DomainPanel Diese Klasse kapselt eine vereinfach
398. ung an den ControlWrapper Control Dies ist die Hauptklasse des Pakets Hier wird die Serverliste die Projektliste und der ControlWrapper verwaltet DummyWrapper Ein Dummy der einen ControlWrapper simuliert Nur f r Testzwecke ModuleException Exception f r Fehler die bei der Verwaltung des Moduls auftauchen ModuleObject In dieser Klasse wird ein Modul verwaltet und es erfolgt die Anbindung an den ControlWrapper ModuleObjectList Eine Liste in der alle Module des gleichen Modultyps eines Projekts ent halten sind ProjectObject In dieser Klasse wird ein Projekt verwaltet 213 214 ANHANG C API DOKUMENTATION ProjectObjectList Eine Liste die alle in CONTROL aktiven Projekte enth lt ResultListObject Wird f r den Download ben tigt Server In dieser Klasse wird ein Server verwaltet ServerList Eine Liste die alle Server enth lt ServerModulesTable Durch eine Hashtable wird die Serverliste verwaltet C 2 2 devisor control event CloseTabEvent Wird gefeuert wenn eine JCloseableTabbedPane geschlossen werden soll CloseTabListener H rt auf CloseTabEvents ServerChangedEvent Wird bei einer Ver nderung der Servereigenschaften gefeuert ServerChangedListener H rt auf ServerChangedEvents ServerListChangedEvent Wird bei einer Ver nderung der Eintr ge der Serverliste gefeuert ServerListChangedListener H rt auf ServerListChangedEvents C 2 3 devisor control gui DEVISOR Dies ist die Hauptklasse von CONTROL Hiermit
399. urfvel Surface velocity data u nsurfaces v nsurfaces w nsurfaces surfvars Keyword indicating that other surface field data sets follow The data sets have the form anyname An eight character name for the data data nsurfaces array of float data Examples DO NOT use quotes in actual file density density_data nsurfaces temp temp_data nsurfaces endsvars Keyword indicating end of variable data surfflag Keyword indicating that surface selection flag data sets follow The data sets have the form anyname ntypes Flag name and number of flag types flagnames ntypes 8 character flag type names iflag nsurfaces Integer flag ids for surfaces Note surface data must be input before surfmats Examples surftype 4 2239 29 99 inactive interior interfac boundary sflg_data nsurfaces enstrain 3 static piston air cnst_data nsurfaces endsflag Keyword indicating end of flag data surfids Alternate surface id numbers for display ids nsurfaces Integer alternate surface ids groups Keyword indicating that user defined group sets follow The data sets have the form anyname An eight character name for the group data_type The Data type O cells I nodes 2 faces 3 surfaces nelem The number of elements in the group 252 ANHANG D FORMAT UND PROTOKOLLSPEZIFIKATIONEN data nelem array of integer cells nodes or faces depending on type Exam
400. usf hrungen fiir den eindimensionalen Fall lassen sich in hnlicher Weise auf h here Dimensionen bertragen 2 2 5 L sung des Gleichungssystems Es gibt zwei gro e Klassen an Verfahren zur L sung von linearen Gleichungssystemen die direkten und die iterativen Verfahren Die direkten Verfahren liefern die L sung nach einem Schritt sind daf r aber sehr rechenaufwendig Die iterativen Verfahren sind pro Schritt weniger rechenintensiv ben tigen aber mehrere unter Umst nden sehr viele Schritte um die L sung zu liefern Direktes Verfahren Gau Elimination Es sei ein lineares Gleichungssystem n Sainte b 0 else k l mit n Gleichungen und n Unbekannten zu l sen Zur Verdeutlichung des Algorithmus soll folgendes Beispiel mit n 4 dienen T T2 T3 LA 1 a 412 413 a by a21 a22 a23 az be a31 a32 a33 a34 b3 a4 42 Aus a44 ba Auf dieses Schema d rfen die folgenden Operationen angewendet werden welche das gegebe ne Gleichungssystem nicht ver ndern 26 KAPITEL 2 GRUNDLAGEN e Vertauschen von Zeilen e Multiplikation einer ganzen Zeile mit einer Zahl ungleich Null und e Addition eines Vielfachen einer Zeile zu einer anderen Unter der Annahme aj 0 andernfalls wird ein Zeilentausch nach unten durchgef hrt wird von den i ten i gt 2 Zeilen das a a 1 fache der ersten subtrahiert und f hrt zu T1 T2 T3 LA 1 a a2 a3 aya by D a a A 3 O aD aD il gt 4
401. va Swing Java Swing ist ein im Java Sprachumfang enthaltenes Paket zur einfachen Erstellung von sehr flexiblen graphischen Benutzeroberfl chen und damit die Weiterentwicklung des Java Abstract Window Toolkit AWT Da das AWT aus Geschwindigkeitsgr nden auf Funktionen des je weiligen Betriebssystems aufsetzte war die Auswahl der Komponenten sehr beschr nkt denn nicht alle GUI Bestandteile wurden auch von allen Systemen unterst tzt Mit Java Swing wurde dieser Nachteil behoben Es gibt nun die M glichkeit zwischen einem standardisiertem Java Stil oder dem jeweiligen Betriebssystem Stil zu w hlen und es stehen komplexere Datenstrukturen wie B ume und Tabellen unabh ngig vom Betriebssystem zur Verf gung Java Swing ist somit die Obermenge typischer plattformabh ngiger GUI Elemente und nicht deren Schnitt Swing Bestandteile Java Swing stellt eine Vielzahl an Komponenten zur GUI Gestaltung bereit e Top Level Container Applets Fenster und Dialoge e Allgemeine Container Panels scrollbare Panels trennbare Panels Karteikartenreiter Symbolleisten e Spezielle Container Innere Fenster berlagerte Fenster e Kontrollelemente Schaltflachen Auswahllisten Listen Meniis Textfelder Schiebereg ler Hinweistexte Beschriftungen Fortschrittsbalken Auswahldialoge Tabellen Text fl chen Baumansichten 2 6 VERWENDETE PROGRAMME UND HILFSMITTEL 53 u v a m Zus tzlich sind Ereignisroutinen f r alle Ereigniss
402. waltung der Ergebnisse im Downloaddialog ProjectFileFilter Ein Filter f r einen Standarddateiauswahldialog Filtert Dateien vom For mat devisor C 2 4 devisor control gui dynamicGui Dieses Paket enth lt alle Klassen f r die Erstellung der dynamischen GUI AbstractDynGuiPanel Abstrakte Oberklasse f r alle Parameterpanels Legt Methoden fest die von allen Parameterpanels implementiert werden m ssen Diese Klasse ist gewisser ma en das Pendant zur Klasse Parameter aus dem Paket NET ExampleTree Erstellt eine ParameterList f r Testzwecke Diese enth lt sortiert alle m gli chen Parameter GUI Kombinationen JDataSourcePanel Ein Panel zur Konfiguration eines DataSourceParameter JDomainViewerDialog Dieser Dialog enth lt ein Viewerpanel f r Domains die hiermit be trachtet werden k nnen Die Funktionalit t beschr nkt sich auf Zoomen und Verschieben der Domain JDynamicGuiDialog Erstellt f r eine Parameterliste eine dynamische GUI JDynamicGuiPanel Dieses Panel enth lt die dynamische GUI JFunctionPanel Ein Panel zur Konfiguration eines FunctionParameter JGridPanel Ein Panel zur Konfiguration eines GridParameter JModuleConfigurationDialog Der Hauptdialog f r eine komplette Konfiguration JProblemConfigurationDialog Der Hauptdialog f r die Konfiguration eines gegebenen Pro blems JScalarPanel Ein Panel zur Konfiguration eines ScalarParameter 216 ANHANG C API DOKUMENTATION JSelectProblemPanel Ein Panel
403. wird BoundaryCone genannt Diese Klasse mu von BoundaryBase erben und das Interface Segment implementieren Sie mu die zwei Punkte und den Radius verwalten k nnen und die Methode getInSphere die eine Kugel die den Kegel umschlie t zur ckgibt und deren Mittelpunkt die Mitte des Kegels ist enthalten Zus tzlich sollte sie auch die Methoden getAbsolutePosition und getRelativePosition imple mentieren um das Setzen von Instanzen von BoundaryNode3D zu erm glichen Die Imple mentation von BoundaryCylinder sollte hier wiederum als Beispiel dienen Jetzt mu man die neue Klasse der Domain bekannt machen und sie entsprechend verlinken Dazu modifiziere man die Klasse Boundary im gleichen Paket Man implementiere eine neue Methode createBoundaryCone wobei man sich wiederum an der Methode createBounda ryCylinder ein Beispiel nehmen sollte Vor allem ist hier der Aufruf von der Methode add Boundary wichtig damit alle Verweise richtig gesetzt werden Schon existiert intern eine neue Datenstruktur Nun mu sie nur noch angezeigt werden B 4 3 Modifikation an den View Klassen Man erstellt einen MouseListener der es erm glicht einen Kegel mit der Maus zu erstellen und einen Dialog der es erlaubt einen Kegel durch Eingabe der Eckdaten einzugeben Beiden gemeinsam ist die Zeichenroutine die in der Klasse devisor framework viewer DrawingArea eingetragen werden mu Zun chst mu die Metho de drawBoundary so modifiziert werden da auch Boun
404. y ist die gesuchte Auslenkung falls sie das Prinzip der minimalen Energie erf llt J u lt Jw f r alle zul ssigen Auslenkungen v Also gilt auch F r alle gt 0 J u lt J u ev Vu d gt J u ev 0 Wv de e 0 Dies ist mit folgenden elementaren Umformungen quivalent zu Gleichung 2 3 J u ev Vu folV u ev dx dy fo f ut ev dx dy Yv fo Ox u ev d u Ev Oy u Ev Oy u ev f u ev dx dy Vu Jo Bu 20 ud Ev O2ev Oru 20yudyev dev f u ev dz dy Vu Jo 20u 22082 20yudyv 220 f v dg dy Vv Setzen von 0 und Anwenden der V Definition f hren zu folgender Gleichung a vuve f fo ove 2 3 Q Q Mit der Greenschen Formel s 16 ergibt sich 18 KAPITEL 2 GRUNDLAGEN a Awdedy a Duunds fodedy 0vv Q an Q Das Randintegral ist Null da auf dem Rand Nullwerte vorausgesetzt sind Es bleibt aAu f u dz dy 0 Q Da dies f r alle Funktionen v gilt mu die Klammer nach dem DuBois Reynold Lemma s 16 bereits die Nullfunktion sein Man erh lt die Gleichung aAu f in mit Nullrandbedingungen 2 4 Gleichungen dieses Typs hei en speziell Poissonprobleme allgemein geh ren sie zum dritten Typ der Klassifikation elliptisch 4 Str mungsprobleme Um die Grundgleichungen der Str mungsprobleme zu beschreiben sind zun chst zwei Koordinatensysteme zu unterscheiden eulersche
405. ziehung Die Nachbarelemente werden durch die Methode public VisionHexa getNeighbourHexas 3 6 DAS MODUL VISION 101 folgenderma en ermittelt e Ermittlung der Kinderelemente des Elements in welchem sich das Partikel vorher be fand e Ermittlung der Eltern der eben ermittelten Kinderelemente e Einf gen aller Eltern unter Vermeidung von Dubletten in einen Vektor Dieser Vektor enth lt dann alle Nachbarelemente Die Suche endet wenn alle Elemente der VisionDomain durchsucht wurden In diesem Fall hat das Partikel entweder die Domain ver lassen oder es wurde au erhalb der Domain platziert Informationsspeicherung In der bereits oben erw hnten Klasse ParticleFunction wird zwar die Lage jedes Partikels gehalten Damit ist aber nicht aber die genaue Position gemeint sondern nur das Element in dem sich das Partikel befindet Da es f r jedes Partikel eine Partikelfunktion gibt Kann die Suche ber Nachbarschaftsbeziehungen bereits mit dieser Information realisiert werden vgl die Klasse ParticleTracingMapper Die wichtigste Methode dieser Klasse ist public void eval double t double actualPoint Diese Methode liefert zu einem als double Array bergegebenen Punkt den zugeh rigen Wert zur ck Da die Funktion ausschlie lich f r das Particle Tracing benutzt wird werden nur die vektoriellen Werte zur ckgeliefert Die Auswertung beinhaltet im wesentlichen die Interpolation innerhalb des Elements wel ches da
406. zuf hren daf r wird auf aktuelle Literatur oder die Internet Seite www zvon org verwiesen aber das ist auch gar nicht notwen dig da die Datei extrem einfach strukturiert ist F r jede der drei Pipeline Komponenten gibt es eine Auflistung wie man hier sehen kann lt configurables gt lt filterlist gt lt filter gt lt classname gt devisor vision pipe filter IdentityFilter lt classname gt lt filter gt lt Hier k nnen noch andere Eintr ge stehen gt lt filterlist gt lt mapperlist gt lt mapper gt lt classname gt devisor vision pipe mapper Arrow3DMapper lt classname gt lt mapper gt B 1 EINBAU WEITERER VISUALISIERUNGSTECHNIKEN IN DAS VISION MODUL173 lt mapper gt lt classname gt devisor vision pipe mapper NullMapper lt classname gt lt mapper gt lt Hier k nnen noch andere Eintr ge stehen gt lt mapperlist gt lt rendererlist gt lt renderer gt lt classname gt devisor vision pipe renderer SimpleRenderer lt classname gt lt renderer gt lt rendererlist gt lt extralist gt lt extra gt lt classname gt devisor vision movie SnapshotTaker lt classname gt lt extra gt lt extra gt lt classname gt devisor vision movie MovieMaker lt classname gt lt extra gt lt extralist gt lt configurables gt Es f llt auf da in diesem Kapitel kein Abschnitt f r Extras existiert Das liegt daran da
407. zur ck if ICMD EQ LOCUTUS_SETINTPAR then print Changing value IVAL to IPAR if IVAL EQ LVD_FEPO_MAXNITER MAXNITER IPAR if IVAL EQ LVD_FEPO_NIT_CG NIT IPAR endif if ICMD EQ LOCUTUS_SETDOUBLEPAR then print Changing value IVAL to DPAR if IVAL EQ LVD_FEPO_EPS_CG EPS DPAR if IVAL EQ LVD_FEPO_OMEGA OMEGA DPAR endif Codebeispiel 54 Beispiel FeatPoisson Hauptschleife Codebeispiel 54 realisert das dynamische Setzen der Parameter In IVAL wird die ID des ge w nschten Parameters bergeben und in IPAR rsp DPAR der Wert des Parameters if ICMD EQ LOCUTUS_REWIND then print FEAT2DTEST rewind itime itime ival DT DT ival 0 5DO if itime 1t 0 itime 0 if dt 1t 0D0 dt 0D0 call dllm_update_stat itime endif Codebeispiel 55 Beispiel FeatPoisson Hauptschleife Codebeispiel 55 implementiert die Funktion Zur ckspulen IVAL 0 call dllm_listen_return ICMD IVAL Codebeispiel 56 Beispiel FeatPoisson Hauptschleife An dieser Stelle Codebeispiel 56 wird die R ckmeldung auf den bermittelten Befehl ber mittelt Sollte kein Kommando bermittelt worden sein wird auch keine Antwort generiert Dies macht die Routine automatisch ANHANG B ERWEITERUNGSM GLICHKEITEN 206 if ICMD
Download Pdf Manuals
Related Search
Related Contents
Progress Lighting P3464-09 Installation Guide Siemens HC854580 - Texas A&M University SHA User Manual PDF - Harmonic Drive LLC D GB F I E NL CZ Bedienungsanleitung Operating Instructions Mode MODE D`EMPLOI - adaptto.com - Massoth Elektronik Mettler Toledo Multirange ID7sx-Base Weighing Terminal Operating Copyright © All rights reserved.
Failed to retrieve file