waLBerla 7.2
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)
 
void addPostCollisionFunction (const LevelFunction &function)
 

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)
 
std::function< void() > executePostBoundaryFunctions (uint_t level)
 
std::function< void() > executePostCollisionFunctions (uint_t level)
 

Private Attributes

std::shared_ptr< StructuredBlockForestsbfs_
 
uint_t maxLevel_
 
std::vector< std::vector< Block * > > blocks_
 
const BlockDataID pdfFieldId_
 
std::shared_ptr< PackInfopdfFieldPackInfo_
 
std::shared_ptr< CommSchemecommScheme_
 
SweepCollection_TsweepCollection_
 
BoundaryCollection_TboundaryCollection_
 
std::vector< LevelFunctionglobalPostBoundaryHandlingFunctions_
 
std::vector< LevelFunctionglobalPostCollisionFunctions_
 

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)
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)
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 )

◆ 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

◆ executePostBoundaryFunctions()

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

◆ executePostCollisionFunctions()

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
std::function< void()> walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::executePostCollisionFunctions ( 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

◆ operator()()

◆ timestep()

Member Data Documentation

◆ blocks_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
std::vector<std::vector<Block *> > walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::blocks_
private

◆ boundaryCollection_

◆ commScheme_

◆ globalPostBoundaryHandlingFunctions_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
std::vector< LevelFunction > 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< LevelFunction > walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::globalPostCollisionFunctions_
private

◆ maxLevel_

◆ pdfFieldId_

◆ pdfFieldPackInfo_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
std::shared_ptr< PackInfo > walberla::lbm_generated::BasicRecursiveTimeStep< PdfField_T, SweepCollection_T, BoundaryCollection_T >::pdfFieldPackInfo_
private

◆ sbfs_

◆ sweepCollection_


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