Tzw QuadTree i Octree ruszty są dość atrakcyjne dla zastosowań wymagających adaptacyjne wyrafinowanie oczek. Są one używane na przykład w Gerris i Paramesh . Czy ktoś wie o dobrym formacie pliku dla takich siatek i oprogramowaniu do wizualizacji? Zobacz także tę odpowiedź w FAQ Gerris. Jedynym potencjalnym kandydatem, którego obecnie znam, jest klasa HyperOctree VTK , ale wydaje się, że prawie nie ma dokumentacji.
Jako szczególny przykład siatki rozważ słabo dopracowaną siatkę oktetów, składającą się z pól, z których każde zawiera komórek. Moje obecne strategie w Visit / Paraview to: 8 × 8 × 8 = 512
- Napisz siatkę jako nieustrukturyzowany plik VTK. Jest to kosztowne w przypadku większych zestawów danych i nie wykorzystuje „struktury” quad / octree.
- Zbierz sąsiednie „pudełka” w drzewie w większe bloki i napisz siatkę o strukturze bloków. Wymaga to sporo dodatkowego kodu i traci informacje o łączności osadzone w quad / octree.
Aktualizacja Jeśli obecnie nie ma realnego formatu do bezpośredniego pisania i wizualizacji siatki oktree, byłbym wdzięczny za sugestie dotyczące formatu pliku, którego można użyć do zapisania oktree jako siatki o strukturze blokowej. Idealnie ten format:
- Ma stosunkowo prostą definicję / implementację, idealnie open source i kompatybilność z C / Fortran.
- Może efektywnie obsługiwać dużą liczbę bloków siatki (np. 1000 lub więcej).
- Pozwala w łatwy sposób określić łączność bloków siatki, w szczególności na granicach uszlachetnienia.
Obecnie używam Silo do tego celu, ale szukam czegoś, co uzyska lepsze wyniki w powyższych trzech punktach (mniejszym, szybszym, prostszym).
źródło
Odpowiedzi:
W moim przypadku, gdy robiłem udoskonalanie wielopoziomowe, pisałem pliki siatki na różnych poziomach osobno. Zwykle poziom 0 jest podstawową grubą siatką, która pozostaje stała. A dla poziomu 1 i wyższego użyłem różnych plików dla różnych łatek. Powiedzmy, że jeśli masz 5 poprawek na poziomie 1, moją strategią było napisanie pięciu różnych plików na końcu mojego programu, coś w rodzaju Level_1_Patch_1, Level_1_Patch_2 ... które można dynamicznie wykonać w C (nigdy nie działało w Fortranie).
Powinienem tutaj wspomnieć, że zastosowałem system siatki strukturalnej o skończonej różnicy.
Kiedyś miałem już wszystkie poziomy i ich pliki .PLT lub .DAT. Wszystkie importuję do TecPLOT. Na przykład, kiedy pisałem mój dwupoziomowy kod z kilkoma drobnymi łatkami na poziomie 1, twoja siatka powinna wyglądać tak w Tecplot.
Nie jestem zbyt obeznany z obsługą niestrucutowanych siatek, ale strukturyzowane są dobrze obsługiwane w Tecplot
źródło