This MR updates the cumulant-based LB method to better fit into our updated modelling framework. Several components are changed:
Central Moment to Cumulant Transform
- Now derives equations for polynomial cumulants, with monomials as intermediary values
- No longer ignores cumulants of zeroth and first order
- No longer simplifies according to a-priori assumptions about zeroth and first order cumulants, but emits equations containing logarithms and exponentials that need to be simplified later
- Renamed to
- Forces are now applied symmetrically in central moment space according to the given force model, no more 'implicit forcing'
- Zeroth and first order cumulants are now treated regularily
- The Galilean correction was extracted as an a-posteriori-modification
- Introduced interface method
symmetric_central_moment_forcingfor use with the cumulant method and implemented it for
Central Moment Transform
BinomialChimeraTransformas a new central moment transform class.
- Cumulant-based methods are now created like all other methods using
create_with_equilibrium, and are thus open for use with arbitrary custom equilibria
The changes to the derivation did increase the FLOP count of the cumulant method slightly.
insert_logsto eliminate exponentials and logarithms in the cumulant-based method
expand_post_collision_central_momentsto simplify post-collision equations
insert_half_forceto simplify expressions in central moment and cumulant based methods that depend only on conserved quantitites or the body force