¿Cuál es un formato de archivo / datos común para una malla (para FEM)?

13

Estoy desarrollando una simulación FEM. Para las pruebas iniciales, usaré un simple ensamblador auto-escrito y visualización del gráfico de malla. Pero quiero preparar mi programa para usar los datos generados por una malla existente y enviarlos a las herramientas de visualización existentes.

¿Existe un estándar (cuasi) recomendado para el formato de archivo y el formato de datos internos para mallas (FEM)?

Miguel
fuente
44
Exodus II para leer en la malla y VTK para escribir la salida.
stali

Respuestas:

8

La respuesta corta es no, no hay un formato estándar. Pero hay algunos comunes, como Gmsh para entrada / salida y VTK para salida.

Antes de tomar una decisión, debe averiguar qué desea hacer. Si desea tener su programa (pequeño) por un tiempo, puede elegir el formato que mejor se adapte a sus gustos y necesidades. Si planea cambiar a un programa "más grande" en el futuro, sería una buena idea comenzar a administrar sus formatos de archivo ahora mismo. Si planea utilizar pre / postprocesadores comerciales, le sugiero que se adhiera a sus formatos, ya que "actualizan" aquellos con cada nueva versión y podría ser un problema.

A continuación, enumero algunas opciones (de código abierto).

Preprocesamiento

Postprocesamiento

  • Visualización con Paraview / Mayavi . Luego use formatos de archivo VTK . Puede consultar la guía del usuario de Paraview aquí .
  • También puede realizar el procesamiento posterior en Gmsh.
  • Salome-Meca es otra opción para el procesamiento posterior, funciona bien con VTK.
nicoguaro
fuente
Creo que VTK es el formato correcto para mí: 1. Puedo usarlo como entrada para la malla y como salida para el procesamiento posterior. 2. Existe una biblioteca para manejarlo. 3. Parece ser común, por ejemplo, gmesh puede generarlo. ¿Están bien esos supuestos?
Michael
1
1. Debe tener en cuenta que la inclusión de propiedades de materiales, BC y restricciones en su modelo. No estoy completamente seguro de cómo implementarlos en VTK, pero probablemente pueda encontrar una solución alternativa. 2. Sí, pero depende del lenguaje de programación que elija. 3. Sí, es común. Puede usar directamente vtk(en C ++, Java o Python), Mayavi, Paraview, VisIt o incluso Chrome : P. Y sí, puede generarlos en Gmesh, aunque no estoy seguro de los grupos físicos.
nicoguaro
3

En realidad, hay un estándar para esto: ISO / TS 10303 (comience con las partes 1380 a 1386).

Antes de ser secuestrado por ISO, esta iniciativa, que comenzó en la década de 1980, se conocía como PDES / STEP. Ver https://www.pdesinc.org/index.html

Pero no creo que nadie lo use mucho a menos que esté trabajando en un entorno donde es un requisito obligatorio. Un gran número de comités internacionales hicieron un excelente trabajo al subvertir la buena intención original, y produjeron un estándar que intenta cubrir todo, desde la descripción de la estructura administrativa general de una empresa hasta el formato correcto para escribir fechas y horas (y no, yo No estoy bromeando).

alephzero
fuente
3

El número de formatos de archivo para FEM es ridículo, en parte debido al hecho de que cada paquete de software implementó su propio formato en el pasado.

ingrese la descripción de la imagen aquí

(De xkcd .)

He creado meshio para aliviar el dolor de la conversión entre formatos, por lo que si usa cualquier formato compatible con meshio, debería poder cambiar fácilmente en el futuro.

De todos los formatos que conozco, VTU y XDMF son los que más uso personalmente.

Nico Schlömer
fuente
0

Secundo el uso de VTK para la salida de archivos. Si desea utilizar una estructura de malla muy genérica, le indicaría la dirección de la biblioteca CGNS (Sistema de notación general CFD), que es un formato de malla de código abierto con su propia biblioteca mantenida por un consorcio (incluidos Boeing y la NASA) . Leer una lista de nodos, propiedades, condiciones de contorno, etc. es extremadamente útil con esta biblioteca y la biblioteca en sí es muy fácil de compilar. La biblioteca está en C ++, pero se puede vincular con Fortran.

Lo usamos en nuestro código interno y he encontrado que es un formato muy eficiente. Utiliza HDF5 debajo del capó para archivos binarios. Además, ANSYS, Salomé, GMSH admiten la exportación a este formato en mayor o menor grado. Aquí está el github: https://cgns.github.io/

Cotilla
fuente