OpenFOAM® v2006: New and updated build system


New pre-compiled packages

This release continues to simplify the use of OpenFOAM by supporting pre-compiled binary packages for Ubuntu, openSUSE, CentOS/RedHat.

The sub-division of packages support a range of requirements:

  • small runtime-only package
  • medium development packages
  • large development package with tutorials

Improved wmake build system

  • The wmake system now has additional subcommand handling that provides a natural means of accessing additional functionality without additional top-level scripts and also allowing better reuse of scripts. For example, wmake -build-info.
  • The wmake rules now pass through additional environment parameters (FOAM_EXTRA_CFLAGS, FOAM_EXTRA_CXXFLAGS, FOAM_EXTRA_LDFLAGS) to support custom tuning of compilation parameters and situations where additional compilation parameters are required when integrating OpenFOAM code.

Compiler/systems support
  • New/updated compiler rules:
    • Amd compiler (the AOCC compiler) for linux64.
    • Fujitsu compiler for linuxARM64.
    • Update Clang rules for Darwin to support openmp.
  • Easier handling of compiler derivatives
  • Support optional ’override’ wmake rules

Modules and MPI

Added new infrastructure to support out-of-tree compilation of modules and MPI-specific layers. See the user upgrade guide.

Visualization module

As part of ongoing work to make OpenFOAM more flexible, VTK-related components are now gathered in a visualization module, which includes these elements:

  • catalyst : in-situ visualization with a ParaView/Catalyst
  • paraview-plugins : supplementary reader modules for ParaView
  • runTimePostProcessing : in-situ visualization using VTK-based processing

This division makes it easier to generate different visualization configurations without recompiling the OpenFOAM core.

This is used, for example, to mix and match different combinations of VTK/ParaView versions and capabilities, e.g. MESA, MPI etc.

  • Note that the catalyst submodule is now obsolete and hence deprecated.

For many normal users, this module can be safely ignored.