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.
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
Um abraço!
Comments
Post a Comment