OpenFOAM

OpenFOAM
OpenFOAM
Developer(s) OpenCFD Ltd.
Initial release 10 December 2004
Stable release 2.0.1 / 4 August 2011
Operating system Unix/Linux
License GNU General Public License
Website www.openfoam.com

OpenFOAM (Open 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 maintained by The OpenFOAM Foundation[1], which is sponsored by Silicon Graphics, the owner of the trademark to the name OpenFOAM.

Contents

History

The original development of OpenFOAM started in 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 highest modularity and object oriented features. The predecessor, FOAM, was sold by UK company Nabla Ltd. before being released as open source in 2004[2]. On 15th August 2011, OpenCFD announced its acquisition by Silicon Graphics Inc. (SGi)[3].

OpenFOAM was one of the first major scientific packages written in C++[citation needed]. It has also been the first major general-purpose CFD package to use polyhedral cells[citation needed].

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 [4]

 \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.

Structure of OpenFOAM

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

  • Tensor and field operations
  • Discretization of partial differential equations using a human-readable syntax
  • Solution of linear systems[5]
  • Solution of ordinary differential equations[6]
  • Automatic parallelization of high-level operations
  • Dynamic mesh[7]
  • General physical models
    • Rheological models[8]
    • Thermodynamic models and database[9]
    • Turbulence models[10]
    • Chemical reaction and kinetics models[11]
    • Lagrangian particle tracking methods[12]
    • Radiative heat transfer models
    • Multi-reference frame and single-reference frame methodologies

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:

  • Solvers: they perform the actual calculation to solve a specific continuum mechanics problem
  • Utilities: they are used to prepare the mesh, set-up the simulation case, process the results, and to perform operations other than solving the problem under examination

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[13]:

  • Basic CFD solvers
  • Incompressible flow with RANS and LES capabilities [14]
  • Compressible flow solvers with RANS and LES capabilities[15]
  • Buoyancy-driven flow solvers[16]
  • DNS and LES
  • Multiphase flow solvers[17]
  • Particle-tracking solvers
  • Solvers for combustion problems[18]
  • Solvers for conjugate heat transfer [19]
  • Molecular dynamics solvers[20]
  • Direct Simulation Monte Carlo solvers[21]
  • Electromagnetics solvers[22]
  • Solid dynamics solvers[23]

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

OpenFOAM utilities are subdivided into:

  • Mesh utilities
    • Mesh generation: they generate computational grids starting either from an input file (blockMesh), or from a generic geometry specified as STL file, which is meshed automatically with hex-dominant grids (snappyHexMesh)
    • Mesh conversion: they convert grids generated using other tools to the OpenFOAM format
    • Mesh manipulation: they perform specific operations on the mesh such as localized refinement, definition of regions, and others
  • Parallel processing utilities: they provide tools to decompose, reconstruct and re-distribute the computational case to perform parallel calculations
  • Pre-processing utilities: tools to prepare the simulation cases
  • Post-processing utilities: tools to process the results of simulation cases, including a plugin to interface OpenFOAM and ParaView.
  • Surface utilities
  • Thermophysical utilities

License

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

Advantages and Disadvantages

Advantages

  • Friendly syntax for partial differential equations
  • Unstructured polyhedral grid capabilities
  • Automatic parallelization of applications written using OpenFOAM high-level syntax
  • Wide range of applications and models ready to use
  • Commercial support and training provided by the developers
  • No license costs

Disadvantages

  • Absence of an integrated graphical user interface (stand-alone proprietary options are available)
  • The Programmer's guide does not provide sufficient details, making the learning curve steeper
  • The lack of maintained documentation makes it difficult for the new users

Forks and adaptations

Publicly available

  • blueCFD is a cross-compiled version of OpenFOAM that runs on Windows operating systems. The package also includes additional tools and functionality useful for OpenFOAM. It is produced by blueCAPE[24]
  • FreeFOAM[25] is geared towards freeing OpenFOAM from its system dependence, making it more portable and user-friendly for installation. The project closely tracks the official releases from OpenCFD and does not include additional functionality. CMake is used as a build system.
  • OpenFOAM-extend[26] is maintained by Wikki Ltd.[27] This fork has a large repository of community-generated contributions, much of which can be installed into Official OpenFOAM with minimal effort[28]. It is developed in parallel to the Official OpenFOAM, incorporating its latest versions, although these are released one or two years later.

Not publicly available

  • CastNet is a proprietary modelling and simulation environment produced by DHCAE Tools[29]. The application includes a graphical user interface front-end for OpenFOAM.
  • ICON FOAMpro CFD is maintained by ICON Process & Consulting Ltd[30]. It is developed mostly around automotive applications through collaboration with the Volkswagen Group[31], and Ford Motor Co [32]. This fork includes community-generated content as well as ICON-specific developments.
  • Symmscape[33] is a company that produces a family of software packages that use OpenFOAM. They include graphical user interfaces for OpenFOAM case setup, solution, and post processing.

Alternative software

Free and open source software

Proprietary software

References

External links

Official Resources

Community resources


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • OpenFOAM — Тип Open Source Field Operation And Manipulation Разработчик OpenCFD, Limited Операционная система Linux, UNIX Последняя версия 2.1.1 (2012 05 31) Тестовая версия (http://www.openfoam.com) …   Википедия

  • OpenFOAM — Entwickler OpenCFD Ltd. Aktuelle Version 2.0.0 (16. Juni 2011) Betriebssystem Linux Programmier­sprache C++ Kategorie …   Deutsch Wikipedia

  • OpenFOAM — Fichier:OF Logo.gif Développeur OpenCFD Ltd. Dernière version 2.0.1 (4 Aout 2011) [ …   Wikipédia en Français

  • OpenFOAM — (Open Field Operation and Manipulation) es una biblioteca C++ para personalizar y extender resolvedores numéricos de problemas de Mecánica de medios continuos, incluyendo Fluidomecánica computacional (CFD). Sin embargo, incluye también una gran… …   Wikipedia Español

  • ParaView — Infobox Software name = ParaView caption = author = developer = Sandia National Labs, Kitware Inc, Los Alamos National Labs. released = latest release version = 3.2.1 latest release date = operating system = Unix/Linux, Mac OS X, Microsoft… …   Wikipedia

  • Calculix — Basisdaten Entwickler: Guido Dhondt, Klaus Wittig Aktuelle Version …   Deutsch Wikipedia

  • CalculiX — CalculiX …   Википедия

  • Computer-aided engineering — CAE (англ. Computer aided engineering)  общее название для программ и программных пакетов, предназначенных для решения различных инженерных задач: расчётов, анализа и симуляции физических процессов. Расчётная часть пакетов чаще всего… …   Википедия

  • Calculix — Infobox Software name = CalculiX caption = Compressor of a turbocharger developer = Guido Dhondt, Klaus Wittig latest release version = 1.8 latest release date = 2008 operating system = Linux, Windows genre = Finite element analysis license = GPL …   Wikipedia

  • Direct simulation Monte Carlo — (DSMC) method uses probabilistic (Monte Carlo) simulation to solve the Boltzmann equation for finite Knudsen number fluid flows. The DSMC method was proposed by Prof. Graeme Bird,[1][2][3] Emeritus Professor of Aeronautics, University of Sydney.… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”