|
|
<!-- --- title: OpenFOAM Modules -->
|
|
|
|
|
|
[![home](/icons/home.svg "wiki home")](/home)
|
|
|
[![build](/icons/cpu.svg "build")](/building)
|
|
|
|
|
|
For flexibility and extensibility, OpenFOAM uses [_modules_][all-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](https://develop.openfoam.com/Development/openfoam/-/tree/develop/modules#git).
|
|
|
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
|
|
## OpenQBMM
|
|
|
|
|
|
[OpenQBMM](OpenQBMM.org) 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](https://develop.openfoam.com/Community/adiosfoam)
|
|
|
provides a function object for checkpointing OpenFOAM using the
|
|
|
[ADIOS](https://csmd.ornl.gov/software/adios2) library.
|
|
|
|
|
|
***Why a module?***
|
|
|
|
|
|
- isolate library dependencies
|
|
|
- additional, non-core functionality
|
|
|
|
|
|
|
|
|
## avalanche
|
|
|
|
|
|
The [avalanche module](https://develop.openfoam.com/Community/avalache)
|
|
|
provides libraries, solver and utilities for avalanche modelling using
|
|
|
finiteArea.
|
|
|
|
|
|
***Why a module?***
|
|
|
|
|
|
- additional, non-core functionality
|
|
|
- retain independent development
|
|
|
|
|
|
|
|
|
## cfmesh
|
|
|
|
|
|
The [cfmesh module](https://develop.openfoam.com/Community/integration-cfmesh)
|
|
|
is a populate alternative mesher for OpenFOAM.
|
|
|
|
|
|
***Why a module?***
|
|
|
|
|
|
- integration of larger, existing code base
|
|
|
|
|
|
|
|
|
## external-solver
|
|
|
|
|
|
The [external solver module](https://develop.openfoam.com/modules/external-solver)
|
|
|
is primarily an OpenFOAM solver interface to the
|
|
|
[PETsc](https://www.mcs.anl.gov/petsc/) suite of linear solvers.
|
|
|
|
|
|
***Why a module?***
|
|
|
|
|
|
- isolate library dependencies
|
|
|
- development timing independent of the OpenFOAM release schedule
|
|
|
|
|
|
|
|
|
## visualization
|
|
|
|
|
|
The [visualization module](https://develop.openfoam.com/modules/visualization)
|
|
|
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.
|
|
|
|
|
|
|
|
|
### Examples
|
|
|
|
|
|
A [user example](https://develop.openfoam.com/Development/openfoam/-/issues/1848)
|
|
|
of using the visualization module to add an additional layer to an
|
|
|
_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/openfoam2006 -DVTK_DIR=/usr/include/vtk-7.1 \
|
|
|
-c '/home/ofuser/src/visualization/Allwmake -prefix=openfoam' ;\
|
|
|
rm -rf /home/ofuser/src/visualization
|
|
|
```
|
|
|
|
|
|
----
|
|
|
|
|
|
Copyright (C) 2020 OpenCFD Ltd.
|
|
|
|
|
|
[all-repos]: https://develop.openfoam.com/
|
|
|
[all-modules]: https://develop.openfoam.com/Development/openfoam/-/tree/develop/modules |