Skip to content
Snippets Groups Projects
Commit d688c76d authored by Timon Habenicht's avatar Timon Habenicht
Browse files

adds Kernel CumulantF32018

parent df9a1f12
No related branches found
No related tags found
No related merge requests found
#include "CumulantF32018CompSP27.h"
#include "CumulantF32018CompSP27_Device.cuh"
#include "Parameter\Parameter.h"
std::shared_ptr<Kernel> CumulantF32018CompSP27::getNewInstance(std::shared_ptr<Parameter> para, int level)
{
return std::shared_ptr<Kernel>(new CumulantF32018CompSP27(para, level));
}
void CumulantF32018CompSP27::run()
{
int numberOfThreads = para->getParD(level)->numberofthreads;
int size_Mat = para->getParD(level)->size_Mat_SP;
int Grid = (size_Mat / numberOfThreads) + 1;
int Grid1, Grid2;
if (Grid>512)
{
Grid1 = 512;
Grid2 = (Grid / Grid1) + 1;
}
else
{
Grid1 = 1;
Grid2 = Grid;
}
dim3 grid(Grid1, Grid2);
dim3 threads(numberOfThreads, 1, 1);
LB_Kernel_Cumulant_D3Q27F3_2018 << < grid, threads >> >( para->getParD(level)->omega,
para->getParD(level)->geoSP,
para->getParD(level)->neighborX_SP,
para->getParD(level)->neighborY_SP,
para->getParD(level)->neighborZ_SP,
para->getParD(level)->d0SP.f[0],
para->getParD(level)->g6.g[0],
para->getParD(level)->size_Mat_SP,
level,
para->getForcesDev(),
para->getParD(level)->evenOrOdd);
getLastCudaError("LB_Kernel_Cumulant_D3Q27F3 execution failed");
}
bool CumulantF32018CompSP27::checkParameter()
{
if (para->getUseWale())
return false;
else if (para->getDiffOn())
return false;
else
return true;
}
CumulantF32018CompSP27::CumulantF32018CompSP27(std::shared_ptr<Parameter> para, int level)
{
this->para = para;
this->level = level;
}
\ No newline at end of file
#ifndef CUMULANT_F32018_COMP_SP27_H
#define CUMULANT_F32018_COMP_SP27_H
#include "Kernel\Kernel.h"
#include <memory>
class CumulantF32018CompSP27 : public Kernel
{
public:
static std::shared_ptr< Kernel> getNewInstance(std::shared_ptr< Parameter> para, int level);
void run();
bool checkParameter();
private:
CumulantF32018CompSP27(std::shared_ptr< Parameter> para, int level);
std::shared_ptr< Parameter> para;
int level;
};
#endif
\ No newline at end of file
#ifndef LB_Kernel_Cumulant_D3Q27F3_2018_H
#define LB_Kernel_Cumulant_D3Q27F3_2018_H
#include <DataTypes.h>
#include <curand.h>
extern "C" __global__ void LB_Kernel_Cumulant_D3Q27F3_2018( real omega,
unsigned int* bcMatD,
unsigned int* neighborX,
unsigned int* neighborY,
unsigned int* neighborZ,
real* DDStart,
real* F3,
int size_Mat,
int level,
real* forces,
bool EvenOrOdd);
#endif
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment