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)?
finite-element
mesh
graph-theory
Michael
fonte
fonte
Respostas:
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
fonte
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.Você pode tentar o formato de arquivo MSH do Gmsh ou o formato de arquivo neutro do GAMBIT .
fonte
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).
fonte
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.
(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.
fonte
Além do formato de arquivo MSH citado na resposta de Wes, também estou usando o formato de arquivo MESH do Gamma3. Se você estiver programando em C / C ++, existe uma biblioteca de software fácil de usar, LM6, para carregar / salvar neste formato de arquivo [1]
[1] https://www.rocq.inria.fr/gamma/gamma/Membres/CIPD/Loic.Marechal/Research/LM6.html
fonte
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/
fonte