
For flexibility and extensibility, OpenFOAM uses modules
to provide additional functionality.
There are a variety of different reasons for using modules:
- inclusion of a larger, independent code base
- improve isolation of third-party dependencies
- support more flexible build options
- staging functionality that may be later merged into OpenFOAM
Also see related information about git submodules in the
modules/README.
[[TOC]]
OpenQBMM
OpenQBMM is a suite of solvers to simulate
polydisperse multiphase flows using Quadrature-Based Moment Methods
(QBMM) based on OpenFOAM.
Why a module?
- retain development, release timing that is independent of the
OpenFOAM release schedule.
- ensure that development changes to OpenFOAM are propagated to
OpenQBMM as soon as possible.
adios
The adios module
provides a function object for checkpointing OpenFOAM using the
ADIOS library.
Why a module?
- isolate library dependencies
- additional, non-core functionality
avalanche
The avalanche module
provides libraries, solver and utilities for avalanche modelling using
finiteArea.
Why a module?
- additional, non-core functionality
- retain independent development
cfmesh
The cfmesh module
is a populate alternative mesher for OpenFOAM.
Why a module?
- integration of larger, existing code base
external-solver
The external solver module
is primarily an OpenFOAM solver interface to the
PETsc suite of linear solvers.
Why a module?
- isolate library dependencies
- development timing independent of the OpenFOAM release schedule
visualization
The visualization module
is a collection of visualization interfaces for OpenFOAM, primarily
VTK/ParaView based.
Note that the visualization module incorporates some elements which
were previously part of the OpenFOAM source tree, but have since been
relocated to module for the improved flexibility and to make the core
OpenFOAM libraries independent of visualization.
Why a module?
- isolate library dependencies
- support multi-build.
Eg, different VTK or ParaView versions, different rendering types etc.
More details...
Examples
A user example
of using the visualization module to add an additional layer to an
existing OpenFOAM installation (ubuntu docker build):
Copyright (C) 2020-2022 OpenCFD Ltd.