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.

6 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