v2312: New and improved usability
A new public repository has been launched to host community contributions for the verification and validation of the OpenFOAM software: OpenFOAM Verification and Validation Repository.
The main goal of this repository is to provide a centralized platform for the OpenFOAM community to share, collaborate, and enhance the verification and validation aspects of the software. By bringing together the collective knowledge and expertise of the community, we aim to improve the overall quality of OpenFOAM simulations and promote best practices in numerical modeling.
In this release, the Taylor-Green vortex problem and circular Couette flow have been incorporated to show the practical application of the provided templates for the case setup and documentation.
General
The C++ standard used in OpenFOAM has now been increased to c++14 for the GNU compilers as well. With this change the minimum recommended compiler version is now gcc-7.5.0.
To assist with future code migration, “stricter” deprecation warnings can now be enabled. These can be enabled globally with a +strict
entry in the WM_COMPILE_CONTROL
environment variable or on a one-time basis with wmake -strict
. This can primarly be considered a developer option (it may generate lots of warnings), but can be useful and interesting when writing modules to be slightly more “future-proof”.
MacOS
This version includes several improvements for compilation and running on MacOS.
- improve FPE handling for Apple and ARM64 (courtesy of Guanyang Xue)
- rpath handling
- xcrun support
For MacOS compilations, rpath
support is now enabled by default, which should simplify running OpenFOAM on those systems with somewhat fewer workarounds for the Apple SIP (System Integrity Protection) effects. The rpath
handling can be disabled by adding ~rpath
into the WM_COMPILE_CONTROL
environment variable.
The MacOS compilations now also support use of xcode tools (eg, xcrun
). These are enabled by adding +xcrun
into the WM_COMPILE_CONTROL
environment variable. When found, these types of compilation rules will be used:
cc := xcrun cc
CC := xcrun c++ -std=c++14
Clang
For clang-based compilation it is now possible to explicitly specify that the ld
linker should be used (note: it is installation dependent whether clang uses ld
or lld
). The linker selection is defined by corresponding entry in the WM_COMPILE_CONTROL
environment variable:
- `+gold` : use gold linker
- `+link-ld` : use ld linker
- `+lld` : use lld linker
- `+mold` : use mold linker
OpenMP
The handling of openmp vs no-openmp has been tightened. Higher precedence is given to “~openmp” (wmake -no-openmp
) over “+openmp” (wmake -openmp
).
This makes it robuster when specifying +openmp
in general, but ~openmp
for specific build components (eg, static libraries or MPI bridging code).
This version includes hooks for Extrae profiling. By default, the hooks are always build with OpenFOAM but remain dormant until Extrae is actually loaded via an LD_PRELOAD
. This enables Extrae tracing without needing to recompile OpenFOAM specifically for that purpose.
Code provide by Josep Pocurull (Barcelona Supercomputing Center) and used as part of the exaFOAM project.
Source code
Merge request
- Merge request 652