Skip to content

WENO Version 4.0

Compare
Choose a tag to compare
@JanGaertner JanGaertner released this 20 Dec 21:58
· 22 commits to master since this release

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