walberla::lbm_generated::BasicRecursiveTimeStepGPU< 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::BasicRecursiveTimeStepGPU< 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 <BasicRecursiveTimeStepGPU.h>

Public Types

using LatticeStorageSpecification_T = typename PdfField_T::LatticeStorageSpecification
 
using Stencil = typename LatticeStorageSpecification_T::Stencil
 
using CommunicationStencil = typename LatticeStorageSpecification_T::CommunicationStencil
 
using CommScheme = gpu::communication::NonUniformGPUScheme< CommunicationStencil >
 
using PackInfo = lbm_generated::NonuniformGeneratedGPUPdfPackInfo< PdfField_T >
 

Public Member Functions

 BasicRecursiveTimeStepGPU (std::shared_ptr< StructuredBlockForest > &sbfs, const BlockDataID &pdfFieldId, SweepCollection_T &sweepCollection, BoundaryCollection_T &boundaryCollection, std::shared_ptr< CommScheme > &commScheme, std::shared_ptr< PackInfo > &pdfFieldPackInfo)
 
 ~BasicRecursiveTimeStepGPU ()=default
 
void operator() ()
 
void addRefinementToTimeLoop (SweepTimeloop &timeloop, uint_t level=0)
 
void test (uint_t maxLevel, uint_t level=0)
 

Private Member Functions

void timestep (uint_t level)
 
void ghostLayerPropagation (Block *block, gpuStream_t gpuStream)
 
std::function< void() > executeStreamCollideOnLevel (uint_t level, bool withGhostLayerPropagation=false)
 
std::function< void() > executeBoundaryHandlingOnLevel (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_T & sweepCollection_
 
BoundaryCollection_T & boundaryCollection_
 

Member Typedef Documentation

◆ CommScheme

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
using walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::CommScheme = gpu::communication::NonUniformGPUScheme< CommunicationStencil >

◆ CommunicationStencil

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
using walberla::lbm_generated::BasicRecursiveTimeStepGPU< 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::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::LatticeStorageSpecification_T = typename PdfField_T::LatticeStorageSpecification

◆ PackInfo

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
using walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::PackInfo = lbm_generated::NonuniformGeneratedGPUPdfPackInfo< PdfField_T >

◆ Stencil

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

Constructor & Destructor Documentation

◆ BasicRecursiveTimeStepGPU()

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::BasicRecursiveTimeStepGPU ( 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

◆ ~BasicRecursiveTimeStepGPU()

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::~BasicRecursiveTimeStepGPU ( )
default

Member Function Documentation

◆ addRefinementToTimeLoop()

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
void walberla::lbm_generated::BasicRecursiveTimeStepGPU< 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::BasicRecursiveTimeStepGPU< 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::BasicRecursiveTimeStepGPU< 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::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::ghostLayerPropagation ( Block block,
gpuStream_t  gpuStream 
)
private

◆ operator()()

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
void walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::operator() ( )
inline

◆ test()

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
void walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::test ( uint_t  maxLevel,
uint_t  level = 0 
)

◆ timestep()

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
void walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::timestep ( uint_t  level)
private

Member Data Documentation

◆ blocks_

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

◆ boundaryCollection_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
BoundaryCollection_T& walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::boundaryCollection_
private

◆ commScheme_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
std::shared_ptr< CommScheme > walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::commScheme_
private

◆ maxLevel_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
uint_t walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::maxLevel_
private

◆ pdfFieldId_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
const BlockDataID walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::pdfFieldId_
private

◆ pdfFieldPackInfo_

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

◆ sbfs_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
std::shared_ptr< StructuredBlockForest > walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::sbfs_
private

◆ sweepCollection_

template<typename PdfField_T , typename SweepCollection_T , typename BoundaryCollection_T >
SweepCollection_T& walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T >::sweepCollection_
private

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