waLBerla 7.2
|
LatticeStorageSpecification_T | Generated storage specification |
SweepCollection_T | LBM SweepCollection (must be able to call stream, collide, streamCollide and streamOnlyNoAdvancement) |
BoundaryCollection_T | LBM 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 () | |
void | activateStreams () |
void | operator() () |
void | addRefinementToTimeLoop (TimeLoop_T &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, gpuStream_t gpuStream) |
std::function< void() > | executeStreamCollideOnLevel (uint_t level, bool withGhostLayerPropagation=false) |
std::function< void() > | executePostBoundaryFunctions (uint_t level) |
std::function< void() > | executePostCollisionFunctions (uint_t level) |
std::function< void() > | executeBoundaryHandlingOnLevel (uint_t level) |
Private Attributes | |
std::shared_ptr< StructuredBlockForest > | sbfs_ |
uint_t | maxLevel_ |
std::vector< std::vector< Block * > > | blocks_ |
const BlockDataID | pdfFieldId_ |
std::shared_ptr< PackInfo > | pdfFieldPackInfo_ |
std::shared_ptr< CommScheme > | commScheme_ |
SweepCollection_T & | sweepCollection_ |
BoundaryCollection_T & | boundaryCollection_ |
std::vector< LevelFunction > | globalPostBoundaryHandlingFunctions_ |
std::vector< LevelFunction > | globalPostCollisionFunctions_ |
std::vector< std::vector< gpuStream_t > > | streams_ |
uint_t | nStreams_ {uint_c(6)} |
bool | useStreams_ |
std::vector< uint8_t > | timestepPerLevel_ |
using walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T, TimeLoop_T >::CommunicationStencil = typename LatticeStorageSpecification_T::CommunicationStencil |
using walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T, TimeLoop_T >::LatticeStorageSpecification_T = typename PdfField_T::LatticeStorageSpecification |
using walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T, TimeLoop_T >::PackInfo = lbm_generated::NonuniformGeneratedGPUPdfPackInfo< PdfField_T > |
using walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T, TimeLoop_T >::Stencil = typename LatticeStorageSpecification_T::Stencil |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void walberla::lbm_generated::BasicRecursiveTimeStepGPU< PdfField_T, SweepCollection_T, BoundaryCollection_T, TimeLoop_T >::addRefinementToTimeLoop | ( | TimeLoop_T & | timeloop, |
uint_t | level = 0 ) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |