Skip to content
Snippets Groups Projects
Kernel.h 722 B
#ifndef GPU_KERNEL_H
#define GPU_KERNEL_H

#include <vector>

#include "LBM/LB.h" 

#include "Kernel/Utilities/KernelGroup.h"
#include "PreProcessor/PreProcessorType.h"
#include "Parameter/CudaStreamManager.h"

#include <helper_cuda.h>

class Kernel
{
public:
    virtual ~Kernel()  = default;
    virtual void run() = 0;
    virtual void runOnIndices(const unsigned int *indices, unsigned int size_indices, CollisionTemplate collisionTemplate, CudaStreamIndex streamIdx=CudaStreamIndex::Legacy) = 0;

    virtual bool checkParameter()                                = 0;
    virtual std::vector<PreProcessorType> getPreProcessorTypes() = 0;
    virtual KernelGroup getKernelGroup()                         = 0;
};
#endif