This merge request introduces a new cumulant-based Lattice Boltzmann Method to lbmpy. The new method adheres closely to the D3Q27 cumulant LBM presented by Martin Geier et al. in their 2015 paper (https://doi.org/10.1016/j.camwa.2015.05.001). During the collision step, density and momentum are updated in central moment space while the remainder of the collision is computed in cumulant space. Upon construction, groups of polynomial cumulants for the collision step must be specified. Standard cumulant sets are provided for the D2Q9, D3Q19 and D3Q27 lattices. The momentum update in central moment space enables an implicit forcing scheme, where the equilibrium velocity is shifted by the half-force shift and forcing is realised by maximum overrelaxation of the first-order moments, i.e. by setting
omega_1 = 2. The usage of an explicit forcing scheme is however still possible.
The new method is implemented by the class
CenteredCumulantBasedLbMethod deriving from
AbstractLbMethod. The name stems from the hybrid-approach of relaxing the conserved modes in central moment space and the remainder in cumulant space. The collision operator is derived in a step-by-step approach:
- Transform PDFs to Central Moments by the recursive fast central moment transform described by Geier et al. Can also be configured to use a matrix-based transformation, which however leads to more complicated equations and slower kernels.
- Transform Central Moments to Monomial Cumulants by expressing the Cumulant-Generating function in terms of the central-moment-generating function, calculating its derivatives and expressing those by derivatives of the central-moment-generating function which are equal to the central moments.
- Collision of Polynomial Cumulants: The monomials are combined to polynomials and relaxed using matrix multiplication. From the post-collision polynomials, the post-collision monomial cumulants are computed.
- Backward-Transform from Monomial Cumulants to Central Moments: By expressing and differentiating the central moment generating function in terms of the cumulant generating function.
- Backward-Transform from Central Moments to PDFs by the fast backward central moment transform, also by Geier et al. Alternatively, a matrix-based approach is configurable, which however inflates the equations significantly.
Accuracy and Efficiency
The cumulant-method has been shown to be superior to conventional MRT methods in terms of stability and galilean invariance. Almost all cumulants have equilibrium values of zero. Full relaxation (
omega = 1) for higher-order cumulants is viable as they do not affect hydrodynamic properties at leading order. Full relaxation is also preferable as it leads to the insertion of the zero equilibria in subsequent equations, simplifying those and thus accelerating execution significantly.
On the GPU, with the D3Q27 lattice and full relaxation, this method beats the orthogonal MRT method by a significant margin:
- Galilean Correction
- Automatic Insertion of Zero-Cumulants
- Optimal Simplification Strategy
- Integration with existing method creation framework
- Integration with waLBerla CodeGen