Skip to content
SanjeevBashyalPublic

About

Fork of OpenFOAM by OpenCFD Ltd. with my developments to couple turbulence with sediment transport

Topics

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

OpenFOAM logo

Welcome to the Official OpenFOAM® Repository!

The Industry-Leading Open-Source Fluid Simulation Software

Installation • How To Use • License • Trademark • Useful Links

OpenFOAM® is the industry-leading, free, (forever) open-source, general-purpose computational fluid dynamics (CFD) software, developed, maintained and released by Keysight Technologies.

OpenFOAM® has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics. For this reason, OpenFOAM® developed a large user base across most areas of engineering and science, from both commercial and academic organisations.

OpenFOAM® is professionally released every six months to include customer sponsored developments and contributions from the community - individual and group contributors, integrations, e.g. from extend-project and OpenFOAM Foundation Ltd., as well as OpenFOAM® Governance guided activities.

Installation

You can build OpenFOAM® in different ways for Windows, macOS, Linux and Unix-like operating systems. Please follow the links below that suits your needs:

Pre-compiled operating-system packages
Containers (Docker/Singularity)
  • Best for: Those who need a self-contained or specific version of OpenFOAM® without modifying their host system.
  • Method: This involves using pre-assembled DockerWhat is Docker? images for Windows/macOS/Linux or ApptainerWhat is Apptainer? images to run OpenFOAM® within a virtualized, isolated container.
  • Instructions:
Source-code compilation
  • Best for: Advanced users/developers that requires the latest features, experimental branches, or custom builds with specific optimizations or libraries.
  • Method: Download the source code and compile it yourself. This is typically done on Linux or within a WSL environment, and it requires all necessary dependencies to be manually installed.
  • Instructions:
Location README Requirements Build
OpenFOAM® README System requirements Build
ThirdParty README System requirements Build

If you need to modify the versions or locations of ThirdParty software, please read how the OpenFOAM® configuration is structured.

How do I know which version I am currently using?

The value of the $WM_PROJECT_DIR or even $WM_PROJECT_VERSION are not guaranteed to have any correspondence to the OpenFOAM® release (API) value. If OpenFOAM® has already been compiled, the build-time information is embedded into each application. For example, as displayed from blockMesh -help:

Using: OpenFOAM-com (2012) - visit www.openfoam.com
Build: b830beb5ea-20210429 (patch=210414)
Arch:  LSB;label=32;scalar=64

This output contains all of the more interesting information that we need:

item value
version com (eg, local development branch)
api 2012
commit b830beb5ea
author date 20210429
patch-level (20)210414
label/scalar size 32/64 bits

The Arch information may also include the solveScalar size if different than the scalar size.

As can be seen in this example, the git build information is supplemented by the date when the last change was authored, which can be helpful when the repository contains local changes. If you simply wish to know the current API and patch levels directly, the wmake -build-info provides the relevant information even when OpenFOAM® has not yet been compiled:

$ wmake -build-info
make
    api = 2012
    patch = 210414
    branch = master
    build = 308af39136-20210426

Similar information is available with foamEtcFile, using the -show-api or -show-patch options. For example,

$ foamEtcFile -show-api
2012

$ foamEtcFile -show-patch
210414

This output will generally be the easiest to parse for scripts. The $FOAM_API convenience environment variable may not reflect the patching changes made within the currently active environment and should be used with caution.

ThirdParty directory

OpenFOAM® normally ships with a directory of 3rd-party software and build scripts for some 3rd-party software that is either necessary or at least highly useful for OpenFOAM®, but which are not necessarily readily available on every operating system or cluster installation.

These 3rd-party sources are normally located in a directory parallel to the OpenFOAM® directory. For example,

/path/parent
|-- OpenFOAM-v2606
\-- ThirdParty-v2606

There are, however, many cases where this simple convention is inadequate:

  • When no additional 3rd party software is actually required (ie, the operating system or cluster installation provides it)

  • When we have changed the OpenFOAM® directory name to some arbitrary directory name, e.g. openfoam-sandbox2412, etc..

  • When we would like any additional 3rd party software to be located inside of the OpenFOAM® directory to ensure that the installation is encapsulated within a single directory structure. This can be necessary for cluster installations, or may simply be a convenient means of performing a software rollout for individual workstations.

  • When we have many different OpenFOAM® directories for testing or developing various different features but wish to use or reuse the same 3rd party software for them all.

The solution for these problems is a newer, more intelligent discovery when locating the ThirdParty directory with the following precedence:

  1. PROJECT/ThirdParty
    • for single-directory installations
  2. PREFIX/ThirdParty-VERSION
    • this corresponds to the traditional approach
  3. PREFIX/ThirdParty-vAPI
    • allows for an updated value of VERSION, eg, v2606-myCustom, without requiring a renamed ThirdParty. The API value would still be 2606 and the original ThirdParty-v2606/ would be found.
  4. PREFIX/ThirdParty-API
    • same as the previous example, but using an unadorned API value.
  5. PREFIX/ThirdParty-common
    • permits maximum reuse for various versions, for experienced users who are aware of potential version incompatibilities

If none of these directories are found to be suitable, it reverts to using PROJECT/ThirdParty as a dummy location (even if the directory does not exist). This is a safe fallback value since it is within the OpenFOAM® directory structure and can be trusted to have no negative side-effects. In the above, the following notation has been used:

name value meaning
PROJECT $WM_PROJECT_DIR The OpenFOAM® directory
PREFIX dirname $WM_PROJECT_DIR The OpenFOAM® parent directory
API foamEtcFiles -show-api The api or release version
VERSION $WM_PROJECT_VERSION The version we have chosen

To reduce the potential of false positive matches (perhaps some other software also uses ThirdParty-xxx for its naming), the directory test is accompanied by a OpenFOAM®-specific sanity test. The OpenFOAM® ThirdParty directory will contain either an Allwmake file or a platforms/ directory.

How to use

You can start using OpenFOAM® by launching a terminalWhat is Linux terminal?,What is Windows terminal? window and loading the OpenFOAM® environment in the terminal.

In its simplest form, simply source the appropriate etc/bashrc or etc/cshrc file to load the environment and start using OpenFOAM® tools such as blockMesh:

source <absolute path of the installation>/OpenFOAM-v2606/etc/bashrc

cd $FOAM_TUTORIALS/incompressible/simpleFoam/pitzDaily

blockMesh

For more usage details see the quickstart guide.

License

OpenFOAM® is free and open-source software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the file LICENSE.md in this directory or http://www.gnu.org/licenses/, for a description of the GNU General Public License terms under which you may redistribute files.

Trademark

OpenCFD Ltd grants use of its OpenFOAM® trademark by Third Parties on a licence basis. Keysight Technologies Ltd and OpenFOAM Foundation Ltd are currently permitted to use the Name and agreed Domain Name. For information on trademark use, please refer to the trademark policy guidelines.

Please contact Keysight Technologies if you have any questions about the use of the OpenFOAM® trademark.

Violations of the Trademark are monitored, and will be duly prosecuted.

Useful links

Copyright 2016-2025 OpenCFD Ltd Copyright 2026 Keysight Technologies

About

Fork of OpenFOAM by OpenCFD Ltd. with my developments to couple turbulence with sediment transport

Topics

Resources

Code of conduct

Contributing

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages