Що таке загальний формат файлу / даних для сітки (для FEM)?


13

Я розробляю моделювання FEM. Для раннього тестування я використовуватиму просту мережу, написану самостійно та візуалізацію сітчастого графіка. Але я хочу підготувати свою програму до використання даних, згенерованих наявною мережею, та виведення їх у існуючі засоби візуалізації.

Чи є рекомендований (квазі-) стандарт для формату файлів та внутрішнього формату даних для (FEM) сіток?


4
Вихід II для читання в сітці та VTK для запису виводу.
stali

Відповіді:


8

Коротка відповідь - ні, стандартного формату немає. Але є деякі поширені, такі як Gmsh для введення / виводу та VTK для виведення.

Перш ніж приймати рішення, потрібно з’ясувати, що ви хочете зробити. Якщо ви хочете деякий час мати свою (маленьку) програму, тоді ви можете вибрати той формат, який найкраще відповідає вашому смаку та потребам. Якщо ви плануєте в майбутньому перейти на "більшу" програму, було б непогано почати керувати їх форматами файлів прямо зараз. Якщо ви плануєте використовувати комерційні до / після процесорів, то я пропоную дотримуватися їх форматів, оскільки вони "оновлюють" ті, що мають кожну нову версію, і це може бути болем у голові.

Нижче я перелічу деякі (з відкритим кодом) варіанти.

Попередня обробка

Подальша обробка

  • Візуалізація за допомогою Паравізу / Маяві . Потім використовуйте формати файлів VTK . Ви можете переглянути посібник користувача Paraview тут .
  • Ви також можете зробити пост-обробку в Gmsh.
  • Salome-Meca - ще один варіант для післяобробки, він чудово працює з VTK.

Я думаю, що VTK - це правильний формат для мене: 1. Я можу використовувати його як вхід для сітки та як вихід для післяобробки. 2. Існує бібліотека, яка обробляє її. 3. Це здається загальним, наприклад, gmesh може генерувати його. Ці припущення в порядку?
Майкл

1
1. Вам потрібно врахувати, що включення у вашу модель властивостей матеріалу, БЧ та обмежень. Я не зовсім впевнений, як їх реалізувати у VTK, але, ймовірно, ви можете знайти вирішення. 2. Так, але це залежить від мови вибору програмування. 3. Так, це звичайне явище. Ви можете використовувати безпосередньо vtk(на C ++, Java або Python), Mayavi, Paraview, VisIt або навіть Chrome : P. І так, ви можете генерувати їх у Gmesh, але не впевнені у фізичних групах.
nicoguaro


3

Насправді для цього існує стандарт: ISO / TS 10303 (почніть з частин 1380 до 1386).

До того, як була викрадена ISO, ця ініціатива, яка почалася ще у 1980-х роках, була відома як PDES / STEP. Дивіться https://www.pdesinc.org/index.html

Але я не вірю, що його багато хто використовує, якщо вони не працюють в умовах, коли це обов'язкова вимога. Велика кількість міжнародних комітетів зробила чудову роботу в підриві первісного доброго наміру і створила стандарт, який намагається охопити все, починаючи з опису загальної структури управління компанії, до правильного формату написання дат і часу (і ні, я не жартую).


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


0

Я друге використання VTK для виводу файлів. Якщо ви хочете використовувати дуже загальну структуру сітки, я б вказав вам у бік бібліотеки CGNS (CFD General Notation System), що є форматом сітки з відкритим кодом із власною бібліотекою, що підтримується консорціумом (включаючи Boeing та NASA) . Читання списку вузлів, властивостей, граничних умов тощо надзвичайно корисно для цієї бібліотеки, а саму бібліотеку дуже легко зібрати. Бібліотека знаходиться на C ++, але її можна пов’язати з Fortran.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.