Difference between revisions of "OpenFOAM"

From OpenFOAMWiki
m (Notes: renamed section)
(revised page and updated a few links)
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:
  
 
== Origins ==
 
== Origins ==
OpenFOAM, originally called FOAM, was proprietary software developed by [http://www.foamcfd.org/Nabla/main/contact.html Nabla Ltd.], somehow associated with [http://www.chalmers.se/am/EN/ 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:
+
OpenFOAM, originally called FOAM, was proprietary software developed by [https://web.archive.org/web/20140603051311/http://www.foamcfd.org/Nabla/main/contact.html Nabla Ltd.], somehow associated with [http://www.chalmers.se/am/EN/ 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:
  
* [http://www.openfoam.com/ OpenCFD Ltd.] (maintains official OpenFOAM); and
+
* [https://web.archive.org/web/20100104085825/http://www.opencfd.co.uk/index.html OpenCFD Ltd], which developed and maintained OpenFOAM;
* [http://wikki.gridcore.se/ Wikki Ltd.] (maintains foam-extend).
+
* [http://wikki.gridcore.se/ Wikki Ltd.], which maintained and maintains foam-extend.
 +
 
 +
Both of these companies were started by some of FOAM's original developers and have nothing to do with one another<ref>[http://www.cfd-online.com/Forums/openfoam/64825-differences-between-1-5-x-1-5-dev.html#post217344 Differences between 1.5.x and 1.5-dev - post #4]</ref>.  Each company maintains their own variation of OpenFOAM.
 +
 
 +
Years later, OpenCFD Ltd was acquired in August 2011 by SGI and at the same time, the OpenFOAM Foundation was created, for ensuring that OpenFOAM continued it's development as open source software. A year later, in September 2012, OpenCFD Ltd was then acquired by ESI, as documented here: [http://www.openfoam.com/download/openfoam-history.php OpenFOAM History].
 +
 
 +
Sometime in late 2014, the core team split up at OpenCFD and a few of the people who left went on to create the [http://cfd.direct/about/ CFD DIrect] company in March 2015, which currently maintains the OpenFOAM Foundation's releases and development, namely the OpenFOAM software.
 +
 
 +
After that split up, at OpenCFD Ltd (ESI Group) the developments progressed and several contributions continue to made to the OpenFOAM Foundation, as detailed here: [http://www.openfoam.com/download/openfoam-history.php OpenFOAM History]. Due to several reasons, OpenCFD Ltd (ESI Group) began releasing their own fork [http://www.openfoam.com/version-v3.0+/ OpenFOAM+], in order for their latest features and ongoing developments, as well as client contributions, to reach the public faster and under a common project.
  
Both of these companies were started by some of FOAM's original developers and have nothing to do with one another<ref>[http://www.cfd-online.com/Forums/openfoam-code-other/64825-differences-between-1-5-x-1-5-dev.html#4]</ref>.  Each company maintains their own variation of OpenFOAM.
 
  
 
== OpenFOAM forks and variations ==
 
== OpenFOAM forks and variations ==
  
Although there are several forks and variations to OpenFOAM, the two main lines of development (referred here as ''variations'') are those maintained by each company and that are described in more detail in the following subsections:
+
Although there are several forks and variations to OpenFOAM, the three main lines of development (referred here as ''variations'') are those maintained by each company and that are described in more detail in the following subsections:
 +
 
 +
* [[#OpenFOAM|OpenFOAM]] is maintained by the [http://www.openfoam.org OpenFOAM Foundation]
 +
* [[#OpenFOAM+|OpenFOAM+]] is maintained by [http://www.openfoam.com ESI-OpenCFD]
 +
* [[#foam-extend|foam-extend]] is maintained by  [http://wikki.gridcore.se/ Wikki Ltd]
  
* [[#Official OpenFOAM|Official OpenFOAM]] is maintained by [http://www.openfoam.com/ OpenCFD Ltd.]
 
* [[#foam-extend|foam-extend]] is maintained by  [http://wikki.gridcore.se/ Wikki Ltd.]
 
  
 
Note: For a more complete list of all existing forks and variants, please refer to the page [[Forks and Variants]].
 
Note: For a more complete list of all existing forks and variants, please refer to the page [[Forks and Variants]].
  
=== Official OpenFOAM ===
+
=== OpenFOAM ===
  
The official OpenFOAM project is maintained by [http://www.openfoam.com/ OpenCFD Ltd.] and the [http://www.openfoam.org/ OpenFOAM Foundation], the copyright holder(s) of the name OpenFOAM. This variation is likely the most installed.  Some features are available in this variation that are not available in the foam-extend variation.  However, foam-extend gradually incorporates these changes into its source code, albeit one or two years later.  At present, features that only appear in the official OpenFOAM include:
+
The official OpenFOAM project is maintained by the [http://www.openfoam.org/ OpenFOAM Foundation], the copyright holder.  
  
* runtime selectable turbulence wall functions - alternate wall functions can be used without rewriting the turbulence models;
+
OpenFOAM is likely the most installed variation. Some features are available in this variation that are not available in the foam-extend variation.  However, foam-extend gradually incorporates these changes into its source code, albeit a few years later.
* density-based thermophysical model - allows for the full energy equation with liquids; and
+
 
* Boussinesq buoyancy SIMPLE solver.
+
For the full list of changes and differences, please read the release notes for each major version of each variation, which is provided on this wiki's [[Main Page]].
 +
 
 +
 
 +
=== OpenFOAM+ ===
 +
 
 +
The OpenFOAM+ project is maintained by [http://openfoam.com ESI-OpenCFD], which is the trade mark holder of "OPENFOAM" and publishes their own fork named OpenFOAM+ that is based on OpenFOAM, which provides new features; those new features that are later on be contributed to the OpenFOAM Foundation, once they reach maturity.
 +
 
 +
For the full list of changes and differences, please read the release notes for each major version of each variation, which is provided on this wiki's [[Main Page]].
  
For the full list, please read the release notes for each major version of each variation, which is provided on this wiki's [[Main Page]].
 
  
 
=== foam-extend ===
 
=== foam-extend ===
Line 38: Line 53:
 
* OpenFOAM 1.5-dev [http://sourceforge.net/p/openfoam-extend/svn/HEAD/tree/trunk/Core/OpenFOAM-1.5-dev/]
 
* OpenFOAM 1.5-dev [http://sourceforge.net/p/openfoam-extend/svn/HEAD/tree/trunk/Core/OpenFOAM-1.5-dev/]
 
* OpenFOAM 1.6-ext [http://sourceforge.net/p/openfoam-extend/OpenFOAM-1.6-ext/ci/master/tree/]
 
* OpenFOAM 1.6-ext [http://sourceforge.net/p/openfoam-extend/OpenFOAM-1.6-ext/ci/master/tree/]
* foam-extend 3.0, 3.1 and onwards [http://foam-extend.org]
+
* foam-extend 3.0, 3.1, 3.2 and onwards [http://foam-extend.org]
  
 
;Notes:
 
;Notes:
Line 45: Line 60:
 
: Complete renaming to ''foam-extend'' occurred with the release of foam-extend 3.0: [http://sourceforge.net/p/openfoam-extend/wiki/ReleaseNotes3.0/ Release Notes for foam-extend 3.0]
 
: Complete renaming to ''foam-extend'' occurred with the release of foam-extend 3.0: [http://sourceforge.net/p/openfoam-extend/wiki/ReleaseNotes3.0/ Release Notes for foam-extend 3.0]
  
This project is open to community contributions (see [[Extend-bazaar]]), none of which get adapted into the official OpenFOAM.  Therefore foam-extend has a vast library of capabilities unmatched by the official OpenFOAM project, including:
+
This project is open to community contributions (see [[Extend-bazaar]]), none of which get adapted into the official OpenFOAM.  Therefore foam-extend has a vast library of capabilities unmatched by the official OpenFOAM project, including (note: this list needs to be revised):
  
 
* 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 58: Line 73:
 
Many of the contributions are compatible with both variations of OpenFOAM, and can be manually installed as desired.
 
Many of the contributions are compatible with both variations of OpenFOAM, and can be manually installed as desired.
  
The official OpenFOAM and foam-extend are two different open source projects.  The only reason they have not diverged is because foam-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 foam-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 OpenFOAM, OpenFOAM+ and foam-extend projects are different open source projects.  The only reason they have not completely diverged is because foam-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 foam-extend.  These adaptations can take a few years.  This practice continues<ref>[http://www.cfd-online.com/Forums/openfoam-bugs/67274-openfoam-1-6-ggi-mergemeshes.html#post254554 OpenFOAM 1.6 GGI and mergeMeshes - post #5]</ref>.
  
  

Latest revision as of 12:05, 20 August 2016

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:

  • OpenCFD Ltd, which developed and maintained OpenFOAM;
  • Wikki Ltd., which maintained and maintains foam-extend.

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.

Years later, OpenCFD Ltd was acquired in August 2011 by SGI and at the same time, the OpenFOAM Foundation was created, for ensuring that OpenFOAM continued it's development as open source software. A year later, in September 2012, OpenCFD Ltd was then acquired by ESI, as documented here: OpenFOAM History.

Sometime in late 2014, the core team split up at OpenCFD and a few of the people who left went on to create the CFD DIrect company in March 2015, which currently maintains the OpenFOAM Foundation's releases and development, namely the OpenFOAM software.

After that split up, at OpenCFD Ltd (ESI Group) the developments progressed and several contributions continue to made to the OpenFOAM Foundation, as detailed here: OpenFOAM History. Due to several reasons, OpenCFD Ltd (ESI Group) began releasing their own fork OpenFOAM+, in order for their latest features and ongoing developments, as well as client contributions, to reach the public faster and under a common project.


3 OpenFOAM forks and variations

Although there are several forks and variations to OpenFOAM, the three main lines of development (referred here as variations) are those maintained by each company and that are described in more detail in the following subsections:


Note: For a more complete list of all existing forks and variants, please refer to the page Forks and Variants.

3.1 OpenFOAM

The official OpenFOAM project is maintained by the OpenFOAM Foundation, the copyright holder.

OpenFOAM is likely the most installed variation. Some features are available in this variation that are not available in the foam-extend variation. However, foam-extend gradually incorporates these changes into its source code, albeit a few years later.

For the full list of changes and differences, please read the release notes for each major version of each variation, which is provided on this wiki's Main Page.


3.2 OpenFOAM+

The OpenFOAM+ project is maintained by ESI-OpenCFD, which is the trade mark holder of "OPENFOAM" and publishes their own fork named OpenFOAM+ that is based on OpenFOAM, which provides new features; those new features that are later on be contributed to the OpenFOAM Foundation, once they reach maturity.

For the full list of changes and differences, please read the release notes for each major version of each variation, which is provided on this wiki's Main Page.


3.3 foam-extend

The foam-extend project is maintained by Wikki Ltd.. The nomenclature of each version has changed overtime and for an historic record, it's as follows:

  • OpenFOAM 1.4-dev [1]
  • OpenFOAM 1.4.1-dev [2]
  • OpenFOAM 1.5-dev [3]
  • OpenFOAM 1.6-ext [4]
  • foam-extend 3.0, 3.1, 3.2 and onwards [5]
Notes
Usually dev refers to a developmental version which will eventually become part of the release. In foam-extend, this was not the case: 'dev' is the name of the core component of the foam-extend project.
The ext suffix came as an intermediate renaming of the dev to the extend profile of development.
Complete renaming to foam-extend occurred with the release of foam-extend 3.0: Release Notes for foam-extend 3.0

This project is open to community contributions (see Extend-bazaar), none of which get adapted into the official OpenFOAM. Therefore foam-extend has a vast library of capabilities unmatched by the official OpenFOAM project, including (note: this list needs to be revised):

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

For the full list, please read the release notes for each major version of each variation, which is provided on this wiki's Main Page.

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

The OpenFOAM, OpenFOAM+ and foam-extend projects are different open source projects. The only reason they have not completely diverged is because foam-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 foam-extend. These adaptations can take a few years. This practice continues[2].


4 References

  1. Differences between 1.5.x and 1.5-dev - post #4
  2. OpenFOAM 1.6 GGI and mergeMeshes - post #5