Forks and Variants

From OpenFOAMWiki

1 Introduction

Because OpenFOAM® as a software toolbox is licensed under the GNU General Public License, this means that you can freely create your own modified version of this toolbox, as long as you respect the trade mark and guide lines, listed here:

2 Definitions

The idea behind forking is that when several changes to the code are made, the distribution of the modified group of changes should use a different name from the original project, to avoid confusion, and should follow the policies and guidelines mentioned above.
A more detailed explanation is explained at Wikipedia: Fork (software development)
This is the denomination mostly used when the changes to the complete source code package don't seem substantial enough to require a fully dedicated source code branch for supporting the changes made. This usually occurs for situations where the changes are done only a few times for a particular version of a software or even when the changes are only provided as patch files.
Nonetheless, these variants must still abide to the policies and guidelines mentioned above.
Distribution methodologies
Given that the GNU General Public License allows to charge a fee for using software that has this license, there are mainly three kinds of distribution:
  1. Completely open to the general public, where anyone can download, contribute and use without any fees.
  2. Strictly commercial, where the software is only available for a fee.
  3. Hybrid commercial model, where the software is partially or completely available without a fee, contributions may or may not be allowed and that has support fees associated to it.

3 Forks

Here is a list of known forks that originated from OpenFOAM, sorted alphabetically:

3.1 Caelus-CML

Website: Caelus-CML
Description: Currently in version 5.10 (October 2015), it's officially a fork of OpenFOAM 2.1.1. It has been specially created for having a renewed, fully validated and documented source code base.
Bug/Issue tracker: Bug tracker on the repository Caelus-contributors
Status: Periodic releases, on April and October of every year.
Distribution method: Hybrid commercial model, made available freely to the public.

3.2 ENGYS' own builds of OpenFOAM

Website: ENGYS' own builds of OpenFOAM
Description: They provide their own builds of OpenFOAM, included with their own GUI solutions. It's not clearly identified as being a fork, but it's expected that the amount of changes made to the original source code would make it suitable to be identified as a fork.
Bug/Issue tracker: Available for customers only.
Distribution method: Strictly commercial.

3.3 foam-extend

Website: foam-extend
Description: Currently in version 3.2, it's formerly known as OpenFOAM 1.6-ext, this is now essentially a fork from OpenFOAM 1.6.x and is a project unrelated to OpenCFD/ESI and the OpenFOAM Foundation. This project was conceived to incorporate new features developed by the community, along with code that was dropped from OpenFOAM since 1.0 was released. Bug fixes from OpenFOAM 1.7.x and 2.x are merged into this fork with some delay. If you are missing a feature in the official branch, this is a good place to look if someone else developed it (also see Main_OFextendFeatures and Extend-bazaar). In addition to these, the variants OpenFOAM 1.4-dev and 1.5-dev are also part of this project and are from which part of the code for 1.6-ext was ported from.
Bug/Issue tracker: At the moment, there are two:
Distribution method: Completely open to the general public.
Status: Periodic releases.

3.4 FreeFOAM

Website: FreeFOAM
Description: Currently in version 0.1.2, is essentially a fork of OpenFOAM. It has been tracking the original source code to at least version OpenFOAM 2.1. The objective of this fork was to create a code base that relied on CMake to make the code compilable on any platform; along with using Python for assisting in scripting capabilities, instead of relying on sh/bash scripting.
Bug/Issue tracker: Mailing list for developers
Distribution method: Completely open to the general public.
Status: Currently distributed with Debian

3.5 iconCFD

Website: iconCFD
Description: From the description on their website, the level of modifications made to the code base it originated from, it should definitely allow for it to be tagged as being a fork. More specifically, it might even be forked from the predecessor of OpenFOAM, namely FOAM that was developed by Nabla Limited.
Bug/Issue tracker: Available for customers only.
Distribution method: Strictly commercial.

3.6 OpenFOAM+

Website: OpenFOAM Commercial website
Description: OpenCFD (ESI Group) is developing on top of the published releases made by the OpenFOAM Foundation. More details are available on their website.
  • Meaning of the name: OpenFOAM Plus, as in: OpenFOAM Foundation developments + OpenCFD developments
Bug/Issue tracker: Bug Reporting instructions page
Distribution method: Open to the general public. Requires registration to view/access the Git repositories and respective bug tracker.
Status: Periodic releases.

3.7 RapidCFD

Website: RapidCFD and RapidCFD @ Sim-Flow
Description: From the description on their website, it's a fork of OpenFOAM that has been specifically designed to be built with CUDA. Current version is a fork from OpenFOAM 2.3.1
Bug/Issue tracker: Issue tracker at RapidCFD-dev repository
Distribution method: Hybrid commercial model, made available freely to the public.

3.8 RheologicRemix

Website: Downloads at Rheologic
Description: Rheologic offers binaries of a popular open source CFD package for download (also for officially unsupported operating systems) under the name of RheologicRemix. All packages include, unless otherwise noted, Paraview and tight integration of SGE for the OpenMPI libraries and are binary-compatible with OpenFOAM (OPENFOAM® is a registered trade mark of OpenCFD Limited with whom Rheologic is not affiliated). The installation runs in $HOME with standard user-rights. The latest version is compatible with version 3.0.1 of OpenFOAM and runs out-of-the-box on following Linux distributions:
  • RHEL 6| CentOS 6 | Scientific Linux 6
  • RHEL 7 | CentOS 7 | Scientific Linux 7
  • Ubuntu 12 | Ubuntu 14
  • Debian 8
  • openSUSE 42
Bug/Issue tracker: Via email, provided at the bottom of the Downloads at Rheologic page.
Distribution method: Completely open to the general public.
Status: Periodic releases, follows official OpenFOAM releases

4 Variants

There are several variants currently in existence, where the most common ones are originated by the need to port OpenFOAM to other platforms. Most of these examples are already documented at the following wiki pages:

  • Windows - where are listed the several known ports for Windows;
  • Installation/Windows - where there is a more comprehensive list of known patches for modifying OpenFOAM to work on Windows;
  • Installation/Mac OS - where are listed several instructions that usually rely on patches for modifying OpenFOAM to work on Mac OS.