Skip to content
Snippets Groups Projects

Rework of the Cumulant-Based Method

Merged Frederik Hennig requested to merge da15siwa/lbmpy:cumulant_method_rework into master
All threads resolved!

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

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply