20#ifndef OPM_OPENCLMATRIX_HEADER_INCLUDED
21#define OPM_OPENCLMATRIX_HEADER_INCLUDED
25#include <opm/simulators/linalg/bda/opencl/opencl.hpp>
40 OpenclMatrix(cl::Context *context,
int Nb_,
int Mb_,
int nnzbs_,
unsigned int block_size_)
44 block_size(block_size_)
46 nnzValues = cl::Buffer(*context, CL_MEM_READ_WRITE,
sizeof(
double) * block_size * block_size * nnzbs);
47 colIndices = cl::Buffer(*context, CL_MEM_READ_WRITE,
sizeof(
int) * nnzbs);
48 rowPointers = cl::Buffer(*context, CL_MEM_READ_WRITE,
sizeof(
int) * (Nb + 1));
51 void upload(cl::CommandQueue *queue,
double *vals,
int *cols,
int *rows);
52 void upload(cl::CommandQueue *queue,
Matrix *matrix);
56 cl::Buffer colIndices;
57 cl::Buffer rowPointers;
60 unsigned int block_size;
This struct resembles a blocked csr matrix, like Dune::BCRSMatrix.
Definition: BlockedMatrix.hpp:31
This struct resembles a csr matrix, only doubles are supported The data is stored in contiguous memor...
Definition: Matrix.hpp:32
This struct resembles a csr matrix, only doubles are supported The matrix data is stored in OpenCL Bu...
Definition: OpenclMatrix.hpp:37
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27