Я разрабатываю FEM-симуляцию. Для раннего тестирования я буду использовать простой самописный меш и визуализацию графа сетки. Но я хочу подготовить свою программу для использования данных, сгенерированных существующим мешем, и вывести их на существующие инструменты визуализации.
Существует ли рекомендуемый (квази) стандарт для формата файла и внутреннего формата данных для (FEM) сеток?
Ответы:
Краткий ответ - нет, стандартного формата нет. Но есть некоторые общие, такие как Gmsh для ввода / вывода и VTK для вывода.
Прежде чем принять решение, вам нужно выяснить, что вы хотите сделать. Если вы хотите какое-то время иметь свою (маленькую) программу, то вы можете выбрать формат, который лучше всего соответствует вашему вкусу и потребностям. Если вы планируете в будущем перейти на более «крупную» программу, было бы неплохо начать управлять их форматами файлов прямо сейчас. Если вы планируете использовать коммерческие пре / постпроцессоры, то я предлагаю вам придерживаться их форматов, так как они «обновляют» их с каждой новой версией, и это может быть головной болью.
Ниже я перечислю некоторые варианты (с открытым исходным кодом).
Предварительная обработка
Постобработка
источник
vtk
(в C ++, Java или Python) Mayavi, Paraview, VisIt или даже Chrome : P. И, да, вы можете генерировать их в Gmesh, хотя не уверены насчет физических групп.Вы можете попробовать формат файла MSH Gmsh или нейтральный формат файла GAMBIT .
источник
На самом деле существует стандарт для этого: ISO / TS 10303 (начиная с частей с 1380 по 1386).
До похищения со стороны ИСО эта инициатива, начавшаяся еще в 1980-х годах, была известна как PDES / STEP. См. Https://www.pdesinc.org/index.html.
Но я не верю, что кто-то его использует, если только он не работает в среде, где это является обязательным требованием. Большое количество международных комитетов проделали отличную работу по подрыву первоначальных благих намерений и разработали стандарт, который пытается охватить все - от описания общей структуры управления компанией до правильного формата написания дат и времени (и нет, я не шучу)
источник
Количество форматов файлов для FEM смешно, отчасти из-за того, что в прошлом каждый программный пакет реализовывал свой собственный формат.
(Из xkcd .)
Я создал meshio для облегчения конвертации между форматами, поэтому если вы используете любой формат, поддерживаемый meshio, вы сможете легко переключаться в будущем.
Из всех известных мне форматов лично я использую VTU и XDMF.
источник
Помимо формата файлов MSH, приведенного в ответе Уэса, я также использую формат файлов MESH Gamma3. Если вы программируете на C / C ++, существует простая в использовании программная библиотека LM6 для загрузки / сохранения в этом формате файла [1]
[1] https://www.rocq.inria.fr/gamma/gamma/Membres/CIPD/Loic.Marechal/Research/LM6.html
источник
Я второй использование VTK для вывода файлов. Если вы хотите использовать очень общую структуру сетки, я бы указал вам в направлении библиотеки CGNS (Общая система обозначений CFD), которая представляет собой формат сетки с открытым исходным кодом и собственной библиотекой, поддерживаемой консорциумом (включая Boeing и NASA). , Чтение списка узлов, свойств, граничных условий и т. Д. Чрезвычайно полезно с этой библиотекой, а сама библиотека очень легко компилируется. Библиотека находится на C ++, но она может быть связана с Fortran.
Мы используем его в нашем внутреннем коде, и я обнаружил, что это очень эффективный формат. Он использует HDF5 под капотом для двоичных файлов. Кроме того, ANSYS, Salome, GMSH поддерживают экспорт в этот формат в различной степени. Вот github: https://cgns.github.io/
источник