Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • lbmpy lbmpy
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 17
    • Issues 17
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • pycodegen
  • lbmpylbmpy
  • Merge requests
  • !40

Advanced Streaming Extensions

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Frederik Hennig requested to merge da15siwa/lbmpy:advanced_streaming_extensions into master Sep 27, 2020
  • Overview 17
  • Commits 50
  • Pipelines 42
  • Changes 23

This patch extends lbmpy's support for advanced streaming patterns. In particular, the Push-Collide-Stream, AA-Pattern and Esoteric Twist are considered.

  • Boundary Handling: The LBM boundary implementations are overhauled completely. A new framework for defining and generating boundary kernels is introduced, which makes the symbolic definition independent of the streaming pattern. Boundaries can now be defined symbolically using the proxy fields f_out for accessing populations streaming out of a cell, and f_in for populations streaming in to a cell. Those are replaced during the code generation process according to the streaming pattern. The class BetweenTimestepsIndexing used herein can also be used to generate other kernels that run on the PDF-field in-between collision steps.

  • Periodicity Handling: The build-in periodicity synchronization of pystencil's DataHandling does not work for advanced LBM streaming. The new class LBMPeriodicityHandling extends the SerialDataHandling to handle periodicity correctly.

  • Utility: The patch introduces a few utility functions for the work with advanced streaming patterns.

Edited Oct 29, 2020 by Markus Holzer
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: advanced_streaming_extensions