January 2, 2008

Finalmente, o OpenFOAM

Me dei conta que em nenhum post desse blog comentei sobre o OpenFOAM. Incrível, pois usei esse pacote CFD durante toda a minha tese de doutorado, já escrevi artigos sobre o dito e sem dúvida recomendo aos curiosos, estudantes e profissionais da área. O OpenFOAM (Field Operation And Manipulation) é um pacote CFD gratuito de código livre estruturado para operar e manipular campos tensoriais aplicado à fluidodinâmica computacional. A tecnologia do OpenFOAM é baseada em um conjunto eficiente e flexível de módulos escritos em C++ que são usados com o intuito de construir:
  • Solvers para resolver problemas específicos de engenharia que envolvam campos vetoriais;
  • Utilitários para realizar tarefas de pré e pós-processamento, que vão de uma simples manipulação de dados à visualização e construção e processamento de malhas;
  • Bibliotecas de expansão usadas pelos solvers e utilitários, tal como uma biblioteca de modelos físicos.
Contudo, a aceitação do OpenFOAM pela comunidade CFD no Brasil ainda é muito baixa, talvez pela enorme popularidade dos softwares comerciais e pela falta de conhecimento por parte dos usuários de outras opções viáveis. Mas com isso, o usuário perde algo importantíssimo ao usar pacotes CFD comerciais: a liberdade. Como assim?

A capacidade de verificar a modelagem, modificar e implementar novos aplicativos fornece ao usuário possibilidades infinitas, sendo possível resolver dos problemas simples aos mais complexos. Os softwares comerciais são "caixas pretas" onde o detalhamento interno do solver fica exposto em um manual, mas não o algoritmo ou a programação. O usuário não tem acesso aos detalhes dos modelos, dos métodos numéricos e fica restrito ao o que é oferecido pelo programa, com poucas chances de alteração (usualmente, bem limitadas).

A liberdade do acesso ao código fornece ao usuário a oportunidade de analisar e estudar o algoritmo e modelos, alterar o código (modelos, métodos numéricos, forma de malha, o que você quiser!) para ajustá-lo ao seu problema em específico. Contudo, o usuário de OpenFOAM que quiser alterar algum código deve possuir conhecimentos de C++ e ler os manuais.

Para usar este pacote CFD, faça o download gratuito do OpenFOAM (multi-plataforma), estude CFD, faça os tutoriais descritos no manual, estude mais CFD, veja as dúvidas postadas por outros usuários na lista de discussão do OpenFOAM, estude mais um pouco de CFD e troque algumas idéias aqui no blog. Essas seriam as mesmas recomendações que eu faria a alguém que fosse começar a usar um pacote CFD comercial, menos a parte de pagar pela licença do programa.

Para quem quiser mais detalhes, leia a série de artigos publicados sobre o OpenFOAM no CFD-Brasil.

8 comments:

  1. Antes de mais, parabéns pelo excelente blog. bastante elucidativo para alguém como eu que se está a iniciar em CFD. Eu tenho algum conhecimento mas de programas comerciais e quero iniciar-me no "gratuito". Acho q OpenFOAM é a solução.Depois de um mestrado em aerodinâmica aplicada a turbinas eólicas de eixo horizontal quero iniciar-me no CFD neste campo.Acho q valerá a pena!Voltarei para tirar dúvidas :)
    Mais uma vez parabéns!

    ReplyDelete
  2. Oi, Manelito!
    Valeu pelos elogios em seu comentário! A gente fica muito feliz em saber que você está gostando.
    Fique de olho nos trabalhos que vão ser apresentados no 3o. Workshop do OpenFOAM, na Itália (google nele!). Acredito que os trabalhos relacionados a turbinas e interação fluido-estrutura possam te interessar. Os trabalhos normalmente ficam disponíveis gratuitamente no site do Workshop.
    Sem dúvida, também dê uma "passeada" no Message Board do OpenFOAM para ver os assuntos de seu interesse.
    Um abraço.

    ReplyDelete
  3. Luiz F. sou aluno de pós-graduação o meu contato com CFD está se inciando, mesmo em altura de limite de tempo (isso é outra historia). Eu estou tentando simular escoamentos em florestas.O problema, que tem sido citado, está no tratamento das funções de parede que devem de ser modificadas para o tipo de estudo. Alguns autores afirmam que essa modificação só é possivel tendo acesso ao codigo fonte dos programas comerciais (no meu caso Fluent).No entanto soluções são apresentadas para contornar esse problema mas a implementaçao requer conhecimentos avançados sobre as caracteritcas das variaveis do programa e duvidas surgem a toda a hora sem esclarecimento possivel. A minha questão é: é possivel alterar as funções de parede no modelo de turbulencia k-e no OpenFOAM. A a malha pode ser feita pelo usuário (especificação do ratio de crescimento, numero de celulas, etc.) ou é feita automaticamente pelo programa?
    Obrigado

    ReplyDelete
  4. Ola, Nuno.

    Bem vindo ao mundo de CFD e boa sorte nos estudos iniciais.

    Se você precisa ter controle total da modelagem e da solução do seu problema, o OpenFOAM fornece uma boa solução. Você tem todos (sim, tudo!) os modelos a sua disposição para alterar a vontade.

    Note que para isso você também precisa saber programar (e bem) em C++, treinar e estudar bastante. O OpenFOAM te fornece algo que nenhum software CFD comercial tem, liberdade total. Mas ele também exige mais conhecimento do usuário que queira alterar a modelagem. No meu ponto de vista, uma troca justa.

    Quanto a geração de malha, o OpenFOAM possui um gerador de malha estruturada (altamente customizavel) e pode importar vários outros formatos (inclusive do formato Fluent).

    O que eu sugiro a você... Pegue um dia, baixe o manual de usuário (ou o próprio OpenFOAM) e leia para verificar as capacidades do programa.

    Qualquer coisa, estamos aqui! Espero ter ajudado.
    Um abraco.

    ReplyDelete
  5. Boa noite Luiz, primeiramente parabéns pelo exelente trabalho, mas indo direto ao assunto, preciso mudar o modelo de turbulência de k-epsilon para K-omega, e não estou conseguindo, se puder me dar uma dica me ajudaria muito, desde já agradeço pela atenção.
    Obs: Meu caso está sendo rodado no sonicFoam.

    ReplyDelete
  6. Olá ?, o OpenFOAM tem a capacidade de selecionar os modelos a nível de execução. Em outras palavras, você seleciona o modelo e ele ativa a biblioteca que executa o dito. Contudo, cada biblioteca (e modelo) requer um conjunto de parâmetros diferentes. Estes parâmetros podem ser do modelo, condições de contorno etc. Ou seja, cabe a você alterar o caso para ser adaptado ao modelo k-omega. Como dica, veja os tutoriais que usam o modelo k-omega e verifique as diferenças. Boa sorte! Abs!

    ReplyDelete
  7. Luiz, comecei a usar o OpenFOAM recentemente e, em minha opinião, os maiores entraves ao seu uso são a complexidade do programa em si (criar, configurar e debugar as simulações) e a falta de literatura (tutoriais, livros, etc[*]). Observe que estou escrevendo em 2018; imagine agora as dificuldades quem estava usando OpenFOAM em 2008, data dos primeiros comentários acima, uma década atrás... Em minha opinião, OpenFOAM não é nada amigável e o investimento necessário (tempo) para aprendê-lo é muito alto. Agora, os resultados (quando se consegue algum) são ótimos e dizem -- dizem -- que ele desbanca produtos como o CFX em termos de velocidade de execução.

    [*] Não é que não existam tutoriais gratuitos na internet. Existem, mas ou são muito sucintos, incompletos ou omissos justamente naqueles detalhes de maior importância. Ou mesmo estão desatualizados e não funcionam para versões mais modernas do OpenFOAM. Já há livros, mas são poucos e caros. Enfim, o panorama no que diz respeito à literatura não é muito animador.

    ReplyDelete
    Replies
    1. Olá Fausto,

      Obrigado pelo comentário e interesse no post. De fato, concordo com você sobre a dificuldade inicial em usar o OpenFOAM. Eu comecei em 2004 (data de lançamento do OpenFOAM) e foi difícil... Nesse caso, o investimento inicial do usuário é tempo aliado à dedicação no aprendizado e, portanto, vai depender muito de cada pessoa. Mas hoje temos muita informação (a maioria em inglês) em fóruns de discussão, dois livros sobre OpenFOAM e todos os solvers possuem tutoriais. Em conjunto, existem treinamentos disponíveis no Brasil (p.e., na Wikki Brasil e também devo organizar um treinamento pela UFRJ esse ano). Isso facilita um pouco as coisas.

      O ANSYS Fluent, em seu início, era bastante parecido com o OpenFOAM pois a configuração dos casos era feita principalmente por linhas de comando. E o usuário enfrentava o desafio pois era o que tinha na época e porque sabia dos ganhos no futuro. Existe um esforço grande para a construção de interfaces gráficas para o OpenFOAM mas o custo de manutenção é alto e projetos robustos open-source nesse sentido ainda são embrionários. Mas entendo que isso iria facilitar as coisas.

      Abs!

      Delete