Opracowuję symulację MES. Do wczesnych testów użyję prostego mesheru i wizualizacji wykresu siatki. Ale chcę przygotować mój program do korzystania z danych generowanych przez istniejącą siatkę i wypisywać ją do istniejących narzędzi do wizualizacji.
Czy istnieje zalecany (quasi-) standard formatu plików i wewnętrzny format danych dla siatek (FEM)?
finite-element
mesh
graph-theory
Michael
źródło
źródło
Odpowiedzi:
Krótka odpowiedź brzmi: nie, nie ma standardowego formatu. Ale są pewne popularne, takie jak Gmsh dla wejścia / wyjścia i VTK dla wyjścia.
Przed podjęciem decyzji musisz dowiedzieć się, co chcesz zrobić. Jeśli chcesz mieć swój (mały) program przez chwilę, możesz wybrać format, który najlepiej odpowiada Twoim upodobaniom i potrzebom. Jeśli planujesz w przyszłości zmienić program na „większy”, dobrym pomysłem byłoby rozpoczęcie zarządzania formatami plików już teraz. Jeśli planujesz używać komercyjnych procesorów wstępnych / końcowych, sugeruję trzymanie się ich formatów, ponieważ „aktualizują” je one przy każdej nowej wersji i może to być kłopotliwe.
Poniżej wymienię niektóre opcje (open source).
Przetwarzanie wstępne
Przetwarzanie końcowe
źródło
vtk
(w C ++, Java lub Python), Mayavi, Paraview, VisIt lub nawet Chrome : P. I tak, możesz je wygenerować w Gmesh, nie będąc jednak pewnym grup fizycznych.Możesz wypróbować albo format pliku MSH firmy Gmsh, albo neutralny format pliku GAMBIT .
źródło
Istnieje w tym przypadku norma: ISO / TS 10303 (zacznij od części 1380 do 1386).
Przed przejęciem przez ISO inicjatywa ta rozpoczęła się w latach 80. i była znana jako PDES / STEP. Zobacz https://www.pdesinc.org/index.html
Ale nie sądzę, aby ktokolwiek dużo z niego korzystał, chyba że pracuje w środowisku, w którym jest to obowiązkowy wymóg. Wiele międzynarodowych komitetów wykonało świetną robotę, obalając pierwotną dobrą intencję, i opracowało standard, który próbuje objąć wszystko, od opisu ogólnej struktury zarządzania firmą po właściwy format zapisu dat i godzin (i nie, ja nie żartuję).
źródło
Liczba formatów plików dla MES jest niedorzeczna, częściowo ze względu na fakt, że każdy pakiet oprogramowania w przeszłości implementował swój własny format.
(Z xkcd .)
Stworzyłem meshio, aby złagodzić ból związany z konwersją między formatami, więc jeśli używasz dowolnego formatu obsługiwanego przez meshio, powinieneś być w stanie łatwo dokonać zmiany w przyszłości.
Ze wszystkich formatów, które znam, VTU i XDMF są tymi, których osobiście używam najczęściej.
źródło
Oprócz formatu pliku MSH cytowanego w odpowiedzi Wesa, używam również formatu pliku MESH Gamma3. Jeśli programujesz w C / C ++, istnieje łatwa w użyciu biblioteka oprogramowania, LM6, do ładowania / zapisywania w tym formacie pliku [1]
[1] https://www.rocq.inria.fr/gamma/gamma/Membres/CIPD/Loic.Marechal/Research/LM6.html
źródło
Po drugie używam VTK do generowania plików. Jeśli chcesz zastosować bardzo ogólną strukturę siatki, wskazałbym cię w kierunku biblioteki CGNS (CFD General Notation System), która jest formatem siatki typu open source z własną biblioteką obsługiwaną przez konsorcjum (w tym Boeinga i NASA) . Czytanie listy węzłów, właściwości, warunków brzegowych itp. Jest niezwykle przydatne w tej bibliotece, a sama biblioteka jest bardzo łatwa do skompilowania. Biblioteka jest w C ++, ale można ją połączyć z Fortranem.
Używamy go w naszym wewnętrznym kodzie i stwierdziłem, że jest to bardzo wydajny format. Używa HDF5 pod maską dla plików binarnych. Ponadto ANSYS, Salome, GMSH w różnym stopniu obsługują eksport do tego formatu. Oto github: https://cgns.github.io/
źródło