Software de geração de malha com script


17

Estou à procura de um software de geração de malha que

  • é gratuito e de código aberto,
  • fornece uma interface de script sã para especificação de domínio,
  • trabalha para geometrias complexas,
  • pode gerar malhas 2D e 3D,

Que opções eu tenho?

Respostas:


10

Eu recomendo que você olhe para gmsh . Possui entrada de texto e do tipo CAD, capaz de 2D e 3D, malhas de ordem superior. Ele é licenciado sob a GPL, portanto, existem algumas restrições para integrá-lo ao software de código fechado, mas, de outra forma, é totalmente gratuito / de código aberto.


Infelizmente, a linguagem de script é insana. ;)
Nico Schlömer

De que maneira? Você está consultando as entradas do arquivo de texto ou alguma outra interface?
precisa

2
Eu só usei gmsh em geometrias de alguém simples, pois meus problemas são quase sempre complicados por outros fatores que não a geometria. Embora eu tenha trabalhado apenas nessas geometrias mais simples, definitivamente achei o gmsh o mais intuitivo e fácil de aprender. Não discutirei com você sobre a tentativa de executar procedimentos mais complicados, pois não tenho experiência com eles.
18775 Godric Seer

5
Você sempre pode escrever seus scripts no idioma que desejar e simplesmente criar arquivos como resultado do seu script que são alimentados como entradas para o gmsh.
precisa saber é o seguinte

11
@WolfgangBangerth Na verdade, comecei um pequeno projeto de brinquedo em Python no github.com/nschloe/python4gmsh .
Nico Schlömer

4

Normalmente, uso o tetgen para 3D (licença MIT para pesquisa / não comercial) e o triângulo para 2D (licença personalizada gratuita para não comercial). Para criar um script, você escreve um arquivo de entrada e chama a linha de comando.


2
"Observe que o TetGen é gratuito para pesquisas e usos não comerciais. Para qualquer utilização comercial, uma licença comercial está disponível mediante solicitação." - Esta não é uma licença de software livre ou de código aberto (na definição OSI ou FSF), muito menos uma licença MIT.
precisa

Sim, acabei de ler o primeiro bit do arquivo de licença. A maioria das pessoas não é tão rigorosa quanto ao significado de livre como OSI ou FSF.
aterrel

Eu estava prestes a fazer uma pergunta semelhante. O tetgen é compatível com o FEniCS?
seb

@aterrel Leia o arquivo de LICENÇA: "Isso significa que o TetGen não é um software livre, mas para fins particulares, de pesquisa e educacional pode ser usado sem nenhum custo e sem outras providências."
precisa

11
Sim, @JedBrown, concordei com você e editei a resposta. Mas para os leigos, livre geralmente significa "não preciso pagar por isso", e não o RMS legaliza. Eu também argumentaria que a GPL não é "gratuita", mas provavelmente não é uma discussão apropriada para este fórum.
aterrel

3

O MeshPy pode ser usado para obter malhas triangulares e tetraédricas. Ele fornece um meio fácil de geração de malha com script.

MeshPy fornece interfaces Python para Triangle e TetGen mencionadas por aterrel.


1

Eu achei o Salome muito flexível, com um ambiente muito melhor que o gmsh. Tem uma sensação muito mais profissional IMHO. Além disso, também pode gerar malhas hexaédricas. Realmente vale a pena tentar!


Não gosto do fato de que nada no modelo de geometria é editável no console da interface do usuário ou do Python. Basicamente, se você quiser fazer alterações, precisará excluir e recriar. Que adiciona um monte de sobrecarga durante o projeto
lurscher

Isso é verdade se você importar uma geometria fornecida em um arquivo STEP, por exemplo. Mas se não me engano, isso também é verdade para os outros programas mencionados aqui! Além disso, se você tiver o arquivo HDF ou o script de despejo python, certamente poderá alterar qualquer coisa.
precisa saber é o seguinte

1

O OpenSCAD se encaixa em todos os pontos, exceto na malha de volume. Ele é baseado em scripts de entrada e gera malhas de superfície STL.


1

Enquanto isso, eu criei

  • pygmsh como um front end Python para gmsh e
  • pygalmesh como front end do Python para os recursos de malha 3D da CGAL.

Ambos são razoavelmente bem recebidos, então acho que também são úteis para os outros.


1

Por que não o Blender ? É um software poderoso, gratuito e de código aberto, com suporte a scripts python também.

No Blender 2.79, você precisa escolher Scriptingcomo Screen layout.

No canto superior esquerdo, Text Editorpressione + para criar um novo bloco de dados de texto; inicie-o import bpye insira os comandos python relativos a cada operação que você pode executar na GUI, lendo o comando relativo colocando o mouse sobre o item da GUI.

Na captura de tela em anexo, são mostrados os comandos para triangular um círculo, começando na cena padrão com um cubo:

insira a descrição da imagem aqui

Dessa forma, você pode usar o Blender no modo de script, sem sua GUI para exportar, por exemplo, um arquivo de saída, executando seu script python em um terminal:

blender --background --python myscript.py

Aqui está um videotutorial no YouTube.

Felicidades


O Blender pode fazer isso? Nunca soube. Como triangularia, por exemplo, um círculo?
Nico Schlömer 31/03/19

@ChristianClason: Como isso não é uma resposta? Aborda a questão. Você pode reclamar que falta detalhes ou mesmo que está errado, mas é para isso que servem os votos negativos. Certamente não é um comentário.
Wrzlprmft

@Wrzlprmft Muito obrigado. Acho que seria bom fornecer a Nico Schlömer um videotutorial detalhado, escrevendo o código essencial aqui. Entretanto, enquanto isso, eu posso vincular um tópico escrito por mim em tempos em italiano, pedindo ajuda para exportar uma malha usando os scripts do Blender (esse site foi atualizado, para o qual alguns recursos não estão mais disponíveis): blender. it / fóruns / tema /-difetto-textura-file-obj da-WRL Aqui um exemplo de videotutorial no YouTube: youtube.com/watch?v=K0yb4sZ7B4g
Riccardo Volpe

Se você tem algo a acrescentar à sua pergunta, por favor edite -lo.
Wrzlprmft
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.