Was ist ein allgemeines Datei- / Datenformat für ein Netz (für FEM)?

13

Ich entwickle eine FEM-Simulation. Für frühe Tests verwende ich eine einfache selbstgeschriebene Vermessung und Visualisierung des Netzgraphen. Ich möchte mein Programm jedoch darauf vorbereiten, die von einem vorhandenen Mesher generierten Daten zu verwenden und an vorhandene Visualisierungstools auszugeben.

Gibt es einen empfohlenen (Quasi-) Standard für das Dateiformat und das interne Datenformat für (FEM-) Netze?

Michael
quelle
4
Exodus II zum Einlesen des Netzes und VTK zum Schreiben der Ausgabe.
stali

Antworten:

8

Die kurze Antwort ist nein, es gibt kein Standardformat. Es gibt jedoch einige gebräuchliche, wie Gmsh für die Eingabe / Ausgabe und VTK für die Ausgabe.

Bevor Sie eine Entscheidung treffen, müssen Sie herausfinden, was Sie tun möchten. Wenn Sie Ihr (kleines) Programm für eine Weile haben möchten, können Sie das Format auswählen, das Ihrem Geschmack und Ihren Bedürfnissen am besten entspricht. Wenn Sie in Zukunft auf ein "größeres" Programm umsteigen möchten, ist es eine gute Idee, die Dateiformate sofort zu verwalten. Wenn Sie vorhaben, kommerzielle Pre- / Post-Prozessoren zu verwenden, sollten Sie sich an deren Formate halten, da diese bei jeder neuen Version "aktualisiert" werden und dies zu Kopfschmerzen führen kann.

Nachfolgend liste ich einige (Open Source) Optionen auf.

Vorverarbeitung

Nachbearbeitung

  • Visualisierung mit Paraview / Mayavi . Verwenden Sie dann VTK- Dateiformate. Sie können die Paraview-Bedienungsanleitung hier einsehen .
  • Sie können die Nachbearbeitung auch in Gmsh durchführen.
  • Salome-Meca ist eine weitere Option für die Nachbearbeitung, es funktioniert gut mit VTK.
nicoguaro
quelle
Ich denke, VTK ist das richtige Format für mich: 1. Ich kann es als Eingabe für das Netz und als Ausgabe für die Nachbearbeitung verwenden. 2. Es gibt eine Bibliothek, um damit umzugehen. 3. Es scheint üblich zu sein, zum Beispiel kann gmesh es erzeugen. Sind diese Annahmen in Ordnung?
Michael
1
1. Sie müssen berücksichtigen, dass die Einbeziehung von Materialeigenschaften, BCs und Einschränkungen in Ihr Modell erfolgt. Ich bin nicht ganz sicher, wie ich diese in VTK implementieren soll, aber wahrscheinlich finden Sie eine Problemumgehung. 2. Ja, aber es hängt von der Programmiersprache Ihrer Wahl ab. 3. Ja, das ist üblich. Sie können direkt vtk(in C ++, Java oder Python), Mayavi, Paraview, VisIt oder sogar Chrome : P verwenden. Und ja, Sie können sie in Gmesh generieren, obwohl Sie sich über die physischen Gruppen nicht sicher sind.
nicoguaro
3

Sie können entweder das MSH-Dateiformat von Gmsh oder das neutrale GAMBIT-Dateiformat ausprobieren .

Wir s
quelle
2
Ich verwende gmsh-Mesh-Dateien auch für persönliche Projekte. Dieses Format ist leicht zu verstehen und kann selbst repliziert werden
cbcoutinho
3

Es gibt tatsächlich eine Norm dafür: ISO / TS 10303 (beginnend mit den Teilen 1380 bis 1386).

Vor der Entführung durch ISO wurde diese Initiative, die bereits in den 1980er Jahren begann, als PDES / STEP bezeichnet. Sehen https://www.pdesinc.org/index.html

Aber ich glaube nicht, dass jemand viel davon benutzt, es sei denn, er arbeitet in einer Umgebung, in der dies eine zwingende Voraussetzung ist. Eine große Anzahl internationaler Komitees hat hervorragende Arbeit geleistet, um die ursprüngliche gute Absicht zu untergraben, und einen Standard erstellt, der versucht, alles von der Beschreibung der gesamten Führungsstruktur eines Unternehmens bis zum korrekten Format für das Schreiben von Daten und Zeiten (und nein, ich scherze nicht).

Alephzero
quelle
3

Die Anzahl der Dateiformate für FEM ist lächerlich, auch weil in der Vergangenheit jedes Softwarepaket ein eigenes Format implementiert hat.

Bildbeschreibung hier eingeben

(Aus xkcd .)

Ich habe meshio entwickelt , um das Konvertieren zwischen Formaten zu erleichtern. Wenn Sie also ein von meshio unterstütztes Format verwenden, sollten Sie in Zukunft problemlos wechseln können.

Von allen mir bekannten Formaten sind VTU und XDMF die, die ich persönlich am häufigsten verwende.

Nico Schlömer
quelle
0

Ich befürworte die Verwendung von VTK für die Dateiausgabe. Wenn Sie eine sehr generische Netzstruktur verwenden möchten, würde ich Sie in die Richtung der CGNS-Bibliothek (CFD General Notation System) lenken, bei der es sich um ein Open Source-Netzformat mit einer eigenen Bibliothek handelt, das von einem Konsortium (einschließlich Boeing und der NASA) verwaltet wird. . Das Lesen einer Liste von Knoten, Eigenschaften, Randbedingungen usw. ist in dieser Bibliothek äußerst nützlich und die Bibliothek selbst ist sehr einfach zu kompilieren. Die Bibliothek ist in C ++, kann aber mit Fortran verknüpft werden.

Wir verwenden es in unserem internen Code und ich habe festgestellt, dass es ein sehr effizientes Format ist. Es nutzt HDF5 unter der Haube für Binärdateien. Darüber hinaus unterstützen ANSYS, Salome und GMSH den Export in dieses Format in unterschiedlichem Maße. Hier ist der Github: https://cgns.github.io/

Ausplaudern
quelle