Rework of the Cumulant-Based Method
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
Cumulant-Based Method
- Renamed to
CumulantBasedLbMethod
- 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
Force Models
- Introduced interface method
symmetric_central_moment_forcing
for use with the cumulant method and implemented it forSimple
,Luo
,Guo
andHe
Central Moment Transform
- Introduced
BinomialChimeraTransform
as a new central moment transform class.
Method Creation
- Cumulant-based methods are now created like all other methods using
create_with_equilibrium
, and are thus open for use with arbitrary custom equilibria
Simplification
The changes to the derivation did increase the FLOP count of the cumulant method slightly.
- Added
insert_logs
to eliminate exponentials and logarithms in the cumulant-based method - Added
expand_post_collision_central_moments
to simplify post-collision equations - Added
insert_conserved_quantity_products
andinsert_half_force
to simplify expressions in central moment and cumulant based methods that depend only on conserved quantitites or the body force
Edited by Frederik Hennig