OpenFOAM
OpenFOAM sendo executado em um terminal | |
Autor | Henry Weller |
Desenvolvedor | CFD Direct,[1] OpenCFD Ltd[2] |
Lançamento | 10 de dezembro de 2004 (19 anos)[3] |
Versão estável | 3.0.1 (15 de dezembro de 2015[4]) |
Escrito em | C++ |
Sistema operacional | Unix/Linux |
Gênero(s) | Dinâmica dos Fluidos Computacional |
Licença | GNU General Public License |
Página oficial | www |
OpenFOAM ("Open source Field Operation And Manipulation") é um programa em linguagem C++ para o desenvolvimento de ferramentas de análise numérica com pré- e pós-processamento para solução de problemas da mecânica do contínuo, incluindo Dinâmica dos Fluidos Computacional (CFD). O código é lançado com o status livre e fonte aberta sob a GNU General Public License. É gerenciado, mantido e distribuído pela The OpenFOAM Foundation,[5] suportada por contribuidores voluntários. O nome OpenFOAM é uma marca registrada da OpenCFD Ltd[6] e licenciado para a OpenFOAM Foundation Ltd.
História
[editar | editar código-fonte]O OpenFOAM (originalmente FOAM) foi criado por Henry Weller no final da década de 1980 no Imperial College London, com o propósito de desenvolver uma plataforma de simulação geral mais capacitada e flexível que o padrão da época, a linguagem Fortran. Isto levou à escolha do C++ como linguagem de programação, devido à sua modularidade e características de orientação a objetos. Em 2004 Henry Weller, Chris Greenshields e Mattijs Janssens fundaram a OpenCFD Ltd, com o propósito de desenvolver e lançar o OpenFOAM.[7] Em 8 de agosto de 2011 a OpenCFD foi adquirida pela Silicon Graphics International (SGI).[8] Ao mesmo tempo o copyright do OpenFOAM foi transferido para a OpenFOAM Foundation, organização então fundada, sem fins lucrativos, que gerencia o OpenFOAM e o distribui ao público em geral. Em 12 de setembro de 2012 o Grupo ESI Group anunciou a aquisição da OpenCFD Ltd do SGI.[9] Em 2014 Weller e Greenshields deixaram o ESI Group e continuaram o desenvolvimento e gerência do OpenFOAM, em nome da OpenFOAM Foundation, do CFD Direct.[10]
Características de destaque
[editar | editar código-fonte]Sintaxe
[editar | editar código-fonte]Uma característica de destaque do OpenFOAM é sua sintaxe para operações com tensores e equações diferenciais parciais, que identifica em sua codificação de forma clara as equações a serem resolvidas. Por exemplo, a equação[11]
é codificada como
solve
(
fvm::ddt(rho,U)
+ fvm::div(phi,U)
- fvm::laplacian(mu,U)
==
- fvc::grad(p)
);
Esta sintaxe, obtida mediante o uso de Programação Orientada a Objetos (POO) e sobrecarga de operadores, permite aos usuários criar solvers padronizados com relativa facilidade. Contudo, a padronização de códigos torna-se mais desafiadora com o aumento da penetração no código da biblioteca OpenFOAM, devido à deficiência de documentação, e grande uso de metaprogramação C++.
Extensibilidade
[editar | editar código-fonte]Os usuários podem criar objetos personalizados, tais como condições de contorno ou modelos de turbulência, que irão funcionar com solvers existentes sem a necessidade de modificar ou recompilar o código fonte existente. O OpenFOAM faz isto através da combinação de construtores virtuais com o uso de classes de base simplificadas como interfaces. Como resultado, isto confere ao OpenFOAM boas qualidades de extensibilidade. O OpenFOAM refere-se a esta capacidade como seleção em tempo de execução.[12]
Estrutura do OpenFOAM
[editar | editar código-fonte]O OpenFOAM é constituído de uma grande biblioteca base, que dispõe de estruturas essenciais dos códigos:
- Operações tensoriais e de campo
- Discretização de equações diferenciais parciais usando uma sintaxe legível
- Solução de sistemas lineares[13]
- Solução de equações diferenciais ordinárias[14]
- Paralelização automática de operações de alto-nível
- Malha dinâmica[15]
- Modelos físicos gerais
- Modelos reológicos[16]
- Modelos termodinâmicos e base de dados[17]
- Modelos de turbulência[18]
- Reações químicas e modelos cinéticos[19]
- Métodos de rastreamento lagrangiano de partículas[20]
- Modelos de transmissão de calor por radiação
- Metodologias de estrutura multi-referenciada e simples-referenciada.
Os recursos fornecidos pela biblioteca são então usados para desenvolver aplicativos. Os aplicativos são escritos usando a sintaxe de alto nível introduzido pelo OpenFOAM, que visa reproduzir a notação matemática convencional. Existem duas categorias de aplicativos:
- Solvers: efetuam os cálculos para resolver um problema específico da mecânica do contínuo
- Utilitários: são usados para preparar a malha, selecionar o caso de simulação, processar os resultados e para realizar outras operações além de resolver o problema em análise.
- ↑ CFD Direct Ltd
- ↑ OpenCFD Ltd
- ↑ «OpenFOAM Version 1.0»
- ↑ «OpenFOAM Version 3.0.1»
- ↑ The OpenFOAM Foundation homepage
- ↑ OpenCFD homepage
- ↑ OpenFOAM Release History
- ↑ «Press Releases: SGI Acquires OpenCFD Ltd., the Leader In Open Source Computational Fluid Dynamics (CFD) Software». SGI. Consultado em 30 de abril de 2016. Arquivado do original em 6 de dezembro de 2012
- ↑ «Acquisition of OpenCFD Ltd., The leader in Open Source software in Computational Fluid Dynamics». ESI Group. 11 de setembro de 2012. Consultado em 30 de abril de 2016
- ↑ «OpenFOAM». CFD Direct. Consultado em 30 de abril de 2016
- ↑ Creating solvers in OpenFOAM
- ↑ OpenFOAM's run-time selection mechanism explained
- ↑ Linear system solvers in OpenFOAM
- ↑ Ordinary differential equation solvers in OpenFOAM
- ↑ Dynamic mesh in OpenFOAM
- ↑ Rheological models in OpenFOAM
- ↑ Thermophysical models in OpenFOAM
- ↑ Turbulence models in OpenFOAM
- ↑ Chemical reactions and kinetics models in OpenFOAM
- ↑ Lagrangian particle tracking in OpenFOAM
Ligações externas
[editar | editar código-fonte]Official resources
[editar | editar código-fonte]- Official OpenFOAM website
- Download OpenFOAM
- OpenFOAM official documentation
- OpenFOAM bug-reporting system
- Official OpenFOAM+ website
- Download OpenFOAM+
- OpenFOAM+ official documentation
- OpenFOAM+ bug-reporting system