Sogenannte Quadtree- und Octree- Gitter sind für Anwendungen, die eine adaptive Netzverfeinerung erfordern, sehr attraktiv. Sie werden zum Beispiel in Gerris und Paramesh verwendet . Ist jemandem ein gutes Dateiformat für solche Raster und unterstützende Visualisierungssoftware bekannt? Siehe auch diese Antwort in den Gerris-FAQ. Der einzige potenzielle Kandidat, den ich derzeit kenne , ist die VTK HyperOctree- Klasse, aber es scheint fast keine Dokumentation zu geben.
Betrachten Sie als spezifisches Beispiel eines Netzes ein spärlich verfeinertes Octree-Gitter, das aus Feldern besteht, die jeweils 8 × 8 × 8 = 512 Zellen enthalten. Meine aktuellen Strategien in Visit / Paraview sind:
- Schreiben Sie das Raster als unstrukturierte VTK-Datei. Dies ist für größere Datensätze teuer und nutzt die "Struktur" des Quad / Octree nicht aus.
- Sammeln Sie benachbarte 'Kästchen' im Baum in größeren Blöcken und schreiben Sie ein blockstrukturiertes Raster. Dies erfordert eine Menge zusätzlichen Codes und verliert die im Quad / Octree eingebetteten Konnektivitätsinformationen.
Update Wenn es derzeit kein praktikables Format zum direkten Schreiben und Visualisieren eines Octree-Rasters gibt, würde ich Vorschläge für ein Dateiformat begrüßen, mit dem das Octree als blockstrukturiertes Raster geschrieben werden kann. Idealerweise dieses Format:
- Hat eine relativ einfache Definition / Implementierung, idealerweise Open Source und mit C / Fortran-Kompatibilität.
- Kann eine große Anzahl von Gitterblöcken (z. B. 1000 oder mehr) effizient verarbeiten.
- Ermöglicht die einfache Angabe der Konnektivität von Gitterblöcken, insbesondere an Verfeinerungsgrenzen.
Ich verwende derzeit Silo für diesen Zweck, suche aber nach etwas, das bei den oben genannten drei Punkten besser abschneidet (kleiner, schneller, einfacher).
quelle
Antworten:
In meinem Fall, als ich die mehrstufige Verfeinerung durchführte, habe ich Rasterdateien auf verschiedenen Ebenen separat geschrieben. Normalerweise ist die Stufe 0 ein grobes Grundnetz, das fest bleibt. Und für Level 1 und höher habe ich verschiedene Dateien für verschiedene Patches verwendet. Angenommen, Sie haben 5 feine Patches auf Ebene 1, meine Strategie bestand darin, am Ende meines Programms fünf verschiedene Dateien zu schreiben, etwa Level_1_Patch_1, Level_1_Patch_2 ..., die dynamisch in C ausgeführt werden konnten (in Fortran nie funktioniert).
Ich sollte hier erwähnen, dass ich ein strukturiertes Rastersystem mit endlichen Differenzen verwendet habe.
Also hatte ich einmal alle Ebenen und ihre .PLT- oder .DAT-Dateien. Ich importiere sie alle in TecPLOT. Wenn ich beispielsweise meinen zweistufigen Code mit ein paar feinen Patches auf Ebene 1 geschrieben habe, sollte Ihr Netz in Tecplot so aussehen.
Ich bin nicht sehr vertraut mit dem Umgang mit nicht strukturierten Gittern, aber strukturierte werden in Tecplot gut behandelt
quelle