Каков общий формат файла / данных для сетки (для FEM)?

13

Я разрабатываю FEM-симуляцию. Для раннего тестирования я буду использовать простой самописный меш и визуализацию графа сетки. Но я хочу подготовить свою программу для использования данных, сгенерированных существующим мешем, и вывести их на существующие инструменты визуализации.

Существует ли рекомендуемый (квази) стандарт для формата файла и внутреннего формата данных для (FEM) сеток?

Майкл
источник
4
Исход II для чтения в сетке и ВТК для записи вывода.
Стали

Ответы:

8

Краткий ответ - нет, стандартного формата нет. Но есть некоторые общие, такие как Gmsh для ввода / вывода и VTK для вывода.

Прежде чем принять решение, вам нужно выяснить, что вы хотите сделать. Если вы хотите какое-то время иметь свою (маленькую) программу, то вы можете выбрать формат, который лучше всего соответствует вашему вкусу и потребностям. Если вы планируете в будущем перейти на более «крупную» программу, было бы неплохо начать управлять их форматами файлов прямо сейчас. Если вы планируете использовать коммерческие пре / постпроцессоры, то я предлагаю вам придерживаться их форматов, так как они «обновляют» их с каждой новой версией, и это может быть головной болью.

Ниже я перечислю некоторые варианты (с открытым исходным кодом).

Предварительная обработка

Постобработка

  • Визуализация с ParaView / MayaVi . Затем используйте форматы файлов VTK . Вы можете проверить руководство пользователя Paraview здесь .
  • Вы также можете сделать пост-обработку в Gmsh.
  • Salome-Meca - еще один вариант постобработки, он отлично работает с VTK.
Никогуаро
источник
Я думаю, что VTK является правильным форматом для меня: 1. Я могу использовать его в качестве входных данных для сетки и в качестве выходных данных для последующей обработки. 2. Существует библиотека, чтобы справиться с этим. 3. Кажется, это часто встречается, например, gmesh может генерировать его. Эти предположения в порядке?
Майкл
1
1. Вы должны учитывать, что включение свойств материала, BC и ограничений в вашу модель. Я не совсем уверен, как реализовать их в VTK, но, вероятно, вы можете найти обходной путь. 2. Да, но это зависит от языка программирования по вашему выбору. 3. Да, это распространено. Вы можете использовать напрямую vtk(в C ++, Java или Python) Mayavi, Paraview, VisIt или даже Chrome : P. И, да, вы можете генерировать их в Gmesh, хотя не уверены насчет физических групп.
Никогуаро
3

На самом деле существует стандарт для этого: ISO / TS 10303 (начиная с частей с 1380 по 1386).

До похищения со стороны ИСО эта инициатива, начавшаяся еще в 1980-х годах, была известна как PDES / STEP. См. Https://www.pdesinc.org/index.html.

Но я не верю, что кто-то его использует, если только он не работает в среде, где это является обязательным требованием. Большое количество международных комитетов проделали отличную работу по подрыву первоначальных благих намерений и разработали стандарт, который пытается охватить все - от описания общей структуры управления компанией до правильного формата написания дат и времени (и нет, я не шучу)

alephzero
источник
3

Количество форматов файлов для FEM смешно, отчасти из-за того, что в прошлом каждый программный пакет реализовывал свой собственный формат.

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

(Из xkcd .)

Я создал meshio для облегчения конвертации между форматами, поэтому если вы используете любой формат, поддерживаемый meshio, вы сможете легко переключаться в будущем.

Из всех известных мне форматов лично я использую VTU и XDMF.

Нико Шлёмер
источник
1

Помимо формата файлов MSH, приведенного в ответе Уэса, я также использую формат файлов MESH Gamma3. Если вы программируете на C / C ++, существует простая в использовании программная библиотека LM6 для загрузки / сохранения в этом формате файла [1]

[1] https://www.rocq.inria.fr/gamma/gamma/Membres/CIPD/Loic.Marechal/Research/LM6.html

BrunoLevy
источник
0

Я второй использование VTK для вывода файлов. Если вы хотите использовать очень общую структуру сетки, я бы указал вам в направлении библиотеки CGNS (Общая система обозначений CFD), которая представляет собой формат сетки с открытым исходным кодом и собственной библиотекой, поддерживаемой консорциумом (включая Boeing и NASA). , Чтение списка узлов, свойств, граничных условий и т. Д. Чрезвычайно полезно с этой библиотекой, а сама библиотека очень легко компилируется. Библиотека находится на C ++, но она может быть связана с Fortran.

Мы используем его в нашем внутреннем коде, и я обнаружил, что это очень эффективный формат. Он использует HDF5 под капотом для двоичных файлов. Кроме того, ANSYS, Salome, GMSH поддерживают экспорт в этот формат в различной степени. Вот github: https://cgns.github.io/

болтун
источник