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. The distributions currently include the following:
System |
---|
Ubuntu |
openSUSE |
CentOS/RedHat/Fedora |
Docker |
Ubuntu and openSUSE generally receive first attention:
- Ubuntu is a very popular distribution with OpenFOAM users.
- openSUSE is historically 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
- Sub-packages
- Package structure (RPM, partly Debian/Ubuntu)
- Package links
- Resources
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-selector
is available at the time of installation, the newly installed packages will be registered with it, allowing use of the openfoam-selector mechanism.
Installation locations
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.
For example,
/usr/lib/openfoam/openfoam2012/
/usr/lib/openfoam/openfoam2006/
/usr/lib/openfoam/openfoam1912/
- ...
The OpenFOAM bash session wrapper will be created under /usr/bin
.
For example,
/usr/bin/openfoam2012
/usr/bin/openfoam2006
/usr/bin/openfoam1912
- ...
Sub-packages
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
diskspace].
We have attempted to strike a reasonable balance between both. For
any given base package (e.g., openfoam2012
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 |
---|---|---|---|---|
minimalist | base | yes | no | no |
traditional | base-dev (devel) | yes | yes | no |
everything | base-default | yes | yes | yes |
The longer descriptions:
Sub-Package | Description | Includes |
---|---|---|
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-tutorials | Tutorials | base-common |
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:
Package | Comments |
---|---|
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, openfoam2012
, openfoam2006
, ...)
install into distinct directories so that it is possible to have
multiple versions available on your systems.
The top-level openfoam
package registers which of the
version-specific packages corresponds to the current release.
Package links
System | Links | Status | Notes |
---|---|---|---|
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 |
Resources
For precompiled packaging, the following content is provided for reference purposes, and to help when scripting:
System | Files | Scripts |
---|---|---|
common | openfoamVERSION.spec rpmlintrc | create-tar |
openSUSE | ||
CentOS/RedHat | openfoam-selector.spec | copr fetch |
Ubuntu | add repo |
Copyright (C) 2020 OpenCFD Ltd.