O que é um formato de arquivo / dados comum para uma malha (para FEM)?

13

Estou desenvolvendo uma simulação FEM. Para os primeiros testes, usarei o mesher auto-escrito simples e a visualização do gráfico de malha. Mas quero preparar meu programa para usar os dados gerados por uma malha existente e enviá-los para as ferramentas de visualização existentes.

Existe um padrão (quase) recomendado para formato de arquivo e formato de dados interno para malhas (FEM)?

Michael
fonte
4
Êxodo II para leitura na malha e VTK para saída de gravação.
Stali #

Respostas:

8

A resposta curta é não, não há um formato padrão. Mas existem alguns comuns, como Gmsh para entrada / saída e VTK para saída.

Antes de tomar uma decisão, você precisa descobrir o que deseja fazer. Se você quiser ter seu (pequeno) programa por um tempo, poderá escolher o formato que melhor se adapte ao seu gosto e necessidades. Se você planeja mudar para um programa "maior" no futuro, seria uma boa idéia começar a gerenciar seus formatos de arquivo agora. Se você planeja usar pré / pós-processadores comerciais, sugiro que você se atenha aos formatos deles, pois eles "atualizam" aqueles com todas as novas versões e isso pode ser um problema.

Abaixo, listo algumas opções (de código aberto).

Pré-processando

Pós-processamento

  • Visualização com Paraview / Mayavi . Em seguida, use os formatos de arquivo VTK . Você pode verificar o guia do usuário do Paraview aqui .
  • Você também pode fazer o pós-processamento no Gmsh.
  • Salome-Meca é outra opção para o pós-processamento, funciona bem com o VTK.
nicoguaro
fonte
Eu acho que o VTK é o formato certo para mim: 1. Eu posso usá-lo como entrada para a malha e como saída para pós-processamento. 2. Existe uma biblioteca para lidar com isso. 3. Parece ser comum, por exemplo, o gmesh pode gerá-lo. Essas suposições estão corretas?
Michael
1
1. Você precisa considerar a inclusão de propriedades do material, BCs e restrições em seu modelo. Não tenho muita certeza de como implementá-los no VTK, mas provavelmente você pode encontrar uma solução alternativa. 2. Sim, mas isso depende da linguagem de programação de sua escolha. 3. Sim, é comum. Você pode usar diretamente vtk(em C ++, Java ou Python), Mayavi, Paraview, VisIt ou mesmo o Chrome : P. E, sim, você pode gerá-los no Gmesh, não tendo certeza sobre os grupos físicos.
nicoguaro
3

Na verdade, existe um padrão para isso: ISO / TS 10303 (comece com as partes 1380 a 1386).

Antes de ser invadida pela ISO, essa iniciativa, que começou nos anos 80, era conhecida como PDES / STEP. Veja https://www.pdesinc.org/index.html

Mas não acredito que alguém o use muito, a menos que esteja trabalhando em um ambiente em que é um requisito obrigatório. Um grande número de comitês internacionais fez um excelente trabalho em subverter a boa intenção original e produziu um padrão que tenta cobrir tudo, desde a descrição da estrutura geral de gerenciamento de uma empresa até o formato correto para escrever datas e horas (e não, eu não estou brincando).

alephzero
fonte
3

O número de formatos de arquivo para o FEM é ridículo, em parte devido ao fato de cada pacote de software ter implementado seu próprio formato no passado.

insira a descrição da imagem aqui

(Do xkcd .)

Criei o meshio para aliviar a dor da conversão entre formatos. Portanto, se você usar qualquer formato suportado pelo meshio, poderá fazer facilmente uma troca no futuro.

De todos os formatos que eu conheço, VTU e XDMF são os que eu mais uso pessoalmente.

Nico Schlömer
fonte
0

Eu segundo o uso do VTK para saída de arquivo. Se você deseja usar uma estrutura de malha muito genérica, eu indicaria a direção da biblioteca CGNS (CFD General Notation System), que é um formato de malha de código aberto com sua própria biblioteca, mantida por um consórcio (incluindo Boeing e NASA) . A leitura de uma lista de nós, propriedades, condições de contorno etc. é extremamente útil com esta biblioteca e a própria biblioteca é muito fácil de compilar. A biblioteca está em C ++, mas pode ser vinculada ao Fortran.

Nós o usamos em nosso código interno e achei um formato muito eficiente. Ele usa o HDF5 sob o capô para arquivos binários. Além disso, ANSYS, Salome, GMSH suportam a exportação para este formato em graus variados. Aqui está o github: https://cgns.github.io/

BlaB
fonte