Qu'est-ce qu'un format de fichier / données commun pour un maillage (pour FEM)?

13

Je développe une simulation FEM. Pour les premiers tests, j'utiliserai un maillage simple auto-écrit et une visualisation du graphe maillé. Mais je veux préparer mon programme à utiliser les données générées par un mailleur existant et à les transmettre aux outils de visualisation existants.

Existe-t-il une norme (quasi-) recommandée pour le format de fichier et le format de données interne pour les maillages (FEM)?

Michael
la source
4
Exodus II pour lire dans le maillage et VTK pour écrire la sortie.
stali

Réponses:

8

La réponse courte est non, il n'y a pas de format standard. Mais il y en a certains, comme Gmsh pour les entrées / sorties et VTK pour les sorties.

Avant de prendre une décision, vous devez savoir ce que vous voulez faire. Si vous souhaitez avoir votre (petit) programme pendant un certain temps, vous pouvez choisir le format qui convient le mieux à vos goûts et à vos besoins. Si vous envisagez de passer à un programme "plus grand" à l'avenir, ce serait une bonne idée de commencer à gérer leurs formats de fichiers dès maintenant. Si vous prévoyez d'utiliser des pré / post-processeurs commerciaux, je vous suggère de vous en tenir à leurs formats, car ils "mettent à jour" ceux avec chaque nouvelle version et cela pourrait être une douleur dans la tête.

Ci-dessous, je liste quelques options (open source).

Prétraitement

Post-traitement

  • Visualisation avec Paraview / Mayavi . Utilisez ensuite les formats de fichier VTK . Vous pouvez consulter le guide d'utilisation de Paraview ici .
  • Vous pouvez également effectuer un post-traitement dans Gmsh.
  • Salome-Meca est une autre option pour le post-traitement, cela fonctionne très bien avec VTK.
nicoguaro
la source
Je pense que VTK est le bon format pour moi: 1. Je peux l'utiliser comme entrée pour le maillage et comme sortie pour le post-traitement. 2. Il existe une bibliothèque pour le gérer. 3. Cela semble courant, par exemple gmesh peut le générer. Ces hypothèses sont-elles correctes?
Michael
1
1. Vous devez considérer que l'inclusion des propriétés des matériaux, des BC et des contraintes sur votre modèle. Je ne sais pas vraiment comment les implémenter dans VTK, mais vous pouvez probablement trouver une solution de contournement. 2. Oui, mais cela dépend du langage de programmation de votre choix. 3. Oui, c'est courant. Vous pouvez utiliser directement vtk(en C ++, Java ou Python), Mayavi, Paraview, VisIt ou même Chrome : P. Et, oui, vous pouvez les générer dans Gmesh, mais vous n'êtes pas sûr des groupes physiques.
nicoguaro
3

Il existe en fait une norme pour cela: ISO / TS 10303 (commencer par les parties 1380 à 1386).

Avant d'être détournée par l'ISO, cette initiative, qui a commencé dans les années 80, était connue sous le nom de PDES / STEP. Voir https://www.pdesinc.org/index.html

Mais je ne pense pas que quiconque l'utilise beaucoup à moins de travailler dans un environnement où c'est une exigence obligatoire. Un grand nombre de comités internationaux ont fait un excellent travail pour renverser la bonne intention initiale et ont produit une norme qui tente de tout couvrir, de la description de la structure de gestion globale d'une entreprise au format correct pour écrire les dates et les heures (et non, je je ne plaisante pas).

alephzero
la source
3

Le nombre de formats de fichiers pour FEM est ridicule, en partie en raison du fait que chaque progiciel a implémenté son propre format dans le passé.

entrez la description de l'image ici

(De xkcd .)

J'ai créé meshio pour soulager la douleur de la conversion entre les formats, donc si vous utilisez n'importe quel format pris en charge par meshio, vous devriez pouvoir facilement changer à l'avenir.

De tous les formats que je connais, VTU et XDMF sont ceux que j'utilise le plus personnellement.

Nico Schlömer
la source
0

J'appuie l'utilisation de VTK pour la sortie de fichiers. Si vous souhaitez utiliser une structure de maillage très générique, je vous indiquerai la direction de la bibliothèque CGNS (CFD General Notation System) qui est un format de maillage open source avec sa propre bibliothèque maintenue par un consortium (dont Boeing et la NASA) . La lecture d'une liste de nœuds, de propriétés, de conditions aux limites, etc. est extrêmement utile avec cette bibliothèque et la bibliothèque elle-même est très facile à compiler. La bibliothèque est en C ++, mais elle peut être liée à Fortran.

Nous l'utilisons dans notre code interne et j'ai trouvé que c'est un format très efficace. Il utilise HDF5 sous le capot pour les fichiers binaires. De plus, ANSYS, Salome, GMSH prennent tous en charge l'exportation vers ce format à des degrés divers. Voici le github: https://cgns.github.io/

Jaser
la source