VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
vf::gpu::KernelImp Class Reference

#include <KernelImp.h>

Inheritance diagram for vf::gpu::KernelImp:
vf::gpu::Kernel vf::gpu::AdvectionDiffusionKernel vf::gpu::B15CompressibleNavierStokesBGKplus vf::gpu::B15IncompressibleNavierStokesBGKplus vf::gpu::B92CompressibleNavierStokes vf::gpu::B92IncompressibleNavierStokes vf::gpu::K15CompressibleNavierStokes vf::gpu::K15IncompressibleNavierStokes vf::gpu::K17CompressibleNavierStokes< turbulenceModel >

Public Member Functions

void runOnIndices (const unsigned int *indices, unsigned int sizeIndices, CollisionTemplate collisionTemplate, CudaStreamIndex streamIndex=CudaStreamIndex::Legacy) override
 
void checkKernelParameters (uint maxLevel, real velocityLB, real viscosityLBOnFinestLevel) const override
 check if velocityLB and viscosityLB are not too high, as this can lead to inaccurate results or a crash of the kernel
 
std::vector< PreProcessorTypegetPreProcessorTypes () override
 
bool getKernelUsesFluidNodeIndices () const
 
- Public Member Functions inherited from vf::gpu::Kernel
virtual ~Kernel ()=default
 
virtual void run ()=0
 

Protected Member Functions

 KernelImp (std::shared_ptr< Parameter > para, int level)
 
 KernelImp (std::shared_ptr< Parameter > para, int level, real viscosityMaximumRecommended)
 
 KernelImp (std::shared_ptr< Parameter > para, int level, real viscosityMaximumRecommended, real viscosityMaximumHard)
 
 KernelImp ()=default
 

Protected Attributes

const real velocityMaximumHard = 1 - std::sqrt(vf::basics::constant::c1o3)
 
const real velocityMaximumRecommended = 0.1
 
const std::optional< realviscosityMaximumHard = std::nullopt
 
const std::optional< realviscosityMaximumRecommended = std::nullopt
 
std::shared_ptr< Parameterpara
 
int level
 
std::vector< PreProcessorTypemyPreProcessorTypes
 
vf::cuda::CudaGrid cudaGrid
 
bool kernelUsesFluidNodeIndices = false
 

Detailed Description

Definition at line 49 of file KernelImp.h.

Constructor & Destructor Documentation

◆ KernelImp() [1/4]

vf::gpu::KernelImp::KernelImp ( std::shared_ptr< Parameter para,
int  level 
)
protected

Definition at line 146 of file KernelImp.cpp.

◆ KernelImp() [2/4]

vf::gpu::KernelImp::KernelImp ( std::shared_ptr< Parameter para,
int  level,
real  viscosityMaximumRecommended 
)
protected
Parameters
viscosityMaximumRecommendedin LB units

Definition at line 156 of file KernelImp.cpp.

◆ KernelImp() [3/4]

vf::gpu::KernelImp::KernelImp ( std::shared_ptr< Parameter para,
int  level,
real  viscosityMaximumRecommended,
real  viscosityMaximumHard 
)
protected
Parameters
viscosityMaximumRecommendedand
viscosityMaximumHardare in LB units

Definition at line 150 of file KernelImp.cpp.

◆ KernelImp() [4/4]

vf::gpu::KernelImp::KernelImp ( )
protecteddefault

Member Function Documentation

◆ checkKernelParameters()

void vf::gpu::KernelImp::checkKernelParameters ( uint  maxLevel,
real  velocityLB,
real  viscosityLBOnFinestLevel 
) const
overridevirtual

check if velocityLB and viscosityLB are not too high, as this can lead to inaccurate results or a crash of the kernel

Implements vf::gpu::Kernel.

Definition at line 140 of file KernelImp.cpp.

◆ getKernelUsesFluidNodeIndices()

bool vf::gpu::KernelImp::getKernelUsesFluidNodeIndices ( ) const

Definition at line 51 of file KernelImp.cpp.

◆ getPreProcessorTypes()

std::vector< PreProcessorType > vf::gpu::KernelImp::getPreProcessorTypes ( )
overridevirtual

Implements vf::gpu::Kernel.

Definition at line 46 of file KernelImp.cpp.

◆ runOnIndices()

void vf::gpu::KernelImp::runOnIndices ( const unsigned int indices,
unsigned int  sizeIndices,
CollisionTemplate  collisionTemplate,
CudaStreamIndex  streamIndex = CudaStreamIndex::Legacy 
)
overridevirtual

Implements vf::gpu::Kernel.

Definition at line 41 of file KernelImp.cpp.

Member Data Documentation

◆ cudaGrid

vf::cuda::CudaGrid vf::gpu::KernelImp::cudaGrid
protected

Definition at line 80 of file KernelImp.h.

◆ kernelUsesFluidNodeIndices

bool vf::gpu::KernelImp::kernelUsesFluidNodeIndices = false
protected

Definition at line 82 of file KernelImp.h.

◆ level

int vf::gpu::KernelImp::level
protected

Definition at line 78 of file KernelImp.h.

◆ myPreProcessorTypes

std::vector<PreProcessorType> vf::gpu::KernelImp::myPreProcessorTypes
protected

Definition at line 79 of file KernelImp.h.

◆ para

std::shared_ptr<Parameter> vf::gpu::KernelImp::para
protected

Definition at line 77 of file KernelImp.h.

◆ velocityMaximumHard

const real vf::gpu::KernelImp::velocityMaximumHard = 1 - std::sqrt(vf::basics::constant::c1o3)
protected

Definition at line 70 of file KernelImp.h.

◆ velocityMaximumRecommended

const real vf::gpu::KernelImp::velocityMaximumRecommended = 0.1
protected

Definition at line 71 of file KernelImp.h.

◆ viscosityMaximumHard

const std::optional<real> vf::gpu::KernelImp::viscosityMaximumHard = std::nullopt
protected

Definition at line 74 of file KernelImp.h.

◆ viscosityMaximumRecommended

const std::optional<real> vf::gpu::KernelImp::viscosityMaximumRecommended = std::nullopt
protected

Definition at line 75 of file KernelImp.h.


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