Візуалізація квадратних та октрисових сіток


10

Так звані квадрантами і Octree сітка дуже приваблива для застосувань , що вимагають адаптивне уточнення сітки. Наприклад, вони використовуються в Геррісі та Парамеші . Хтось знає про хороший формат файлів для таких сіток та підтримуюче програмне забезпечення для візуалізації? Дивіться також цю відповідь у FAQ про Герріса. Єдиний потенційний кандидат, про який я зараз знаю, - це клас VTK HyperOctree , але документації, здається, майже немає.

В якості конкретного прикладу сітки розглянемо рідко вдосконалену сітку октрису, що складається з коробок, кожен з яких містить комірок. Мої поточні стратегії відвідування / паравізу:1048×8×8=512

  1. Сітку запишіть як неструктурований файл VTK. Це дорого для великих наборів даних і не використовує «структурованість» квадрати / октре.
  2. Зберіть сусідні «скриньки» на дереві в більші блоки та напишіть структурну структуру блоків. Це передбачає небагато додаткового коду і втрачає інформацію про підключення, вбудовану в quad / octree.

Оновлення Якщо в даний час немає життєздатного формату для прямого написання та візуалізації сітки octree, я буду вдячний для пропозицій щодо формату файлу, який може бути використаний для написання octree як блокової структурованої сітки. В ідеалі такий формат:

  1. Має відносно просте визначення / реалізацію, в ідеалі з відкритим кодом та сумісністю з C / Fortran.
  2. Може ефективно працювати з великою кількістю блоків сітки (наприклад, 1000 або більше).
  3. Дозволяє легко визначати сполучуваність блоків сітки, зокрема на межі уточнення.

Наразі я використовую для цієї мети силос , але я шукаю те, що краще оцінюється за трьома точками (меншими, швидшими, простішими).


1
Чому неструктурована сітка створює занадто багато даних? Це було б лише 5 мільйонів клітин. Це досить невеликий набір даних для візуалізації в програмі "Відвідування" або "Парагляд".
Вольфганг Бангерт

Оскільки координати та з'єднання вказані на комірку, а не лише один раз на коробку (містить, наприклад, 512 комірок). Для більших наборів даних (наприклад, 20 мільйонів комірок або більше) візуалізація стає набагато повільнішою, ніж при блокованій сітці, особливо якщо значні частини сітки знаходяться на одному рівні уточнення.
Jannis Teunissen

Можливо, список підтримуваних форматів файлів у програмі Visit корисний для цього питання: visitusers.org/…
Jannis Teunissen

1
Можливо, також подивіться, що роблять CHOMBO, SAMRAI тощо для візуалізації?
Abhilash Reddy M

1
Додати BoxLib до списку. Вони розробили пакет під назвою AMRVis для візуалізації даних AMR. Код доступний на веб-сайті LBL.
Abhilash Reddy M

Відповіді:


2

У моєму випадку, коли я робив багаторівневе вдосконалення, я писав сіткові файли на різних рівнях окремо. Зазвичай рівень 0 - це основна груба сітка, яка залишається нерухомою. А для рівня 1 і вище я використовував різні файли для різних патчів. Скажіть, якщо у вас є 5 тонких патчів на рівні 1, моя стратегія полягала в тому, щоб записати п'ять різних файлів в кінці моєї програми, щось на зразок Level_1_Patch_1, Level_1_Patch_2 ..., що динамічно можна зробити в C (ніколи не працював у Fortran).

        char filename1[64];
        sprintf(filename1, "Patch%d.dat", patch_number);

        FILE *file;
        file= fopen(filename1, "wb");

Тут я повинен зазначити, що я використовував кінцеву різницю, структуровану сітку.

Тож колись у мене були всі рівні та їх файли .PLT або .DAT. Я імпортую їх усіх у TecPLOT. Наприклад, коли я писав свій дворівневий код з парою тонких патчів на рівні 1, ваша сітка повинна виглядати так у Tecplot.

введіть тут опис зображення

Я не дуже знайомий з поводженням з неструктурованими сітками, але структуровані з ними добре обробляються в Tecplot


Цікаво читати про ваш підхід, але це не здається життєздатним для великого октару, тоді вам доведеться писати та читати тисячі файлів, що зазвичай досить повільно.
Jannis Teunissen

1
@JannisTeunissen: Якщо ви збираєтесь структурувати рішення щодо блоку, для Tecplot всі блоки можна записати в один і той же файл, що і окремі "Зони" (термінологія tecplot). Вони не повинні бути окремими файлами. Однак паралельного вводу / виводу немає. Великі набори даних задушаться. Файли tecplot можна завантажувати в ParaView, хоча (Tecplot є власником). Формат ascii дуже простий. Доклавши певних зусиль, ви можете безпосередньо записувати бінарні файли також у форматі tecplot. Існує офіційна бібліотека під назвою TecIO, до якої ви можете зв'язати свій код, щоб легше створити файли.
Abhilash Reddy M

Я не думаю, що це би спрацювало краще, ніж мій сучасний підхід із силосом, що (що важливо) є відкритим кодом. Зауважте, що файли ASCII не дуже життєздатні для цієї проблеми.
Jannis Teunissen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.