OpenFOAM

OpenFOAM
Captura de tela
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; há 8 anos[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.org, www.openfoam.com

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

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

Sintaxe

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]

ρ U t + ϕ U μ U = p {\displaystyle {\frac {\partial \rho \mathbf {U} }{\partial t}}+\nabla \cdot \phi \mathbf {U} -\nabla \cdot \mu \nabla \mathbf {U} =-\nabla p}

é 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

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

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.

Referências

  1. CFD Direct Ltd
  2. OpenCFD Ltd
  3. «OpenFOAM Version 1.0» 
  4. «OpenFOAM Version 3.0.1» 
  5. The OpenFOAM Foundation homepage
  6. OpenCFD homepage
  7. OpenFOAM Release History
  8. «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 
  9. «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 
  10. «OpenFOAM». CFD Direct. Consultado em 30 de abril de 2016  A referência emprega parâmetros obsoletos |acessdate= (ajuda)
  11. Creating solvers in OpenFOAM
  12. OpenFOAM's run-time selection mechanism explained
  13. Linear system solvers in OpenFOAM
  14. Ordinary differential equation solvers in OpenFOAM
  15. Dynamic mesh in OpenFOAM
  16. Rheological models in OpenFOAM
  17. Thermophysical models in OpenFOAM
  18. Turbulence models in OpenFOAM
  19. Chemical reactions and kinetics models in OpenFOAM
  20. Lagrangian particle tracking in OpenFOAM

Ligações externas

Official resources

  • Official OpenFOAM website
  • Download OpenFOAM
  • OpenFOAM official documentation
  • OpenFOAM bug-reporting system
  • Official OpenFOAM+ website
  • Download OpenFOAM+
  • OpenFOAM+ official documentation
  • OpenFOAM+ bug-reporting system

Community resources

  • OpenFOAM Forum at CFD Online
  • OpenFOAM wiki
  • A Blog about OpenFOAM in Chinese
  • v
  • d
  • e
Software para análise numérica
Software livre
Software não-livre
Lista de programas para análise numérica Comparação de programas para análise numérica
  • v
  • d
  • e
Software CAE
Software livre
  • Advanced Simulation Library
  • Calculix
  • Code_Aster
  • Code Saturne
  • Elmer
  • FEniCS
  • FreeFem++
  • Gerris
  • MOOSE
  • Open CASCADE Technology
  • OpenFOAM
  • QBlade
  • Salome
  • SU2 code
  • Vortexje
Software não-livre
  • Actran
  • Ansys
  • Abaqus
  • ADINA
  • Autodesk Simulation
  • Altair
  • AVL
  • CATIA
  • PTC Creo
  • COMSOL Multiphysics
  • CST Studio Suite
  • DIANA
  • Fluent
  • Femap
  • KIVA
  • MSC ADAMS
  • Nastran
  • Sesam
  • Siemens NX
  • SolidWorks
  • StressCheck
  • RFEM
  • Working Model