May 13, 2009

Desenvolvimento no OpenFOAM

Este post surgiu em resposta à dúvida do Vitor Henrique no Grupo de Discussão do CFD-Brasil. Para aqueles que queiram mais detalhes, visitem o grupo de discussão.

Para desenvolvimento de códigos próprios, ou seja, novos solvers ou utilitários, tanto faz usar a versão fornecida pelo site da OpenCFD ou as versões de desenvolvimento disponíveis. Em ambas você tem a possibilidade de criar seus códigos. Para quem está iniciando o uso tanto do Linux quanto do OpenFOAM, eu até sugiro que se comece pela versão do site. Quando se sentir mais confiante e com mais traquejo em Linux, migre para uma versão de desenvolvimento. Lógico que não preciso dizer que o conhecimento da linguagem de programação C++ é importante, né?

Porque existem as versões de desenvolvimento?

  • Bugs são possíveis em qualquer código, seja ele livre ou não. Quando se descobre um bug, ele pode ser corrigido e imediatamente incorporado à versão de desenvolvimento. Na versão do site, as correções serão incorporadas apenas na próxima versão do OpenFOAM.
  • Contribuições de terceiros podem ser anexadas ao OpenFOAM a qualquer momento. Ou seja, novos solvers, utilitários, novas funcionalidades, etc. podem ser adicionados a qualquer momento na versão de desenvolvimento.

Existem outras vantagens em usar as versões de desenvolvimento, mas para mim, as principais são as que coloquei acima. Contudo, acredito que o usuário tenha que ter um conhecimento mais profundo tanto do sistema quanto do funcionamento do OpenFOAM para usar essas versões. Imagine você, ainda aprendendo a usar e programar no OpenFOAM e tendo que compilar tudo (!) do zero, tendo que verificar alguns erros de compilação (possíveis de acontecer) quando atualiza o OpenFOAM para a versão mais nova? Eu não vejo isso como vantagem, até que você tenha conhecimento suficiente para poder lidar com isso. Aprenda a compilar seus próprios solvers, depois compile o OpenFOAM por inteiro. Um passo de cada vez.

Mas isso é uma escolha pessoal. Você pode querer começar o seu aprendizado pela compilação, sei lá... Existem vários recursos que podem ser usados para auxiliar e acomodar o OpenFOAM ao sistema. Entre essas funcionalidades, compilação de códigos em paralelo, usar o compilador do próprio sistema, otimização com o processador, bibliotecas diferentes do padrão, etc.

Existem duas versões de desenvolvimento, obtidas através dos programas git e svn.

A versão git é desenvolvida e atualizada pela OpenCFD, mantenedora oficial do OpenFOAM. Já a versão fornecida pelo svn é mantida pelo Prof. Hrvoje Jasak (Wikki). Eu uso essa última e tenho vários motivos para tal, entre eles:

  • Atualização muito rápida. Qualquer erro (e são muito poucos) são corrigidos e atualizados quase que imediatamente.
  • Por filosofia, o Prof. Jasak é muito mais aberto à incorporar contribuições de terceiros. Com isso, possui muito mais solvers e utilitários.
  • Funcionalidades exclusivas, implementadas pela comunidade do OpenFOAM.
  • O Hrvoje faz questão de manter sua versão de desenvolvimento em harmonia com a da OpenCFD. Nota: houve uma grande mudança na estrutura do OpenFOAM-1.4.1 para a 1.5. O Jasak adaptou tudo para ficar de acordo com o padrão escolhido pela OpenCFD.
  • Quando o Hrvoje veio para o Brasil para a minha banca de defesa de doutorado, levei ele e a esposa ao bar Devassa na Barra da Tijuca. Pô, o cara fez questão de pagar a minha cerveja!! Não tem como, uso a versão dele...

Brincadeiras à parte, na minha opinião, a OpenCFD é um pouco fechada em relação a receber e incorporar as contribuições da comunidade do OpenFOAM. E eu, por filosofia, não gosto disso.

Para quem quer tentar compilar a versão OpenFOAM dev do svn, deve ter instalado em seu computador os seguintes pacotes (nomes relativos à distribuição Linux OpenSuse):

subversion
binutils
mpfr
gmp
flex++

Para maiores referências, leia as mensagens no Fórum do OpenFOAM, em especial esta aqui.

Para baixar a versão dev, vá ao diretório ~/OpenFOAM e use o comando:

svn checkout http://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Core/OpenFOAM-1.5-dev/ OpenFOAM-1.5-dev/

A última versão do código fonte do OpenFOAM-1.5-dev será baixado em seu computador. Para compilação, vá ao diretório OpenFOAM-1.5-dev e execute:

./Allwmake

Note que TUDO será compilado e esse processo pode ser um pouco demorado, dependendo da configuração da sua máquina e das suas configurações no OpenFOAM.

Então, fica aí a dica para os novos desenvolvedores no OpenFOAM. Boa sorte!
Um abraço!

No comments:

Post a Comment