WENO Version 4.0
Version 4.0
Expanding the options with CMake adding new parallel compilation option and options for LAPACK library or AVX support. Improving run time performance and generation of WENOBase as well as stability by using pivoting of the inverse Jacobi matrix.
Mesh and Decompositon
- Works now also for cases with collated file IO when the mesh is also decomposed with '-fileHandler uncollated'.
- Can handle meshes with refinement zones
Integration of Blaze Library
- Blaze::staticMatrix and blaze::dynamicMatrix are not also used in the geometryWENO functions
- If LAPACK library is enabled the blaze functions for LU decomposition, calculation of the determinant and eigen values are used
MPI Communication
For highly decomposed cases (processor > 2000) most of the time is spent in the communication of the WENOCoeff::collectData() function. For most MPI applications it is benefitial to use non blocking communication in combination with frequent calls of MPI_Test to move the inter processor communication. However, for unknown reasons the blocking communication with a MPI_Waitall is the fastest option. This is the same as using the UPstream buffers and the PstreamBuffers::finishedSends() which calls also an MPI_Waitall. This makes the communication blocked even though non-blocking is selected. OpenFOAM is here deceiving.
OpenFOAM Versions
- Add support for OpenFOAM v2012
User Handling
Compilation with ./Allwmake can handle user flags. A help message
can be displayed with ./Allwmake -h or ./Allwmake --help
Possible option are:
-j|--parallel <# cores> Parallel compilation with the provided
number of cores. If no number is provided the value
is determined automatically
-f|--force Force compilation on the master branch for a dirty
git repository
CMake Build Type
Three different CMake build types are available and can be selected with
./Allwmake -DCMAKE_BUILD_TYPE=
CMAKE_BUILD_TYPE | Descritpion |
---|---|
Default | Compiles the library, utilities and all tests |
Release | Compiles only the library and utilities |
Debug | Switches on the FULLDEBUG flag of OpenFOAM and the debugging flag '-g' |
Export of CMake Target
CMake exports also a target which is by default installed into the build directory in the WENOExt repo. The install directory can be changed by setting the CMAKE_INSTALL_PREFIX
variable. With the CMake target it is very easy to include the WENOExt library in other CMake projects with
include(${CMAKE_INSTALL_PREFIX}/lib/cmake/WENOEXT/WENOEXT.cmake)
Add Performance Check Repo
The performance of some of the WENO functions can be checked with the WENO-PerformanceTest. The repo also provides some basic python scripts to generate run time statistics.
Open Issues
- Reconstruction of the global mesh for decomposed meshes with the collated file IO option
- MPI improvements for send and receive. Further investigation why this is so time consuming