1 Fehlerhandhabung und Ergebnisfeedback Fehlerhandhabung und Ergebnisrückgabe an Kalypso Trennung der Fehler-Handhabung: o Plausibilitätsprüfung für das Modell zur Unterbindung von Netz- oder Eingabefehlern auf Kalypso-Seite o Informationsmeldung mit Einstufung der Meldung aus dem Rechenkern Verhalten des Plausibilitätschecks o bei Widerspruch mit Plausibilitätscheck darf erst keine Rechnung ermöglicht werden o Plausibilitätscheck durchführen, bevor Berechnung durchgeführt wird; ein onthe-fly Prüfen könnte zu nervigem Verhalten der grafischen Oberfläche führen o Differenzieren zwischen Fehlern und Warnungen Mögliche Plausibilitätschecks o Isolierte Elemente o Wertegrenzen/ Plausibilitätsgrenzen für Parameter o Notwendigen Speicherbedarf ermitteln und mit System vergleichen o Weiterhin: Aus Erfahrung durch die Übung müssen weitere Benutzerfehler identifiziert werden Fehlerprozessierung während/ nach der Rechenkernlaufzeit o Springen zum Ort des Geschehens und Verwendung eines Text-Labels beim Fehler zur Fehlerdiagnose o Protokollieren des Iterationsverlaufes und der Log-Datei, so dass jederzeit auf den Berechnungsverlauf zurück gegriffen werden kann Erweiterung der Ausgabe während der Laufzeit um o Grafische und tabellarische Darstellung des Verlaufes der Änderungen während der Iteration o Grafischer Verlauf des angewendeten Relaxationsparameters in Iteration zur Prüfung, ob Genauigkeit der Konvergenz hoch genug o Darstellung des Iterationsverlaufes in absoluter und relativer Weise o Verbesserte Konvergenzkriterien; bedeutet: Suche nach einer verbesserten Norm-Berechnung für Konvergenz o Verlauf des maximalen relativen/ absoluten Residuums während der Iteration o Anzeige des Bearbeitungsschrittes („Assemblierung der Matrix“, „Lösung des Gleichungssystems“, „Verbesserung der Lösung„ etc.) o Unterscheidung zwischen einfacher und detaillierte Fehlerausgabemaske Warnungen und Fehler während der Laufzeit des Rechenkerns Erweiterte Ausgaben während der Berechnung: 1 o Ausgabe des Residuumsverlaufes o Andere/ bessere Konvergenzkriterien; Norm-Konvergenz! o Ausgabe des verwendeten Relaxationsparameters mit in Konvergenzverlauf o Reale Konvergenz anzeigen, d. h. skaliert mit dem Relaxationsparameter Schreiben einer Logger-Datei mit allen Meldungen aus dem Rechenkern; Eigenschaften aller Meldungen: o Level: Klassifizieren der Meldungen in (Warnung, Fehler, Lob, Information, Debug-Info); Meldungen werden in Abhängigkeit der Laufzeit-Einstellungen geschrieben oder unterdrückt o Titel: Kurzmeldung des Fehlers, d. h. textlicher Identifier o Meldung: ausführliche Beschreibung des Fehlers; muss bei „Warnung“, „Fehler“ und „Lob“ eindeutig vom Benutzer verstanden werden, so dass der Benutzer reagieren kann o Koordinaten (optional): Ort des Auftretens des Fehlers soweit vorhanden o Debug-Info „Netzkomponente“: Angabe des „Objektes“, bei dem der Fehler auftritt o Debug-Info „ID“: ID der Netzkomponente o Debug-Info „Routine“: Name der Routine, in welcher der Fehler auftritt Warnungen während der Rechenkernlaufzeit o Überschreiten/ Unterschreiten der Gültigkeitsgrenze von 1D-Polynomen o Erreichen der maximalen Iterationszahl in einem Rechenschritt ohne Unterschreiten der Konvergenzschranke o Konvergenzkriterium bei hoher Dämpfung (Relaxation) erreicht, so dass eigentlich keine wirkliche Konvergenz vorhanden ist o Schießen Fehler während Rechenkernlaufzeit o Identifikation von Speicherproblemen o Excess changes o Singuläre Matrix o … Wichtig: Fehlerrückgabewert aus Kalypso! Kalypso gibt einen Fehlerwert 0 zurück, wenn ein wirklicher Fehler auftritt. Der Fehler muss = 0 sein, wenn das Programm ordnungsgemäß beendet worden ist und „nur“ ein Rechenfehler aufgetreten ist! 2 2 Ergebnisauswertung Verringerung des Auswertungsaufwandes Triangulation nicht mehr durchführen, sondern nur Ergebnisdaten in GML transformieren Darstellung der Wasserstandsergebnisse grundsätzlich nur als Punktdaten in Draufsicht Auf Wunsch auch flächige Darstellung der Werte, d. h. nachträgliche Auswertung Löschen der Triangulationen soll ermöglicht werden ,um Speicherbedarf zur reduzieren; Ergebnisse werden ja weiter als GML vorgehalten und können daher später erneut evaluiert werden Triangulation durch FE-Formulierung der Oberfläche ersetzen! Bi-Lineare und Bi-quadratische Funktionen! Möglich wäre vielleicht eine on-the-fly Triangulation der Ergebnisse bei der Darstellung, bei niedriger Zoomstufe Schreiben der GML-Datei vielleicht direkt aus RMA·Kalypso oder mit einem weiteren kleinen Fortran Programm Differenzieren von Ergebnissen Marsh-Ergebnisse sollten möglichst differenziert gehalten werden; Unterteilungen nach: o Freie Strömung o Oberirdische Übergangsströmung o Unterirdische Übergangsströmung o Unterirdische Marsh-Strömung Weitere notwendige (mögliche) Darstellungsoptionen bei der Draufsicht Residuum Kontinuitätsgleichung und Impulsgleichung Energiehöhen Spezifischer Abfluss (Impuls) Marsh-Topologie Darstellung des angewendeten Korrekturfaktors für die Reibung Weitere Schnittauswertungen: Querschnitte weiterer Workflow-Task notwendig: „Schnitt-Definition“ Prinzipiell bestehen zwei Möglichkeiten einen Schnitt zu legen. Beide sollten unterstützt werden. Der Hintergrund in beiden Fällen ist primär die Berechnung des Abflusses! Übereinstimmend mit den Elementkanten „Kontinuitätslinien“: Diese Methode ermöglicht eine exakte Berechnung von Abfluss und Impuls im Sinne der Simulation; hierfür muss allerdings für 100-prozentige Genauigkeit auch der Marsh-Bereich 3 berücksichtigt werden. Ein solcher Schnitt kann vollkommen beliebig im Modell angeordnet werden aber immer entlang von 2D-Elementkanten! Komponenten bei der Benutzung o Erstellung des Querschnittes anhand des Algorithmus für Randlinien/ Übergangslinien-Definitionen Profillage „Profile“: Intention ist die Definition von Gewässerprofilen zur Erstellung von Abfluss-Längsschnitten oder Profil-Extraktionen mit entsprechender Anzeige der Strömungsparameter (letzteres ist wirklich absolute Zukunftsmusik) o Vergabe von Kilometrierung optional; Kilometrierung soll eigentlich bei der Erstellung von Längsschnitten mit „Routen-Thema“ berechnet werden. o Erstellung von Querschnitt anhand manuell gezeichneter Linie o Erstellung von Querschnitt anhand importierter Linien-Shape Datei; Import muss ermöglichen Kilometrierungen aus der Shape-Datei zu übernehmen o Definition einer positiven Richtung der Profile; Hintergrund: Per Definition festlegen, in welche Richtung positiver Abfluss auftritt; relevant für tidebeeinflusste Gewässer! Eigentliche Berechnung des Abflusses macht erst im Zusammenhang mit Zeitreihen oder Längsschnitten Sinn! Möglichkeit der Anzeige in Querschnitten wie bei Längsschnitt-Definition: o Auswahl des Ergebnis-Zeitschrittes zur Anzeige o Anzeigen von Wasserspiegellage Energiehöhen Geschwindigkeitsgrößen (Umrechnung von x- und y- Koordinaten in Längs- und Querströmung) Anzeige des Abflusses Anzeige der Bathymetrie Anzeige der Marsh-Bathymetrie Weitere Möglichkeit der Auswertung beim Längsschnitt Zusätzliche Ergebnisse im 2D-Längsschnitt: o Abfluss o Impuls Zusätzliche Ergebnisse im 1D-Längsschnitt o Impuls Erstellung von 2D-Längsschnitt erweitern um Möglichkeit auch Profile in Berechnung zu integrieren Berechnung der Kilometrierung eines Kilometrierungsdefinition und der Profillage Profils anhand Schnittpunkt Überschreiben der Kilometrierung durch eine manuell angegebene Kilometrierung 4 der 3 Netzerstellung mittels automatisierter Triangulation Definition des Gebietes für die automatisierte Netzerstellung Wichtig: Delauney-Triangulation Definition der Features für das zu erstellende Netz: o Definition eines Umrandungspolygons inklusive einer Snapping-Funktion! o Vorgabe beliebiger Zwangslinien und Zwangspolygone durch Manuelles Zeichnen Auswahl eines oder mehrerer Objektes aus beliebigen Linien- oder Polygonlayer o Mögliche Berücksichtigung von Rauheitspolygonen (ist eigentlich im vorigen Punkt mit eingeschlossen! o Zwangspunkte Vereinfachung von Vertices von Zwangslinien/ -polygonen (siehe Abhishek-Toolbox) Anpassung des Umrandungspolygons an bestehende Netze o Polygonkanten müssen differenziert werden zwischen Fixe Kanten (keine Einfügung von zusätzlichen Knoten möglich) Variable Kanten (Einfügung von zusätzlichen Knoten durch den Triangulationsalgorithmus beliebig möglich) o Vergabe des Status der Kante durch z. B. Leertasten-Betätigung o Möglichkeiten zur Unterteilung von variablen Kanten auf der Grundlage einer vorgegebenen Maximalgröße von Elementen durch Angabe der Anzahl der Unterteilungen Nach Beendigung der Eingaben soll eine Netzvorschau angezeigt werden, auf deren Grundlage weitere Anpassungen durch Benutzer vorgenommen werden können o Hinzuziehen weiterer Zwangsfeatures o Ändern des Umrandungspolygons o Ändern des Status einer Kante (variabel/ fix) o Editieren von variablen Kanten des Umrandungspolygons Hinzufügen von Knoten Entfernen von Knoten Verschieben von Knoten Generierung des Netzes erst durch endgültige Bestätigung wie bei Bandgenerator! 5