To make OpenFOAM readily available to a larger range of users, OpenCFD works actively with the community surrounding respective Linux distributions to provide precompiled binary installations as system packages. Additionally, precompiled binary installations are available for MS-Windows.
Pre-compiled binaries are currently available for the following systems:
The packages do not contain
visualization (eg, ParaView/runTimePostProcessing) or
external-solver (eg, PETSc) modules:
see the corresponding FAQ
Ubuntu and openSUSE generally receive first attention:
- Ubuntu is a very popular distribution with OpenFOAM users.
- openSUSE is the favoured development platform for OpenCFD Ltd. Since it is an RPM-based system, a well-crafted spec file can also address RedHat-based distributions.
- Using the OpenFOAM package
- Installation locations
- Package structure (RPM, partly Debian/Ubuntu)
- Package links
- Frequently Asked Questions
Using the OpenFOAM package
After installation, the OpenFOAM environment can be accessed as described in running.
- The Debian (Ubuntu) and RPM packages always include the OpenFOAM shell sessions.
- If the
openfoam-selectoris available at the time of installation, the newly installed packages will be registered with it, allowing use of the openfoam-selector mechanism.
The packages have been designed to allow simultaneous installation of different OpenFOAM versions without file or package-name collisions. This lets users experiment with different OpenFOAM versions, perform back-to-back comparisons, or simply continue with an older version until completion of a particular project.
The system installation prefix
/usr/lib/openfoam is used, below
which individual versions are located.
The OpenFOAM bash session wrapper will be created under
Satisfying the wishes and requirements of all users is a difficult
task. One user (or sysadmin) wants the "only install what I really
need" approach [more control, less diskspace]. Another group of users
prefers the "just install everything" approach [less control, more
We have attempted to strike a reasonable balance between both. For
any given base package (e.g.,
openfoam2106 etc), there are a variant
of sub-packages ("only-what-I-need"), but also a
default package for
the "install-everything" folks.
Here are some common selections:
|User Group||What to install||Runtime||Compilation||Tutorials|
The longer descriptions:
|base||OpenFOAM runtime (solver, utils, libraries). Double precision, int32 compilation.||base-common|
|base-dev (devel)||Development package. Source code headers and wmake build chain. Needed for developing with OpenFOAM, but also if dynamic code compilation is required.||base, base-tools|
|base-default||Meta-package for everything potentially needed||base-dev (devel), base-tutorials.|
|base-tools||Binaries for OpenFOAM-specific build tools for base-dev (devel).||base-common|
|base-common||Version information and share files.|
Note the package names for Debian (Ubuntu) and RPM packages are intentionally
kept very similar, except
dev (Debian) vs.
develop (RPM) names
that follow the respective system conventions.
Package structure (RPM, partly Debian/Ubuntu)
To allow smooth installation and use of multiple OpenFOAM versions on the same system, some installations use a meta-package structure:
|openfoam||The top-level meta package that provides links and requirements for the most recent OpenFOAM release|
|openfoam-selector||Similar to mpi-selector, used to switch active OpenFOAM versions|
|openfoam2012||The maintenance version for v2012|
|openfoam2006||The maintenance version for v2006|
|openfoam1912||The maintenance version for v1912|
The version-specific packages (eg,
install into distinct directories so that it is possible to have
multiple versions available on your systems.
openfoam package registers which of the
version-specific packages corresponds to the current release.
|Ubuntu||dl.openfoam.com/repos/deb/||Actively maintained by OpenCFD||notes|
|openSUSE science||package openfoam, download||Actively maintained by OpenCFD||notes|
|Fedora/CentOS/RedHat copr||package openfoam||In development by OpenCFD||notes|
For precompiled packaging, the following content is provided for reference purposes, and to help when scripting:
Frequently Asked Questions
I like using cfMesh, is it included in the precompiled packages?
Yes it is included.
Why isn't ParaView included in the precompiled packages? This would be much more convenient than having to compile it myself!
Some more details are given in modules/visualization, but essentially the paraview version distributed with the operating system or a newer binary package is likely fully adequate for your needs. We would prefer to focus on extending and improving the OpenFOAM support in ParaView/VTK directly since this provides the best long-term and most universal solution.
So a binary download of paraview makes sense, but runTimePostProcessing (or Catalyst) will work with that?
There is unfortunately no easily achievable and unique solution that will satisfy all user requirements (eg, llvm pipelines, virtual graphics, etc). Coping with this diversity is exactly the reason that the visualization module was split off from the main OpenFOAM source tree in the first place. If you do have a good recipe for incorporating a reasonably flexible packaged runTimePostProcessing or Catalyst, we would be happy to incorporate that into our builds. Please use the regular issue tracker.
Why is the external-solver (PETSc) module not included?
While this could make some sense, the default system installations for PETSc may be using a different MPI (eg, mpich vs openmpi etc) that would be incompatible with how OpenFOAM has been compiled. The range of solver types included in a system installation of PETSc may or may not correspond to your requirements.
Copyright (C) 2020-2022 OpenCFD Ltd.