Aktionen

Mathematisches Verfahren UNTRIM2 und CF-NETCDF.NC: Unterschied zwischen den Seiten

Aus BAWiki

(Unterschied zwischen Seiten)
imported>Lang Guenther
(SubGrid-Technologie)
 
imported>Lang Guenther
(NCDELTA ergänzt)
 
Zeile 1: Zeile 1:
[[Kategorie:Mathematische Verfahren]]
+
{{Dateikennblatt
[[en: Mathematical Model UNTRIM2]]
+
|name_en=CF-NETCDF.NC
==Kurzbeschreibung==
+
|dateityp=cf-netcdf.nc
 
+
|version=Mai 2015
Das mathematische Verfahren [[UNTRIM2]] ist eng mit den Verfahren [[Mathematisches Verfahren UNTRIM|UNTRIM]] und [[Mathematisches Verfahren UNTRIM|UNTRIM2007]] verwandt. [[UNTRIM2]] ist ein semi-implizites Finite-Differenzen (-Volumen) Verfahren zur numerischen Lösung der dreidimensionalen Flachwassergleichungen sowie der dreidimensionalen Transportgleichung für Salz, Wärme, Schwebstoffe sowie suspendierte Sedimente. Als wesentliche Neuerung gegenüber den ''klassischen'' UNTRIM-Verfahren kann die Bathymetrie des Modellgebietes mit Hilfe der SubGrid-Technologie wesentlich genauer als bisher, und unabhängig von der Auflösung des Berechnungsgitters, wiedergegeben werden.
+
|version_beschr=Mai 2015
 
+
|bedeutung=
==SubGrid-Technologie==
+
* BAW-Ausprägung einer [[NETCDF.CDF|NetCDF]]-Datei.
 
+
* Für NetCDF-Konventionen, die der Speicherung typischer BAW-spezifischer Daten in zu Grunde liegen, siehe [[NetCDF|NetCDF-Bereich des BAWiki]].
===Berechnungsgitter und SubGrid===
+
* CF konform gemäß [http://puma.nerc.ac.uk/cgi-bin/cf-checker.pl NCAS ''CF Compliance Checker''].
 
+
* Ab Mai 2011 wird NetCDF-4/HDF5 unterstützt (siehe [http://www.unidata.ucar.edu/software/netcdf/ Unidata, NetCDF]).
* Berechnungsgitter:
+
|dateiinhalt=
*: Es wird ein unstrukturiertes orthogonales Gitter (UOG) benutzt. Hierbei wird das Lösungsgebiet von einer endlichen Anzahl konvexer Polygone überlappungsfrei überdeckt. Ein Gitter entspricht genau dann einem UOG, wenn innerhalb eines jeden Polygons ein Punkt (Zentrum) bestimmt werden kann, so dass jede Verbindungslinie zu einem Zentrum eines Nachbarpolygons die gemeinsame Seite der Polygone senkrecht schneidet.
+
# '''Header mit Metadaten:'''
* SubGrid:
+
## Liste mit '''Dimensionen''' (Name und Länge),
*: Die Modelltopografie wird auf dem SubGrid wiedergegeben. Die Auflösung des SubGrid kann deutlich größer als die des Berechnungsgitters sein.
+
## Liste der in der Datei enthaltenen '''Variablen''' (Name, Typ und Dimension(en)),
* Nichtlinearitäten:
+
## '''variablenbezogene Attribute (long_name, units''' etc.), und
*: Das Wasservolumen in einem Berechnungspolygon ist nichtlinear vom Wasserstand abhängig.
+
## '''globale Attribute (title, history''' etc.).
*: Die durchströmte Fläche entlang einer Kante kann ebenfalls nichtlinear vom Wasserstand abhängen.
+
#:Anmerkung: bei der Vergabe der Namen für Attribute und Variablen sind u.a. folgende Standards einzuhalten:
 
+
#:* [http://cf-convention.github.io/ ''NetCDF Climate and Forecast (CF) Metadata Convention''].
[[Datei:sub_grid_bathymetry_g_lang.jpeg|thumb|'''Bild ''Wattgebiet der Elbe''''': (links) Darstellung im ''klassischen'' Gitter; (rechts) Darstellung im Gitter mit SubGrid-Technologie.]] In dem '''Bild ''Wattgebiet der Elbe''''' wird die diskrete Topografie sowohl im ''klassischen'' Gitter (links) als auch im Gitter mit SubGrid (rechts) dargestellt. In dem ''klassischen'', aus Dreiecken aufgebauten, unstrukturierten Gitter, variiert die Tiefe in einem Polygon sowie entlang einer Kante nicht. Wird demgegenüber in einem Berechnungsgitter die SubGrid-Technologie zur Diskretisierung der Bathymetrie genutzt, so erkennt man sehr schnell den großen Detailreichtum dieses Wattgebiets. Dies ist darauf zurückzuführen, dass bei Verwenden der SubGrid-Technologie die Tiefe in jedem Polygon und entlang einer jeden Kante veränderlich sein kann, und somit auch kleinräumige topografische Strukturen naturgetreu in dem Modell wiedergegeben werden können.
+
# '''Daten''' der in der Datei abgelegten Variablen:
 
+
## Daten der '''Koordinaten-Variablen''',
===Berechnungsergebnisse===
+
## Daten der '''Variablen''', für die nur ein Datenrecord in der Datei vorhanden ist, schließlich noch
 
+
## Daten der '''Record-Variablen''' (mit einer unbegrenzten Dimension, z.B. '''time'''), die beliebig oft vorhanden sein können.  
Die Ergebnisse für z. B. Wasserstand und Strömung liegen auf dem (groben) Berechnungsgitter und nicht auf dem (feineren) SubGrid vor. Typischer Weise entspricht der Wasserstand dem mittleren Wasserstand innerhalb eines Polygons, und die Strömungsgeschwindigkeit gibt für jede Kante jeweils den Mittelwert für die aktuell durchströmte Fläche wieder.
+
Die Performance, mit der Daten aus einer CF-NetCDF-Datei gelesen werden können, hängt insbesondere für große Dateien stark von dem Aufbau (der Struktur) der Datei ab. Konkret ist dabei der Umfang der Daten (''data block'', ''chunk'') entscheidend, welche mit einer READ Operation gelesen werden können. Eine Datei gilt dann als gut strukturiert, wenn sowohl Zeitserien (''time series access'') als auch synoptische Datensätze (''spatial access'') mit vergleichbarem Aufwand (Anzahl der READs) gelesen werden können. Diese Ausgewogenheit kann durch eine geeignete Wahl der Größe der Datenpakete (''chunk sizes'') erreicht werden. Für weitergehende Informationen (in Englisch) siehe:
 
+
# [http://www.unidata.ucar.edu/blogs/developer/en/entry/chunking_data_why_it_matters ''Chunking Data: Why it Matters''], und
[[Datei:sub_grid_flow_g_lang.jpeg|thumb|'''Bild ''Synoptische Strömung im Wattgebiet der Elbe''''': (links) Darstellung im ''klassischen'' Gitter; (rechts) Darstellung im Gitter mit SubGrid-Technologie.]]
+
# [http://www.unidata.ucar.edu/blogs/developer/en/entry/chunking_data_choosing_shapes ''Chunking Data: Choosing Shapes'']].
In dem '''Bild ''Synoptische Strömung im Wattgebiet der Elbe''''' wird links die Strömung für das ''klassische'', und rechts für das Gitter mit SubGrid dargestellt. Man erkennt, dass im klassischen Fall jedes Polygon nur gänzlich von Wasser bedeckt oder vollkommen trockengefallen sein kann. In dem Gitter mit SubGrid kann ein Polygon (und eine Kante) hingegen auch ''teilweise'' von Wasser bedeckt sein. Damit gelingt eine naturähnlichere Simulation der Überflutung von Wattgebieten, insbesondere das rasche Vordringen des Wassers entlang der tiefen Rinnen.
+
|nutzerprogramme=[[ArcGIS: Daten aus CF-NetCDF-Datei importieren|ArcGIS]], [[DATACONVERT]], [[GRIDCONVERT]], [[NCAGGREGATE]], [[NCANALYSE]], [[NCDELTA]], [[NCPLOT]], [[NetCDF Operators]], [[QUICKPLOT]], [[UNK]], [[UNTRIM2]], [[UNTRIM2007]]
 
+
|programmiersprache=Fortran90
===Vorteile===
+
|dateiform=UNFORMATTED
 
+
|dateizugriff=DIRECT
# Die Topografie kann unabhängig von der Auflösung des Berechnungsgitters beschrieben werden.
+
|dateiendung=.nc
# Die Genauigkeit, mit der die Topografie wiedergegeben werden kann, wird prinzipiell nur durch die Genauigkeit der gemessenen Daten begrenzt.
+
|schreibmodule=
# Für jede Wasserspiegellage entspricht das Wasservolumen in dem Modell dem in der Natur vorhandenen Wasservolumen. Gleiches gilt für die durchströmten Querschnitte.
+
$PROGHOME/fortran/lib/l_grid/*/mod_p_l_grid_ui.f90 oder <br />
# Überflutete und trocken gefallene Gebiete können präzise beschrieben werden.
+
$PROGHOME/fortran/lib/h_grid/*/mod_p_h_grid_ui.f90 oder <br />
# Die gleiche Genauigkeit hinsichtlich der Diskretisierung der Bathymetrie wird mit SubGrid zu deutlich geringeren CPU-Kosten erzielt, als dies mit einem ''klassischen'' Berechnungsgitter, ohne SubGrid-Technologie, möglich wäre.
+
$PROGHOME/fortran/lib/p_grid/*/mod_p_p_grid_ui.f90 oder <br />
 
+
$PROGHOME/fortran/lib/io_insel/*/mod_io_insel_ui.f90 oder <br />
==Physikalische Prozesse==
+
$PROGHOME/fortran/lib/k_model/*/mod_p_k_model_ui.f90<br />
 
+
unter Einsatz der NetCDF-Ausgabe des io_dataset-Pakets<br/>
* reynoldsgemittelte Navier-Stokes-Gleichung (RANS)
+
$PROGHOME/fortran/lib/io_dataset/*/mod_io_dataset_ui<br />
** lokale Beschleunigung (Massenträgheit)
+
im Zusammenspiel mit aktuell installierter externer NetCDF-Library
** advektive Beschleunigung
+
|lesemodule= noch keine
** Coriolisbeschleunigung
+
|kontakt_original=[mailto:guenther.lang@baw.de G. Lang], [mailto:susanne.spohr@baw.de S. Spohr]
** barotroper Druckgradient
+
|kontakt_pflege=[mailto:guenther.lang@baw.de G. Lang], [mailto:susanne.spohr@baw.de S. Spohr]
** barokliner Druckgradient
+
|beispieldatei=   
** hydrostatische oder nicht-hydrostatische Druckverteilung
+
$PROGHOME/examples/lib/l_grid/lg.all_CF-NetCDF_Info.nc <br />
** horizontale turbulente Viskosität (lokal isotrop, zeit- und ortsvariabel)
+
$PROGHOME/examples/lib/h_grid/g05-Content.CF-NetCDF.nc <br />
** turbulente Viskosität in Vertikalrichtung unter Berücksichtigung der vertikalen Dichteschichtung
+
$PROGHOME/examples/lib/h_grid/UNTRIM-Content.CF-NetCDF.nc <br />
** Bodenreibung
+
$PROGHOME/examples/lib/h_grid/UTRSUB-Content.CF-NetCDF.nc <br />
** Impulseintrag durch den Wind
+
$PROGHOME/examples/lib/io_insel/insel.netcdf-cf.nc <br />
** Quellen und Senken
+
$PROGHOME/examples/lib/k_model/2D.int.HPA.2d-hn-md.3h.xe.nc
** horizontale seegangsinduzierte Beschleunigung (durch Radiation Stress)
+
}}
 
 
* Transport konservativer Tracer
 
** lokale Veränderung
 
** advektiver Transport durch die Strömung
 
** optionaler flux limiter : Minmod, van Leer oder Superbee
 
** horizontale turbulente Diffusivität (lokal isotrop, zeit- und ortsvariabel)
 
** turbulente Diffusivität in Vertikalrichtung unter Berücksichtigung der vertikalen Dichteschichtung
 
** Sinkgeschwindigkeit, Deposition und Erosion (bei Schwebstoffen)
 
** Wärmeaustausch mit der Atmosphäre und der Gewässersohle (bei Wärmetransport)
 
** Quellen und Senken
 
** Senken mit unmittelbarer Wiedereinleitung an einem anderen Ort, mit der Möglichkeit zur Abwandlung z.B. der Einleitungstemperatur sowie des Einleitungssalzgehalts gegenüber den entsprechenden Entnahmewerten.
 
 
 
==Berechnungsergebnisse==
 
 
 
* Wasserspiegelauslenkung der freien Oberfläche
 
* Strömungsgeschwindigkeit
 
* Tracerkonzentration (z.B. Salzgehalt, Temperatur, Schwebstoffgehalt)
 
* hydrodynamischer Druck
 
 
 
Anmerkung: Bei zwei-dimensionaler Modellrechnung entsprechen die Ergebnisse den über die Wassertiefe gemittelten Werten.
 
 
 
==Veröffentlichungen==
 
 
 
# Casulli, V. (2008), ''A high-resolution wetting and drying algorithm for free-surface hydrodynamics'', International Journal for Numerical Methods in Fluids, Volume 60, Issue 4, pages 391 - 408. See [http://onlinelibrary.wiley.com/doi/10.1002/fld.1896/abstract abstract].
 
# Casulli, V. and Stelling, G. S. (2010), ''Semi-implicit sub grid modelling of three-dimensional free-surface flows'', International Journal for Numerical Methods in Fluids, online available, advance of print. See [http://onlinelibrary.wiley.com/doi/10.1002/fld.2361/abstract abstract].
 
 
 
==Vorträge==
 
 
 
* [http://www.baw.de/downloads/wasserbau/mathematische_verfahren/pdf/a_395_5_03_70150_tn12_2010_11_30_UnTRIM_SubGrid_g_lang.pdf UNTRIM<sup>2</sup> (sub grid) at BAW Hamburg], Vortragsfolien vom 11. November 2010, ca. 15 MB.
 
 
 
==Validierungsdokument==
 
 
 
Derzeit nicht verfügbar.
 
 
 
==Benutzer-Schnittstellen-Beschreibung==
 
 
 
Dieses Dokument enthält eine detaillierte Beschreibung aller dem Anwender des Simulationsverfahrens zur Verfügung stehenden Schnittstellen-Funktionen. Folgende Schnittstellen-Themen werden behandelt:
 
 
 
# Setzen von Daten (set-interfaces),
 
# Holen von Daten (get-interfaces),
 
# Testen des Gitters und der Genauigkeit der iterativ berechneten Lösung (check-routines),
 
# vom Berechnungskern gerufene externe Routinen (user-interface-routines) zum,
 
## Definieren der Namen der Dateien mit den Standard-Eingabedaten, zum
 
## Setzen des Anfangszustands, zum
 
## Setzen der Randwerte für jeden Berechnungszeitschritt, und zum
 
## Holen der Berechnungsergebnisse.
 
# tabellarische Aufzählung aller SET- und GET-Schnittstellen,
 
# Beispiele zu den Dateien mit den Standard-Eingabedaten.
 
 
 
Die PDF-Version der englischen Dokument-Fassung kann frei heruntergeladen werden:
 
 
 
* (ca. 1.41 MB) [http://www.baw.de/downloads/wasserbau/mathematische_verfahren/pdf/Simulationsverfahren_Kueste_untrim2-ui.pdf UNTRIM<sup>2</sup> (version August 2009) user interface description] (in Englisch)
 
 
 
==MPI-Parallelisierung==
 
 
 
Derzeit nicht realisiert.
 
 
 
==BAW-spezifische Informationen==
 
 
 
===Gitternetzgenerierung===
 
 
 
Für das Erzeugen des von UNTRIM2 benötigten unstrukturierten orthogonalen Gitters mit SubGrid-Bathymetrie wird der Gitternetz-Generator JANET eingesetzt, eine Entwicklung der Firma [http://www.smileconsult.de/ SmileConsult]. Weitere Informationen zur Einbindung von JANET bei der BAW finden sich auf dem entsprechenden [[JANET|JANET-Programmkennblatt]].
 
 
 
===Simulation===
 
 
 
Das mathematische Verfahren UNTRIM2 ist derzeit nur unvollständig in die Softwareumgebung der BAW eingebunden. Weitere Detailinformationen finden sich auf dem [[UNTRIM2|UNTRIM2-Programmkennblatt]].
 
 
 
===Grafische Darstellung der Berechnungsergebnisse===
 
 
 
Für die grafische Darstellung der von UNTRIM2 erzeugten Ergebnisse stehen mehrere Methoden bereit. Zu den wichtigsten zählen,
 
 
 
* SGHVIEW2D, für flächenhaft vorliegende Daten,
 
* [[VVIEW2D]] und/oder [[LQ2PRO]], für auf Quer- und Längsschnitten vorliegende Daten, sowie
 
* [[GVIEW2D]], für an Einzelpositionen vorliegende Daten.
 
 
 
===Analyse der Berechnungsergebnisse===
 
 
 
Für eine [[Analyse der Berechnungsergebnisse]] stehen verschiedene Methoden für unterschiedlichste Fragestellungen bereit. Man beachte jedoch, dass eine Analyse derzeit nur für die auf Profilen sowie an Einzelpositionen vorliegenden Berechnungsergebnisse durchgeführt werden kann.
 
 
 
===Kopplung mit weiteren Sub-Modellen===
 
 
 
Derzeit nicht realisiert.
 
 
 
----
 
zurück zu [[Modellverfahren für den Küstenbereich und Ästuare]]
 
 
 
----
 
[[Strukturübersicht]]
 

Version vom 5. Mai 2015, 13:28 Uhr

Basisinformationen

Datei-Typ

cf-netcdf.nc

Version

Mai 2015

Beschreibung

Mai 2015

Bedeutung der Datei

Datei-Inhalt

  1. Header mit Metadaten:
    1. Liste mit Dimensionen (Name und Länge),
    2. Liste der in der Datei enthaltenen Variablen (Name, Typ und Dimension(en)),
    3. variablenbezogene Attribute (long_name, units etc.), und
    4. globale Attribute (title, history etc.).
    Anmerkung: bei der Vergabe der Namen für Attribute und Variablen sind u.a. folgende Standards einzuhalten:
  2. Daten der in der Datei abgelegten Variablen:
    1. Daten der Koordinaten-Variablen,
    2. Daten der Variablen, für die nur ein Datenrecord in der Datei vorhanden ist, schließlich noch
    3. Daten der Record-Variablen (mit einer unbegrenzten Dimension, z.B. time), die beliebig oft vorhanden sein können.

Die Performance, mit der Daten aus einer CF-NetCDF-Datei gelesen werden können, hängt insbesondere für große Dateien stark von dem Aufbau (der Struktur) der Datei ab. Konkret ist dabei der Umfang der Daten (data block, chunk) entscheidend, welche mit einer READ Operation gelesen werden können. Eine Datei gilt dann als gut strukturiert, wenn sowohl Zeitserien (time series access) als auch synoptische Datensätze (spatial access) mit vergleichbarem Aufwand (Anzahl der READs) gelesen werden können. Diese Ausgewogenheit kann durch eine geeignete Wahl der Größe der Datenpakete (chunk sizes) erreicht werden. Für weitergehende Informationen (in Englisch) siehe:

  1. Chunking Data: Why it Matters, und
  2. Chunking Data: Choosing Shapes].

Programme, welche diesen Datei-Typ benutzen

ArcGIS, DATACONVERT, GRIDCONVERT, NCAGGREGATE, NCANALYSE, NCDELTA, NCPLOT, NetCDF Operators, QUICKPLOT, UNK, UNTRIM2, UNTRIM2007

Weitere Informationen

Programmiersprache

Fortran90

Datei-Form

UNFORMATTED

Datei-Zugriff

DIRECT

Datei-Endung

.nc

Schreib-Unterprogramm(e)/Modul(e)

$PROGHOME/fortran/lib/l_grid/*/mod_p_l_grid_ui.f90 oder
$PROGHOME/fortran/lib/h_grid/*/mod_p_h_grid_ui.f90 oder
$PROGHOME/fortran/lib/p_grid/*/mod_p_p_grid_ui.f90 oder
$PROGHOME/fortran/lib/io_insel/*/mod_io_insel_ui.f90 oder
$PROGHOME/fortran/lib/k_model/*/mod_p_k_model_ui.f90
unter Einsatz der NetCDF-Ausgabe des io_dataset-Pakets
$PROGHOME/fortran/lib/io_dataset/*/mod_io_dataset_ui
im Zusammenspiel mit aktuell installierter externer NetCDF-Library

Lese-Unterprogramm(e)/Modul(e)

noch keine

Originalversion

G. Lang, S. Spohr

Pflege

G. Lang, S. Spohr

Beispiel-Datei

$PROGHOME/examples/lib/l_grid/lg.all_CF-NetCDF_Info.nc
$PROGHOME/examples/lib/h_grid/g05-Content.CF-NetCDF.nc
$PROGHOME/examples/lib/h_grid/UNTRIM-Content.CF-NetCDF.nc
$PROGHOME/examples/lib/h_grid/UTRSUB-Content.CF-NetCDF.nc
$PROGHOME/examples/lib/io_insel/insel.netcdf-cf.nc
$PROGHOME/examples/lib/k_model/2D.int.HPA.2d-hn-md.3h.xe.nc


zurück zu: Dateikennblätter


Strukturübersicht