Skip to content

Rework of the Cumulant-Based Method

Frederik Hennig requested to merge da15siwa/lbmpy:cumulant_method_rework into master

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 for Simple, Luo, Guo and He

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 and insert_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

Merge request reports