OpenFoam vs FiPy

8

Preciso aprender e utilizar um pacote de soluções automatizadas de volume finito para um projeto no qual estou trabalhando e reduzi-o a esses dois pacotes. Fiquei me perguntando se alguém tem experiência com os dois pacotes e talvez pudesse comentar sobre uma comparação. Considerando o objetivo semelhante de ambos os pacotes, estou um pouco surpreso por não encontrar muita coisa na comparação on-line.

Meu sentimento é que o FiPy seria mais fácil de aprender / implementar, pois é baseado em Python, mas o OpenFoam pode ser mais robusto e rico em recursos devido à sua ampla adoção. Ambos os pacotes têm organizações muito confiáveis ​​por trás deles.

dmon
fonte

Respostas:

3

Não usei o FiPy, mas apenas o OpenFOAM , mas acho que alguns pontos nas duas páginas iniciais sugerem que depende muito do que você deseja simular.

O OpenFOAM já possui alguns solucionadores implementados (principalmente CFD, pois seu perfil indica a física do plasma computacional, o mhdFoamsolucionador pode ser o que você deseja ou pelo menos serve de base, aqui está o grupo de usuários), mas pode ser expandido para resolver outros PDEs viáveis ​​por FVM , enquanto no FiPy você provavelmente terá que implementar as equações do zero de qualquer maneira - e no último caso, sim, o Python é muito mais confortável que o C ++, pelo menos para mim.

Existem alguns códigos Python que facilitam a vida com o OpenFOAM: PyFoam para ajudar a configurar casos e pythonflu , um invólucro para escrever solucionadores em Python (não testado, não sei como é o desempenho).

Pela minha experiência, configurar um caso no OpenFOAM é um pouco tedioso e você provavelmente acabará escrevendo scripts para automatizar a configuração da malha etc., portanto, não sei se o FiPy exigiria muito mais esforço, mesmo se você usasse um dos resolvedores já implementados do OpenFOAM. E se você optar por usar o Python para esse script, suspeito que você possa escrever a maior parte do código de uma maneira que a decisão sobre FiPy vs OpenFOAM se reduz a uma diferença de menos de 100 linhas de código, ou seja, não deve ser muito difícil mudar de idéia mais tarde, principalmente se planejado com antecedência.

Os pontos mais importantes são, obviamente, quanto tempo leva a primeira instalação e quão bem ela é executada. Eu também não consegui encontrar nenhuma comparação, então você teria que compará-las você mesmo ...

Pessoalmente, se eu já não tivesse usado o OpenFOAM antes e precisaria simular um sistema para o qual o OpenFOAM ainda não fornece um solucionador, provavelmente tentaria o FiPy primeiro devido à minha preferência de Python sobre C ++. Mas, como mencionado, junto com o PyFoam, é provável que alguém possa criar uma estrutura bastante genérica para comparar os dois ... Se um solucionador de OpenFOAM pudesse ser usado, eu provavelmente o usaria.

Tobias Kienzler
fonte
Nota lateral: Além do OpenFOAM 2 "oficial", há também o projeto OpenFOAM 1.6-ext , que é um ramo direcionado à comunidade com muitos recursos enviados pelo usuário, enquanto o primeiro é "apenas" desenvolvido pela OpenCFD Ltd
Tobias Kienzler
Esse é exatamente o tipo de opinião informada que eu estava procurando, obrigado. Parece que o FiPy seria mais adequado às minhas necessidades. A simulação de plasma geralmente requer muito mais conjuntos de equações sob medida e, portanto, mesmo algo como mhdFoam não é muito atraente para mim. Felicidades pela sua resposta
dmon
@ Dmon Fico feliz que eu poderia ajudar. Como mencionado, pythonflu pode valer a pena um olhar, então - talvez você pode ter um PhD s̶l̶a̶v̶e̶student comparar o desempenho :-P
Tobias KIENZLER
@ dmon Então, como as coisas deram certo?
Tobias Kienzler