waLBerla 7.3
Loading...
Searching...
No Matches
walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T > Class Template Reference

Detailed Description

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
class walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >
Template Parameters
LatticeStorageSpecification_TGenerated storage specification
SweepCollection_TLBM SweepCollection (must be able to call stream, collide, streamCollide and streamOnlyNoAdvancement)
BoundaryCollection_TLBM Boundary collection (Functor that runs all boundary kernels at call)

#include <BasicRecursiveTimeStep.h>

Public Types

using LatticeStorageSpecification_T = typename PdfField_T::LatticeStorageSpecification
using Stencil = typename LatticeStorageSpecification_T::Stencil
using CommunicationStencil = typename LatticeStorageSpecification_T::CommunicationStencil
using CommScheme = NonUniformBufferedScheme< CommunicationStencil >
using PackInfo = lbm_generated::NonuniformGeneratedPdfPackInfo< PdfField_T >

Public Member Functions

 BasicRecursiveTimeStep (std::shared_ptr< StructuredBlockForest > &sbfs, const BlockDataID &pdfFieldId, SweepCollection_T &sweepCollection, BoundaryCollection_T &boundaryCollection, std::shared_ptr< CommScheme > &commScheme, std::shared_ptr< PackInfo > &pdfFieldPackInfo)
void operator() ()
void addRefinementToTimeLoop (SweepTimeloop &timeloop, uint_t level=0)
void addPostBoundaryHandlingFunction (const LevelFunction &function, std::string identifier)
void addPostCollisionFunction (const LevelFunction &function, std::string identifier)

Private Member Functions

void timestep (uint_t level)
void ghostLayerPropagation (Block *block)
std::function< void() > executeStreamCollideOnLevel (uint_t level, bool withGhostLayerPropagation=false)
std::function< void() > executeBoundaryHandlingOnLevel (uint_t level)
uint_t maxLevel () const
std::vector< Block * > blocksOnLevel (const uint_t level) const

Private Attributes

std::shared_ptr< StructuredBlockForestsbfs_
const BlockDataID pdfFieldId_
std::shared_ptr< PackInfopdfFieldPackInfo_
std::shared_ptr< CommSchemecommScheme_
SweepCollection_TsweepCollection_
BoundaryCollection_TboundaryCollection_
std::vector< std::pair< LevelFunction, std::string > > globalPostBoundaryHandlingFunctions_
std::vector< std::pair< LevelFunction, std::string > > globalPostCollisionFunctions_

Member Typedef Documentation

◆ CommScheme

◆ CommunicationStencil

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
using walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::CommunicationStencil = typename LatticeStorageSpecification_T::CommunicationStencil

◆ LatticeStorageSpecification_T

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
using walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::LatticeStorageSpecification_T = typename PdfField_T::LatticeStorageSpecification

◆ PackInfo

◆ Stencil

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
using walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::Stencil = typename LatticeStorageSpecification_T::Stencil

Constructor & Destructor Documentation

◆ BasicRecursiveTimeStep()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::BasicRecursiveTimeStep ( std::shared_ptr< StructuredBlockForest > & sbfs,
const BlockDataID & pdfFieldId,
SweepCollection_T & sweepCollection,
BoundaryCollection_T & boundaryCollection,
std::shared_ptr< CommScheme > & commScheme,
std::shared_ptr< PackInfo > & pdfFieldPackInfo )
inline

Member Function Documentation

◆ addPostBoundaryHandlingFunction()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
void walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::addPostBoundaryHandlingFunction ( const LevelFunction & function,
std::string identifier )
inline

◆ addPostCollisionFunction()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
void walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::addPostCollisionFunction ( const LevelFunction & function,
std::string identifier )
inline

◆ addRefinementToTimeLoop()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
void walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::addRefinementToTimeLoop ( SweepTimeloop & timeloop,
uint_t level = 0 )

◆ blocksOnLevel()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
std::vector< Block * > walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::blocksOnLevel ( const uint_t level) const
private

◆ executeBoundaryHandlingOnLevel()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
std::function< void()> walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::executeBoundaryHandlingOnLevel ( uint_t level)
private

◆ executeStreamCollideOnLevel()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
std::function< void()> walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::executeStreamCollideOnLevel ( uint_t level,
bool withGhostLayerPropagation = false )
private

◆ ghostLayerPropagation()

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
void walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::ghostLayerPropagation ( Block * block)
private

◆ maxLevel()

◆ operator()()

◆ timestep()

Member Data Documentation

◆ boundaryCollection_

◆ commScheme_

◆ globalPostBoundaryHandlingFunctions_

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
std::vector< std::pair< LevelFunction, std::string > > walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::globalPostBoundaryHandlingFunctions_
private

◆ globalPostCollisionFunctions_

template<typename PdfField_T, typename SweepCollection_T, typename BoundaryCollection_T>
std::vector< std::pair< LevelFunction, std::string > > walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::globalPostCollisionFunctions_
private

◆ pdfFieldId_

◆ pdfFieldPackInfo_

◆ sbfs_

◆ sweepCollection_


The documentation for this class was generated from the following files: