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?
finite-element
mesh
graph-theory
Michael
quelle
quelle
Antworten:
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
quelle
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.Sie können entweder das MSH-Dateiformat von Gmsh oder das neutrale GAMBIT-Dateiformat ausprobieren .
quelle
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).
quelle
Die Anzahl der Dateiformate für FEM ist lächerlich, auch weil in der Vergangenheit jedes Softwarepaket ein eigenes Format implementiert hat.
(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.
quelle
Neben dem in Wes 'Antwort genannten MSH-Dateiformat verwende ich auch das MESH-Dateiformat von Gamma3. Wenn Sie in C / C ++ programmieren, gibt es eine benutzerfreundliche Softwarebibliothek, LM6, zum Laden / Speichern in diesem Dateiformat [1].
[1] https://www.rocq.inria.fr/gamma/gamma/Membres/CIPD/Loic.Marechal/Research/LM6.html
quelle
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/
quelle