Так называемые квадратные и октридные сетки весьма привлекательны для приложений, требующих адаптивного уточнения сетки. Они, например, используются в Gerris и Paramesh . Кто-нибудь знает о хорошем формате файлов для таких сеток и поддерживает программное обеспечение для визуализации? Смотрите также этот ответ в FAQ по Gerris. Единственный потенциальный кандидат, о котором я сейчас знаю, это класс VTK HyperOctree , но, похоже, документации почти нет.
В качестве конкретного примера сетки рассмотрим разреженную сетку октодеревьев, состоящую из блоков, каждый из которых содержит 8 × 8 × 8 = 512 ячеек. Мои текущие стратегии в Визите / Paraview:
- Запишите сетку в виде неструктурированного файла VTK. Это дорого для больших наборов данных и не использует «структурированность» квад / октре.
- Соберите соседние «ящики» в дереве в большие блоки и напишите блочную сетку. Это включает в себя довольно много дополнительного кода и теряет информацию о подключении, встроенную в quad / octree.
Обновление Если в настоящее время нет подходящего формата для прямой записи и визуализации сетки октодеревьев, я был бы признателен за предложения относительно формата файла, который можно использовать для записи октодерева в виде блочно-структурированной сетки. В идеале этот формат:
- Имеет относительно простое определение / реализацию, в идеале с открытым исходным кодом и совместимостью с C / Fortran.
- Может эффективно обрабатывать большое количество блоков сетки (например, 1000 или более).
- Позволяет легко указать связность блоков сетки, в частности на границах уточнения.
В настоящее время я использую Silo для этой цели, но я ищу что-то, что получило бы лучшие результаты по вышеуказанным трем пунктам (меньше, быстрее, проще).
источник
Ответы:
В моем случае, когда я выполнял многоуровневое уточнение, я использовал для записи файлов сетки на разных уровнях отдельно. Обычно уровень 0 является базовой грубой сеткой, которая остается фиксированной. А для уровня 1 и выше я использовал разные файлы для разных патчей. Скажем, если у вас есть 5 хороших патчей на уровне 1, моя стратегия заключалась в том, чтобы написать пять разных файлов в конце моей программы, что-то вроде Level_1_Patch_1, Level_1_Patch_2 ..., что можно динамически сделать в C (никогда не работало в Fortran).
Я должен упомянуть здесь, что я использовал конечно-разностную структурированную сеточную систему.
Итак, однажды у меня были все уровни и их файлы .PLT или .DAT. Я импортирую их все в TecPLOT. Например, когда я писал свой двухуровневый код с парочкой мелких патчей на уровне 1, ваш меш должен выглядеть так в Tecplot.
Я не очень хорошо разбираюсь в работе с необработанными сетками, но структурированные хорошо обрабатываются в Tecplot
источник