Existe um solucionador de CFD de código aberto bom, fácil de usar e de alta qualidade?

17

Minha tese é sobre o desenvolvimento de métodos numéricos para redução de modelos na combustão. Eu executo meus métodos puramente na parte química das simulações de combustão e tenho muitos estudos de caso para simulações 0-D (sem fluxo). O que eu gostaria é executar simulações que tenham fluxo nelas, preferencialmente simulações em 2D ou 3D.

Essas simulações precisariam ser paralelas, devido aos altos requisitos computacionais. Eu também precisaria de algo que possa interagir com solucionadores de química como Chemkin ou Cantera, para o qual eu tenho o código-fonte. (Chemkin está em Fortran 77 e Cantera está em C ++.)

No caso ideal, eu poderia especificar um padrão de fluxo usando o conhecimento básico de mecânica dos fluidos que tenho no meu programa de graduação e em algum pacote de CFD, adicionar a química e executá-la. Se for necessário, posso configurar as equações que governam o movimento e a química dos fluidos para um estudo de caso simples, com base em uma configuração experimental usada por um ex-colaborador, mas eu prefiro não usar meu próprio código CFD, a menos que haja um pacote ou pacotes que tornaram extremamente fácil fazê-lo. Eu estaria disposto a gastar 2-3 semanas nisso; Não sei se esse requisito descarta o PETSc ou o Trilinos. Se eu tiver que gastar mais, prefiro adiar até mais tarde, porque tenho um colaborador que fornece um código CFD para estudos de caso também.

Alguém tem alguma experiência em usar um pacote CFD ou escrever código CFD? Em caso afirmativo, você pode recomendar um? Uma coisa que eu sei que gostaria de usar é a divisão do Strang, mas não sou especialista em CFD ou PDE; Estudo a química e os métodos numéricos para a redução de modelos. Além disso, comente o tempo que você levou para se atualizar usando o software recomendado.

O @FrenchKheldar enfatiza que devo mencionar as características dos problemas que gostaria de resolver:

  • Gás (perfeito) ideal, monofásico
  • Compressível
  • O fluxo laminar é essencial; fluxo turbulento é uma vantagem. (Eu sei um pouco sobre turbulência de trabalhos anteriores em métodos numéricos em CFD, mas não trabalhei em solucionadores de CFD; só sei um pouco sobre física.)
  • A formulação do número zero-Mach está correta (não me importo com choques ou fluxo supersônico)
  • Química da combustão, ignorando os fluxos de Soret e Dufour e tratando a difusão como Fickian
  • A geometria pode ser algo simples

Eu posso escrever código de interface, embora quanto menos eu precise escrever, melhor; O @FrenchKheldar também aponta que o Cantera possui ligações Fortran e Python. Eu uso as ligações do Cantera Python agora para prototipagem rápida, por isso também me sinto à vontade.

Geoff Oxberry
fonte
O Cantera possui wrappers para python e Fortran, o que amplia um pouco a pesquisa.
FrenchKheldar
Deseja modelar fluxos laminar ou turbulentos? Compressível ou incompressível? Gás perfeito? Fase única? Quanto mais detalhes você puder nos fornecer, mais precisa será a resposta.
FrenchKheldar
@FrenchKheldar: Obrigado por apontar isso. Eu adicionei alguns detalhes.
precisa
2
Mais um comentário: se você não se importa com acústica ou ondas, não deveria usar um solucionador incompressível? Isso irá alargar as suas possibilidades ...
FrenchKheldar
Deixe-me reformular: eu não me importo com choques. Como a fase é um gás ideal e os gases ideais mudam de densidade quando a pressão muda, o fluxo deve ser compressível.
quer

Respostas:

11

Eu sou um usuário pesado do OpenFOAM , então naturalmente eu o recomendaria. Possui uma grande quantidade de recursos, incluindo modelos de combustão (embora não necessariamente precisamente o que você precisa) e foi usado junto com o Canterra por outras pessoas. Se você precisar de um solucionador para uma equação específica que ainda não foi implementada, você pode literalmente escrever suas equações . Não sei o que é separação de estranhos (eu não trabalho com combustão), mas outras pessoas o usaram no OpenFOAM .

Há uma quantidade limitada de tutoriais. Os documentados no guia do usuário não incluem química. Existem alguns exemplos de casos para os solucionadores de reações que você pode dar uma olhada. Sua melhor aposta é verificar o site do curso de graduação em OS-CFD em Chalmers (o link é para 2011, mas contém um link para as páginas dos anos anteriores). Os alunos frequentemente documentam os solucionadores em que estão trabalhando, por exemplo, aqui .

Sobre o esforço para aprendê-lo: se você usar um dos modelos predefinidos, é bastante simples de usar e deverá conseguir resultados dentro de semanas. Se você tiver que descer abaixo do nível superior (por exemplo, para adicionar um novo solucionador de ODE), as coisas podem ficar mais difíceis rapidamente e você gostará de conhecer C ++.

Akid
fonte
Obrigado pela recomendação! Ouvi coisas boas sobre o OpenFOAM e gostaria de usá-lo no futuro. Na sua experiência, foi fácil aprender a API? Existem bons tutoriais ou exemplos que usam o OpenFOAM, preferencialmente com química?
Geoff Oxberry
Eu atualizei minha resposta
akid
11
Comece a aprender C ++ em breve. :) Boa Sorte Vá com Deus.
Tdic
2

Você pode usar o PyClaw , uma extensão paralela do Clawpack (nota: eu sou um dos principais desenvolvedores do PyClaw). Inclui solucionadores 2D e 3D para as equações invíscidas de Euler (fluxo compressível) de um gás ideal. Ele também possui a divisão Strang, mas você precisa adicionar a avaliação dos termos viscosos e da química. Deve ser simples fazer interface com Chemkin e Cantera, já que o PyClaw é escrito em Python e já inclui os códigos Fortran 77 e C.

PyClaw é relativamente novo (embora o código Clawpack subjacente seja bastante antigo) e, portanto, não é tão estabelecido quanto algo como o OpenFOAM.

David Ketcheson
fonte
Obrigado! Vou ter que dar uma olhada, embora possa demorar um pouco para chegar lá. Quando eu começar a usá-lo, informarei como será.
Geoff Oxberry
2

O Fire Dynamics Simulator (FDS) do NIST soa como o que você deseja. O FDS é um solucionador de fluxo com baixo número de Mach. A densidade pode mudar, mas os efeitos acústicos e os choques são negligenciados.

O FDS está bastante bem documentado, no entanto, admito que não procurei nas principais rotinas do solucionador de fluxo. Também não sei muito sobre como o FDS lida com a química da combustão.

Sugiro baixar o código mais recente do site do Google Code da FDS .

Ben Trettel
fonte
0

Há muitas por lá!

OpenFOAM é o melhor, IMHO, mas outros estão neste link ,

T3rmInAt0r
fonte
Por favor, não dê respostas 'apenas para links', pois os links podem ficar quebrados.
Jan
Eu não queria apresentar todas as opções mencionadas lá como "minhas". Tecnicamente, eu poderia copiar e colar todo o conteúdo, mas não sou essa pessoa. Então, eu coloquei o link diretamente para dar créditos ao (s) autor (es) original (s)
T3rmInAt0r
11
Bem. Mas você poderia, por exemplo, dizer que a cátedra de Dinâmica de Fluidos Computacional e Mecânica de Turbulência da universidade de Manchester compilou uma lista de software de código aberto para engenheiros. Se você fizer isso, outros visitantes ainda poderão pesquisar na Internet, caso o link esteja quebrado.
Jan