Difference between revisions of "OpenFOAM"

From OpenFOAMWiki
Line 16: Line 16:
 
Although there are several variations to OpenFOAM, the two main ones are those maintained by [http://wikki.gridcore.se/ Wikki Ltd.] and [http://www.openfoam.com/ OpenCFD Ltd.]:
 
Although there are several variations to OpenFOAM, the two main ones are those maintained by [http://wikki.gridcore.se/ Wikki Ltd.] and [http://www.openfoam.com/ OpenCFD Ltd.]:
  
* Official OpenFOAM (closed to community contributions); and
+
* Official OpenFOAM; and
* OpenFOAM-extend (open to community contributions).
+
* OpenFOAM-extend.
  
 
=== Official OpenFOAM ===
 
=== Official OpenFOAM ===
  
The Official OpenFOAM project is maintained by [http://www.openfoam.com/ OpenCFD Ltd.].  It is usually referred to by the latest version number followed by 'X' (for example, 1.6-X).  The official OpenFOAM is closed to community contributions, therefore it is missing the vast complement of community-contributed capabilitiesSome community-contributions are compatible with the latest Official OpenFOAM, but must be installed manually.
+
The Official OpenFOAM project is maintained by [http://www.openfoam.com/ OpenCFD Ltd.], the copyright holder of the name OpenFOAMThis variation is likely the most installed. Some features are available in this variation that are not available in the OpenFOAM-extend variation.  However, OpenFOAM-extend has consistently incorporated these changes into its source code, albeit one or two years later.  At present, features that only appear in the Official OpenFOAM include:
 
+
Some features are available in the Official OpenFOAM that are not available in OpenFOAM-extend.  However, OpenFOAM-extend has consistently incorporated these changes into its source code, albeit one or two years later.  At present, features that only appear in the Official OpenFOAM include:
+
  
 
* runtime selectable turbulence wall functions - alternate wall functions can be used without rewriting the turbulence models;
 
* runtime selectable turbulence wall functions - alternate wall functions can be used without rewriting the turbulence models;
Line 29: Line 27:
 
* Boussinesq buoyancy SIMPLE solver.
 
* Boussinesq buoyancy SIMPLE solver.
  
The full list is located [http://www.openfoam.com/docs/release-notes.php here].
+
For the full list, read the release notes for each version number that exceeds OpenFOAM-extend.  The latest release notes are located [http://www.openfoam.com/docs/release-notes.php here].
  
 
=== OpenFOAM-extend ===
 
=== OpenFOAM-extend ===
Line 37: Line 35:
 
:'''NOTE:''' Usually ''dev'' refers to a ''developmental version'' which will eventually become part of the release.  In OpenFOAM, this is not the case: 'dev' is the name of the core component of the OpenFOAM-extend project.
 
:'''NOTE:''' Usually ''dev'' refers to a ''developmental version'' which will eventually become part of the release.  In OpenFOAM, this is not the case: 'dev' is the name of the core component of the OpenFOAM-extend project.
  
This project is open to community contributions, and therefore has a vast library of capabilities unmatched by the Official OpenFOAM project, including:
+
This project is open to community contributions, none of which get adapted into the Official OpenFOAM.  Therefore the dev-version has a vast library of capabilities unmatched by the Official OpenFOAM project, including:
  
 
* GGI interfaces - useful for rotating reference frames, and stitching together multiple meshes;
 
* GGI interfaces - useful for rotating reference frames, and stitching together multiple meshes;
Line 45: Line 43:
 
** easily changing the case setup; and
 
** easily changing the case setup; and
 
** plotting the residuals on a graph as the solver is running.
 
** plotting the residuals on a graph as the solver is running.
 +
 +
Many of the contributions are compatible with both variations of OpenFOAM, and can be manually installed as desired.
  
 
The Official OpenFOAM and OpenFOAM-extend are two different open source projects.  The only reason they have not diverged is because OpenFOAM-extend continues to adapt the new releases of Official OpenFOAM into its own code.  Therefore, new features appearing in Official OpenFOAM eventually become part of OpenFOAM-extend.  These adaptations can take one or two years.  This practice continues<ref>[http://www.cfd-online.com/Forums/openfoam-bugs/67274-openfoam-1-6-ggi-mergemeshes.html#post254554]</ref>.
 
The Official OpenFOAM and OpenFOAM-extend are two different open source projects.  The only reason they have not diverged is because OpenFOAM-extend continues to adapt the new releases of Official OpenFOAM into its own code.  Therefore, new features appearing in Official OpenFOAM eventually become part of OpenFOAM-extend.  These adaptations can take one or two years.  This practice continues<ref>[http://www.cfd-online.com/Forums/openfoam-bugs/67274-openfoam-1-6-ggi-mergemeshes.html#post254554]</ref>.

Revision as of 16:37, 29 September 2010

OpenFOAM is an open source software suite written in C++, designed primarily around three-dimensional continuum mechanics, although its capabilities extend beyond this. The library headers for OpenFOAM use their own syntax and operators to build a framework for fully-realized vector field mathematics in three-dimensional Cartesian coordinates. Tensors are also fully supported in these operations, although tensor calculus is not included.

1 What's FOAM got to do with it?

In this world, many acronyms cleverly spell what they are about. Make no mistake, OpenFOAM is not one of those acronyms. Indeed several oddly chosen acronyms can be found within OpenFOAM's reach. For instance, the combined PISO and SIMPLE solver is has the unfortunate name "pimpleFoam". FOAM itself stands for Field Operation and Manipulation, referring to the mathematical nature of the code, not bubbly frothiness. So it really has nothing to do with foam... unless, of course, you are using it to model foam. Perhaps the developers were more concerned about what went into the code, rather than what to call it.

2 Origins

OpenFOAM, originally called FOAM, was proprietary software developed by Nabla Ltd., somehow associated with TFD Chalmers University, in Sweden. In 2004 Nabla Ltd. ceased operation and released FOAM as open source under GNU General Public License, under the name "OpenFOAM". At this point two independent companies were created:

Both of these companies were started by some of FOAM's original developers and have nothing to do with one another[1]. Each company maintains their own variation of OpenFOAM.

3 OpenFOAM variations

Although there are several variations to OpenFOAM, the two main ones are those maintained by Wikki Ltd. and OpenCFD Ltd.:

  • Official OpenFOAM; and
  • OpenFOAM-extend.

3.1 Official OpenFOAM

The Official OpenFOAM project is maintained by OpenCFD Ltd., the copyright holder of the name OpenFOAM. This variation is likely the most installed. Some features are available in this variation that are not available in the OpenFOAM-extend variation. However, OpenFOAM-extend has consistently incorporated these changes into its source code, albeit one or two years later. At present, features that only appear in the Official OpenFOAM include:

  • runtime selectable turbulence wall functions - alternate wall functions can be used without rewriting the turbulence models;
  • density-based thermophysical model - allows for the full energy equation with liquids; and
  • Boussinesq buoyancy SIMPLE solver.

For the full list, read the release notes for each version number that exceeds OpenFOAM-extend. The latest release notes are located here.

3.2 OpenFOAM-extend

The OpenFOAM-extend project is maintained by Wikki Ltd.. It is usually referred to by the latest version number, followed by 'dev' (for example 1.5-dev).

NOTE: Usually dev refers to a developmental version which will eventually become part of the release. In OpenFOAM, this is not the case: 'dev' is the name of the core component of the OpenFOAM-extend project.

This project is open to community contributions, none of which get adapted into the Official OpenFOAM. Therefore the dev-version has a vast library of capabilities unmatched by the Official OpenFOAM project, including:

  • GGI interfaces - useful for rotating reference frames, and stitching together multiple meshes;
  • groovyBC - allows arbitrary boundary conditions to be specified, without requiring coding / compiling;
  • newer rectangular matrix solvers' and
  • pyFOAM - a front end that makes managing OpenFOAM cases easier, i.e. it makes available many features that users of other software suites take for granted, such as:
    • easily changing the case setup; and
    • plotting the residuals on a graph as the solver is running.

Many of the contributions are compatible with both variations of OpenFOAM, and can be manually installed as desired.

The Official OpenFOAM and OpenFOAM-extend are two different open source projects. The only reason they have not diverged is because OpenFOAM-extend continues to adapt the new releases of Official OpenFOAM into its own code. Therefore, new features appearing in Official OpenFOAM eventually become part of OpenFOAM-extend. These adaptations can take one or two years. This practice continues[2].

3.3 Other variations

Other variations include:

4 Notes

  1. [1]
  2. [2]