update links/information for 2212, add apptainer information

Mark Olesen
2022-12-22 13:31:59 +01:00
parent f7cddc8935
commit 9763ad1f6c
14 changed files with 196 additions and 56 deletions

@ -12,7 +12,8 @@
| Version | Build |
|---------|-------|
| v2112 | [Build][latest-build] |
| v2212 | [Build][latest-build] |
| v2206 | [Build][v2206-build] |
| v2106 | [Build][v2106-build] |
| v2012 | [Build][v2012-build] |
| v2006 | [Build][v2006-build] |
@ -169,12 +170,15 @@ wmake build toolchain itself.
--------
Copyright (C) 2020-2021 OpenCFD Ltd.
Copyright (C) 2020-2022 OpenCFD Ltd.
[all-repos]: https://develop.openfoam.com/Development/
[latest-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
[v2312-build]: https://develop.openfoam.com/Development/openfoam/blob/maintenance-v2312/doc/Build.md
[v2306-build]: https://develop.openfoam.com/Development/openfoam/blob/maintenance-v2306/doc/Build.md
[v2212-build]: https://develop.openfoam.com/Development/openfoam/blob/maintenance-v2212/doc/Build.md
[v2206-build]: https://develop.openfoam.com/Development/openfoam/blob/maintenance-v2206/doc/Build.md
[v2112-build]: https://develop.openfoam.com/Development/openfoam/blob/maintenance-v2112/doc/Build.md
[v2106-build]: https://develop.openfoam.com/Development/openfoam/blob/maintenance-v2106/doc/Build.md

@ -23,15 +23,15 @@ overview:
```
$ foamEtcFile -list
$HOME/.OpenFOAM/2206
$HOME/.OpenFOAM/2212
$HOME/.OpenFOAM
/path/OpenFOAM-v2206/site/2206/etc
/path/OpenFOAM-v2206/site/etc
/path/OpenFOAM-v2206/etc
/path/OpenFOAM-v2212/site/2212/etc
/path/OpenFOAM-v2212/site/etc
/path/OpenFOAM-v2212/etc
```
Both the *user* paths (located as `$HOME/.OpenFOAM/`) and the *group*
paths (`/path/OpenFOAM-v2206/site/`) support additional API versioning
paths (`/path/OpenFOAM-v2212/site/`) support additional API versioning
to allow different settings between releases. The **other**
corresponds to the settings shipped with a particular OpenFOAM release.
@ -132,7 +132,7 @@ mechanism allows direct setting of variables without needing to edit
any files. For example, to source the OpenFOAM environment with a
different compiler:
```
source /path/to/OpenFOAM-v2206 WM_COMPILER=Clang
source /path/to/OpenFOAM-v2212 WM_COMPILER=Clang
```
If the argument does not appear to be an assignment of a variable, it
will attempt to resolve it as a file and then source that. This
@ -154,9 +154,9 @@ export WM_LABEL_SIZE=64
```
It is then possible to easily switch between different configurations:
```
source /path/to/OpenFOAM-v2206 clang50-int64
source /path/to/OpenFOAM-v2206 gcc82
source /path/to/OpenFOAM-v2206 wingw
source /path/to/OpenFOAM-v2212 clang50-int64
source /path/to/OpenFOAM-v2212 gcc82
source /path/to/OpenFOAM-v2212 wingw
```
Armed with this information, the user should be able to make
adjustments to the OpenFOAM configuration with a good degree of
@ -171,7 +171,7 @@ the OpenFOAM directory to a fixed location (removing any bash
discovery magic):
```
bin/tools/foamConfigurePaths \
-project-path "/opt/openfoam2206" \
-project-path "/opt/openfoam2212" \
-boost boost-system \
-cgal cgal-system \
-fftw fftw-system \

@ -51,9 +51,10 @@ some _Linux_ systems and _MS-Windows_
|---------------|
| [Ubuntu](/precompiled/debian) |
| [openSUSE](/precompiled/suse) |
| [CentOS/RedHat/Fedora](/precompiled/redhat) |
| [RedHat _derivatives_](/precompiled/redhat) |
| [Windows](/precompiled/windows) |
| [Docker](/precompiled/docker) |
| [Apptainer](/precompiled/apptainer) |
| [Docker / Podman](/precompiled/docker) |
## [![coding](/icons/code.svg "code")](#coding) Coding

BIN
icons/apptainer.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

3
icons/rockylinux.svg Normal file

@ -0,0 +1,3 @@
<svg role="img"
width="48" height="48"
viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Rocky Linux</title><path d="M23.332 15.957c.433-1.239.668-2.57.668-3.957 0-6.627-5.373-12-12-12S0 5.373 0 12c0 3.28 1.315 6.251 3.447 8.417L15.62 8.245l3.005 3.005zm-2.192 3.819l-5.52-5.52L6.975 22.9c1.528.706 3.23 1.1 5.025 1.1 3.661 0 6.94-1.64 9.14-4.224z"/></svg>

After

Width:  |  Height:  |  Size: 369 B

@ -109,7 +109,7 @@ _existing_ OpenFOAM installation (ubuntu docker build):
RUN mkdir -p /home/ofuser/src && \
git clone --depth=1 https://develop.openfoam.com/modules/visualization.git \
/home/ofuser/src/visualization && \
/usr/bin/openfoam2206 -DVTK_DIR=/usr/include/vtk-7.1 \
/usr/bin/openfoam2212 -DVTK_DIR=/usr/include/vtk-7.1 \
-c '/home/ofuser/src/visualization/Allwmake -prefix=openfoam' ;\
rm -rf /home/ofuser/src/visualization
```

@ -20,9 +20,10 @@ Pre-compiled binaries are currently available for the following systems:
|---------------|
| [Ubuntu](/precompiled/debian) |
| [openSUSE](/precompiled/suse) |
| [CentOS/RedHat/Fedora](/precompiled/redhat) |
| [RedHat _derivatives_](/precompiled/redhat) |
| [Windows](/precompiled/windows) |
| [Docker](/precompiled/docker) |
| [Apptainer](/precompiled/apptainer) |
| [Docker / Podman](/precompiled/docker) |
![!!](/icons/alert-triangle.svg) The packages do ***not*** contain
@ -67,6 +68,7 @@ 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/openfoam2212/`
- `/usr/lib/openfoam/openfoam2206/`
- `/usr/lib/openfoam/openfoam2112/`
- `/usr/lib/openfoam/openfoam2106/`
@ -75,6 +77,7 @@ For example,
The OpenFOAM bash session wrapper will be created under `/usr/bin`.
For example,
- `/usr/bin/openfoam2212`
- `/usr/bin/openfoam2206`
- `/usr/bin/openfoam2112`
- `/usr/bin/openfoam2106`
@ -90,7 +93,7 @@ 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., `openfoam2206` etc), there are a variant
any given *base* package (e.g., `openfoam2212` etc), there are a variant
of sub-packages (_"only-what-I-need"_), but also a `default` package for
the _"install-everything"_ folks.
@ -132,7 +135,7 @@ the same system, some installations use a meta-package structure:
| openfoam2112 | The maintenance version for v2112 |
| openfoam2106 | The maintenance version for v2106 |
The version-specific packages (eg, `openfoam2206`, `openfoam2112`, ...)
The version-specific packages (eg, `openfoam2212`, `openfoam2206`, ...)
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
@ -146,7 +149,7 @@ version-specific packages corresponds to the current release.
|---------------|--------------|----------------|---------------|
| [Ubuntu](https://sourceforge.net/projects/openfoam/files/repos/deb/) | [dl.openfoam.com/repos/deb/](https://dl.openfoam.com/repos/deb/) | Actively maintained by OpenCFD | [notes](/precompiled/debian) |
| [openSUSE science](https://build.opensuse.org/project/show/science) | package [openfoam](https://build.opensuse.org/package/show/science/openfoam), [download](https://software.opensuse.org//download.html?project=science&package=openfoam) | Actively maintained by OpenCFD | [notes](/precompiled/suse) |
| [Fedora/CentOS/RedHat copr](https://copr.fedorainfracloud.org/coprs/openfoam/) | package [openfoam](https://copr.fedorainfracloud.org/coprs/openfoam/openfoam/) | In development by OpenCFD | [notes](/precompiled/redhat) |
| [RedHat _derivatives_: copr](https://copr.fedorainfracloud.org/coprs/openfoam/) | package [openfoam](https://copr.fedorainfracloud.org/coprs/openfoam/openfoam/) | In development by OpenCFD | [notes](/precompiled/redhat) |
## Resources
@ -158,7 +161,7 @@ reference purposes, and to help when scripting:
|---------------|---------------|-----------------|
| common | [openfoamAPI.spec](/packaging/common/openfoamAPI.spec) [rpmlintrc](/packaging/common/openfoam-rpmlintrc) | [create-tar](/packaging/common/create-tar.sh) |
| openSUSE | | |
| CentOS/RedHat | [openfoam-selector.spec](/packaging/redhat/openfoam-selector.spec) | [copr fetch](/packaging/redhat/copr-fetch.sh) |
| RedHat _derivatives_ | [openfoam-selector.spec](/packaging/redhat/openfoam-selector.spec) | [copr fetch](/packaging/redhat/copr-fetch.sh) |
| Ubuntu | | [add repo](/packaging/debian/add-debian-repo.sh) |
| Docker | | [run script][run-script] |

121
precompiled/apptainer.md Normal file

@ -0,0 +1,121 @@
<!-- --- title: Precompiled Packages (apptainer) -->
[![home](/icons/home.svg "wiki home")](/home)
[![packages](/icons/package.svg "packages")](/precompiled)
----
[[_TOC_]]
## ![>](/icons/apptainer.png) Apptainer
[Apptainer][apptainer] _(formerly known as singularity)_ is
a container image system favoured on HPC systems.
For those already familar with docker or podman containers,
[apptainer][apptainer] uses a slightly different approach:
- Runs without elevated (root) privileges
- Images are saved as physical files to disk
### About the images
For overall flexibility, the OpenFOAM [apptainer][apptainer] support
is provided via description files in the
[packaging/containers][packaging-containers] repository
rather than pre-assembled images. The download bandwidth will be
essentially identical in both cases.
![!!](/icons/alert-triangle.svg) The packages do ***not*** contain
_visualization_ (eg, ParaView/runTimePostProcessing) or
_external-solver_ (eg, PETSc) modules: <br/>
see the [corresponding **FAQ**](/precompiled#frequently-asked-questions)
## Creating an OpenFOAM apptainer image
Creating an [apptainer][apptainer] image is a simple as downloading
the container description files from the
[packaging/containers][packaging-containers] repository.
Select and edit the definitions to suit your purposes and build the
image. For example,
```
apptainer build --fakeroot openfoam2212.sif openfoam-run_rocky.def
```
which will build the file `openfoam2212.sif` from the image
description file, using the [RockyLinux](rockylinux.org) base image.
A `.sif` extension (singularity image format) is often used for the
apptainer files but is not required.
### Notes
It is recommended to base OpenFOAM [apptainer][apptainer] images on the
framework provided by the [packaging/containers][packaging-containers]
repository. In addition to providing the plain sequencing of package
installation, the included file assets (openfoam-files.rc/) provide
for a coherent runtime environment with the OpenFOAM environment
properly initialised.
## Running OpenFOAM in an apptainer
Running OpenFOAM in an [apptainer][apptainer] is absolutely straight
forward.
Simply place the generated apptainer file somewhere convenient in your
path (eg, `$HOME/bin` etc) and use it.
For example,
```
$ openfoam2212.sif
```
This will open an interactive shell with the OpenFOAM environment
active, with the current local directory mounted within the container.
### Running interactively
Running an interactive shell with the OpenFOAM environment active is
the default behaviour for the image and the internal run-script.
For example,
```
$ openfoam2212.sif
```
### Running non-interactively
It is also possible to use the image in batch mode.
For example,
```
$ openfoam2212.sif blockMesh -help
```
It is also possible to use as for running shell scripts.
For example,
```
$ openfoam2212.sif -c './Allrun'
```
Note that the entry point within the image itself also has some option
handling.
For example,
```
$ openfoam2212.sif -help
```
---
Copyright (C) 2022 OpenCFD Ltd.
[apptainer]: https://apptainer.org
[packaging-containers]: https://develop.openfoam.com/packaging/containers
[dockerhub-opencfd]: https://hub.docker.com/u/opencfd
[run-script]: https://develop.openfoam.com/packaging/containers/-/raw/main/openfoam-docker
[link paraview]: https://www.paraview.org/download/
[faq paraview]: https://discourse.paraview.org/t/i-want-to-visualize-my-openfoam-simulation-results-with-paraview-but-im-confused-which-version-should-i-use

@ -10,10 +10,10 @@ _Precompiled packages (Ubuntu)_ <br>
curl https://dl.openfoam.com/add-debian-repo.sh | sudo bash
# Install preferred package. Eg,
sudo apt-get install openfoam2206-default
sudo apt-get install openfoam2212-default
# Use the openfoam shell session. Eg,
openfoam2206
openfoam2212
```
![!!](/icons/alert-triangle.svg) The packages do ***not*** contain
@ -55,7 +55,7 @@ which conveniently [bundles several operations](#description-install-script).
After this you should immediately be able to install your preferred
OpenFOAM package. For example,
```
sudo apt-get install openfoam2206-default
sudo apt-get install openfoam2212-default
```
If your Ubuntu installation is a somewhat older, you may also need to
update the signing certificates first:
@ -66,7 +66,7 @@ sudo apt-get update
After migrating from one version to another, you can remove the old
version with the usual commands. For example,
```
sudo apt-get autoremove openfoam2206-default
sudo apt-get autoremove openfoam2212-default
```
### Supported versions and distributions
@ -90,9 +90,9 @@ descriptions, the following represent typical installation commands:
|User Group | Command |
|---------------|------------------|
| minimalist | `sudo apt-get install openfoam2206` |
| traditional | `sudo apt-get install openfoam2206-dev` |
| everything | `sudo apt-get install openfoam2206-default` |
| minimalist | `sudo apt-get install openfoam2212` |
| traditional | `sudo apt-get install openfoam2212-dev` |
| everything | `sudo apt-get install openfoam2212-default` |
### Installation locations
@ -109,7 +109,7 @@ As documented in [precompiled packages - OpenFOAM environment](/precompiled#envi
After adding the repositories and installing a particular version of
OpenFOAM, upgrade notifications should also appear
(for example for `openfoam2206`):
(for example for `openfoam2212`):
![ubuntu-upgrade](/images/ubuntu-update.png)
@ -152,7 +152,7 @@ export WM_PROJECT_DIR=/usr/share/openfoam
which means you should immediately be able to install
your preferred OpenFOAM package. For example,
```
sudo apt-get install openfoam2206-default
sudo apt-get install openfoam2212-default
```
- <em>Cannot find MPI library</em><br/>

@ -1,12 +1,13 @@
<!-- --- title: Precompiled Packages (docker) -->
<!-- --- title: Precompiled Packages (docker/podman) -->
[![home](/icons/home.svg "wiki home")](/home)
[![packages](/icons/package.svg "packages")](/precompiled)
_Precompiled packages (Docker)_ <br>
_Precompiled packages (Docker / Podman)_ <br>
**Quick-start:** <br>
If docker is already installed and setup, simply download the
If docker or podman are already installed and setup,
simply download the
[_openfoam-docker_ script][run-script] and run it.
Post-process with the [native ParaView][link paraview], for better
@ -63,7 +64,7 @@ corresponding [packaging/containers][packaging-containers] files.
OpenFOAM versions and image _flavours_. For example,
```
$ chmod +x openfoam-docker
$ ln -sf openfoam-docker openfoam2206-run
$ ln -sf openfoam-docker openfoam2212-run
```
- Verify that the script (or link) can be executed,
and take a look at some of the available options:
@ -84,7 +85,7 @@ been made, calling it without any arguments will bind in the local
directory and start the image with an OpenFOAM environment.
Eg,
```
$ openfoam2206-run
$ openfoam2212-run
```
This will open an interactive shell with the OpenFOAM environment
@ -185,9 +186,9 @@ Some possible commands after installing (Linux only):
shows the local images available. For example,
```
REPOSITORY TAG IMAGE ID CREATED SIZE
opencfd/openfoam-run 2206 abcxxxxxxxxx N days ago 640MB
opencfd/openfoam-run 2212 abcxxxxxxxxx N days ago 640MB
opencfd/openfoam-run latest abcxxxxxxxxx N days ago 640MB
opencfd/openfoam-dev 2206 defxxxxxxxxx N days ago 1.38GB
opencfd/openfoam-dev 2212 defxxxxxxxxx N days ago 1.38GB
opencfd/openfoam-dev latest defxxxxxxxxx N days ago 1.38GB
...
```

@ -13,7 +13,7 @@ see the [corresponding **FAQ**](/precompiled#frequently-asked-questions)
[[_TOC_]]
## ![>](/icons/centos.svg "centos")![>](/icons/redhat.svg)![>](/icons/fedora.svg) CentOS/RedHat/Fedora
## ![>](/icons/centos.svg "centos")![>](/icons/redhat.svg)![>](/icons/rockylinux.svg "rocky")![>](/icons/fedora.svg) CentOS/RedHat/Rocky/Fedora
For RedHat-based systems, OpenCFD Ltd. current uses the
[_copr_](https://copr.fedorainfracloud.org/) infrastructure to provide
@ -21,6 +21,13 @@ RPM packages. These precompiled packages leverage standard components
available from _EPEL_ (Extra Packages for Enterprise Linux)
and some elements of _PowerTools_ as well.
![!!](/icons/alert-triangle.svg) <b>This information unfortunately
no longer applies to CentOS-9/RedHat-9. The _PowerTools_ repository
has been replaced with a _CBR_ repository with much limited functionality.
In the process, they have removed the metis and scotch
libraries which are essential for domain decomposition!</b>
These should also be enabled _prior_ to further installation
_(Fedora users can possibly skip this part)_.
```
@ -70,9 +77,9 @@ descriptions, the following represent typical installation commands:
|User Group | Command |
|---------------|------------------|
| minimalist | `sudo yum install openfoam2106` |
| traditional | `sudo yum install openfoam2106-devel` |
| everything | `sudo yum install openfoam2106-default` |
| minimalist | `sudo yum install openfoam2212` |
| traditional | `sudo yum install openfoam2212-devel` |
| everything | `sudo yum install openfoam2212-default` |
### Installation locations
@ -89,7 +96,7 @@ As documented in [precompiled packages - OpenFOAM environment](/precompiled#envi
|System | Links | Status | Notes |
|---------------|--------------|----------------|---------------|
| [Fedora/CentOS/RedHat copr](https://copr.fedorainfracloud.org/coprs/openfoam/) | package [openfoam](https://copr.fedorainfracloud.org/coprs/openfoam/openfoam/) | Developed by OpenCFD | |
| [RedHat _derivatives_: copr](https://copr.fedorainfracloud.org/coprs/openfoam/) | package [openfoam](https://copr.fedorainfracloud.org/coprs/openfoam/openfoam/) | Developed by OpenCFD | |
---

@ -12,10 +12,10 @@ _Precompiled packages (openSUSE)_ <br>
sudo zypper refresh
# Install preferred package. Eg,
sudo zypper install openfoam2206-default
sudo zypper install openfoam2212-default
# Use the openfoam shell session. Eg,
openfoam2206
openfoam2212
```
![!!](/icons/alert-triangle.svg) The packages do ***not*** contain
@ -40,7 +40,7 @@ https://software.opensuse.org//download.html?project=science&package=openfoam
and follow the instructions there.
Note that this is a meta-package and individual version downloads are also possible.
For example,
https://software.opensuse.org//download.html?project=science&package=openfoam2106
https://software.opensuse.org//download.html?project=science&package=openfoam2212
If you already have the _Science_ repository registered on your system,
you should be able to install it directly with `zypper`:
@ -69,9 +69,9 @@ descriptions, the following represent typical installation commands:
|User Group | Command |
|---------------|------------------|
| minimalist | `sudo zypper install openfoam2106` |
| traditional | `sudo zypper install openfoam2106-devel` |
| everything | `sudo zypper install openfoam2106-default` |
| minimalist | `sudo zypper install openfoam2212` |
| traditional | `sudo zypper install openfoam2212-devel` |
| everything | `sudo zypper install openfoam2212-default` |
### Installation locations

@ -18,9 +18,9 @@ To display which versions are installed:
```
$ openfoam-selector --list
openfoam
openfoam2106
openfoam2112
openfoam2206
openfoam2212
```
To set a particular version
```

@ -12,17 +12,17 @@
Depending on your packaging system (or system administrator),
various OpenFOAM shell sessions may be available. For example,
```
/usr/bin/openfoam -> openfoam2206
/usr/bin/openfoam -> openfoam2212
/usr/bin/openfoam2212
/usr/bin/openfoam2206
/usr/bin/openfoam2112
/usr/bin/openfoam2106
```
They provide the simplest means of starting OpenFOAM immediately and
can be used for an _interactive_ bash session, or to run a single
OpenFOAM command within the OpenFOAM environment.
Using the `-help` option for the respective shell session
(e.g., `openfoam2206 -help`) displays some useful information.
(e.g., `openfoam2212 -help`) displays some useful information.
## Purpose
@ -48,14 +48,14 @@ For example,
```
$ openfoam
* Using: OpenFOAM-2206 (2206) - visit www.openfoam.com
* Using: OpenFOAM-2212 (2212) - visit www.openfoam.com
* Build: ...
* Arch: label=32;scalar=64
* Platform: linux64GccDPInt32Opt (mpi=sys-openmpi)
OpenFOAM shell session - use 'exit' to quit
openfoam2206:~/
openfoam2212:~/
mark$
```
@ -86,9 +86,9 @@ It is also possible to execute arbitrary shell sequences with the
well-known `-c` option. For example,
```
$ openfoam2206 -c 'echo "openfoam=$WM_PROJECT_DIR uses $WM_OPTIONS"'
$ openfoam2212 -c 'echo "openfoam=$WM_PROJECT_DIR uses $WM_OPTIONS"'
```
yields: `openfoam=/usr/lib/openfoam/openfoam2206 uses linux64GccDPInt32Opt`
yields: `openfoam=/usr/lib/openfoam/openfoam2212 uses linux64GccDPInt32Opt`
## Notes