OpenFOAM

OpenFOAM

OpenFOAM running in a terminal
Original author(s) Henry Weller
Developer(s) CFD Direct,[1] OpenCFD Ltd[2]
Initial release 10 December 2004 (2004-12-10)[3]
Stable release 3.0.1 / 15 December 2015 (2015-12-15)[4]
Written in C++
Operating system Unix/Linux
Type Computational fluid dynamics, simulation software
License GPLv3
Website www.openfoam.org, www.openfoam.com

OpenFOAM (for "Open source Field Operation And Manipulation") is a C++ toolbox for the development of customized numerical solvers, and pre-/post-processing utilities for the solution of continuum mechanics problems, including computational fluid dynamics (CFD). The code is released as free and open source software under the GNU General Public License. It is managed, maintained and distributed by The OpenFOAM Foundation,[5] which is supported by voluntary contributors. The OpenFOAM name is a registered trademark of OpenCFD Ltd[6] and licensed to the OpenFOAM Foundation Ltd.

History

OpenFOAM (originally, FOAM) was created by Henry Weller from the late 1980s at Imperial College, London, to develop a more powerful and flexible general simulation platform than the de facto standard at the time, FORTRAN. This led to the choice of C++ as programming language, due to its modularity and object oriented features. In 2004, Henry Weller, Chris Greenshields and Mattijs Janssens founded OpenCFD Ltd to develop and release OpenFOAM.[7] On 8 August 2011, OpenCFD was acquired by Silicon Graphics International (SGI).[8] At the same time, the copyright of OpenFOAM was transferred to the OpenFOAM Foundation, a newly founded, not-for-profit organisation that manages OpenFOAM and distributes it to the general public. On 12 September 2012, the ESI Group announced the acquisition of OpenCFD Ltd from SGI.[9] In 2014, Weller and Greenshields left ESI Group and continue the development and management of OpenFOAM, on behalf of the OpenFOAM Foundation, at CFD Direct.[10]

Distinguishing features

Syntax

One distinguishing feature of OpenFOAM is its syntax for tensor operations and partial differential equations that closely resembles the equations being solved. For example, the equation[11]

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

is represented by the code

solve
(
     fvm::ddt(rho,U)
   + fvm::div(phi,U)
   - fvm::laplacian(mu,U)
  ==
   - fvc::grad(p)
);

This syntax, achieved through the use of object oriented programming and operator overloading, enables users to create custom solvers with relative ease. However, code customization becomes more challenging with increasing depth into the OpenFOAM library, owing to a lack of documentation, and heavy use of template metaprogramming.

Extensibility

Users can create custom objects, such as boundary conditions or turbulence models, that will work with existing solvers without having to modify or recompile the existing source code. OpenFOAM accomplishes this by combining virtual constructors with the use of simplified base classes as interfaces. As a result, this gives OpenFOAM good extensibility qualities. OpenFOAM refers to this capability as run-time selection[12]

Structure of OpenFOAM

OpenFOAM is constituted by a large base library, which offers the core capabilities of the code:

The capabilities provided by the library are then used to develop applications. Applications are written using the high-level syntax introduced by OpenFOAM, which aims at reproducing the conventional mathematical notation. Two categories of applications exist:

Each application provides specific capabilities: for example the application called blockMesh is used to generate meshes from an input file provided by the user, while another application called icoFoam solves the Navier-Stokes equations for an incompressible laminar flow.

Finally, a set of third-party packages are used to provide parallel functionality (i.e.OpenMPI) and graphical post-processing (ParaView).

Capabilities

OpenFOAM solvers include:[21]

Simulation of burning Methane. The Graphical user interface is ParaView.

In addition to the standard solvers, OpenFOAM's syntax lends itself to the easy creation of custom solvers.

OpenFOAM utilities are subdivided into:

License

OpenFOAM is free and open source software, released under the GNU General Public License version 3.[32]

Advantages and disadvantages

Advantages

Disadvantages

Forks and adaptations

Free software

Software available for purchase

Alternative software

References

  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. Retrieved 2012-12-18.
  9. "Acquisition of OpenCFD Ltd., The leader in Open Source software in Computational Fluid Dynamics". ESI Group. 2012-09-11. Retrieved 2012-12-18.
  10. "OpenFOAM". CFD Direct. 2015-03-25.
  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
  21. OpenFOAM features
  22. OpenFOAM incompressible flow solvers
  23. OpenFOAM Compressible flow solvers
  24. OpenFOAM buoyancy-driven flow solvers
  25. Multiphase flow solvers
  26. OpenFOAM solvers for combustion
  27. OpenFOAM solvers for conjugate heat transfer
  28. OpenFOAM molecular dynamics solvers
  29. OpenFOAM Direct Simulation Monte Carlo solvers
  30. OpenFOAM Electromagnetics solvers
  31. OpenFOAM solid dynamics solvers
  32. OpenFOAM Licensing Page
  33. blueCAPE's homepage
  34. HELYX-OS Product Homepage
  35. 1 2 Engys Ltd
  36. OpenFlow source code patch
  37. OpenFOAM-extend Project Home Page
  38. Wikki Ltd.
  39. Solvers, Utilities, and Other contributions
  40. 1 2 "simFlow homepage". simFlow CFD. Retrieved 2015-09-08.
  41. SwiftBlock project homepage
  42. 1 2 Original SwiftSnap and SwiftBlock announcement
  43. SwiftSnap project homepage
  44. Rheologic GmbH download page
  45. Rheologic GmbH
  46. Demonstration site of OpenFOAM under Android and Ubuntu
  47. blog about OpenFOAM on Raspberry Pi
  48. Caedium RANS Flow add-on
  49. Ciespace CFD Product Page
  50. "CONSELF | Consulting by Yourself". conself.com. Retrieved 2015-12-11.
  51. DHCAE Tools homepage
  52. HELYX Graphical User Interface
  53. SimScale company website
  54. Visual-CFD
  55. Advanced Simulation Library Homepage
  56. depts.washington.edu/clawpack
  57. COOLFluiD homepage
  58. deal.II homepage
  59. "FEATool: Matlab FEM Finite Element Multiphysics Toolbox". Precise Simulation Ltd. Retrieved 20 November 2015.
  60. Gerris homepage
  61. OpenFVM homepage
  62. SU2 homepage

External links

Official resources

Community resources

Other resources

This article is issued from Wikipedia - version of the Friday, April 22, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.