20#ifndef OPM_OPENCLPRECONDITIONER_HEADER_INCLUDED
21#define OPM_OPENCLPRECONDITIONER_HEADER_INCLUDED
23#include <opm/simulators/linalg/bda/opencl/opencl.hpp>
24#include <opm/simulators/linalg/bda/Preconditioner.hpp>
26namespace Opm::Accelerator {
28template<
class Scalar>
class BlockedMatrix;
30template <
class Scalar,
unsigned int block_size>
35 std::shared_ptr<cl::Context> context;
36 std::shared_ptr<cl::CommandQueue> queue;
37 std::vector<cl::Event> events;
47 static std::unique_ptr<openclPreconditioner<Scalar, block_size>> create(PreconditionerType type,
int verbosity,
bool opencl_ilu_parallel);
50 virtual void setOpencl(std::shared_ptr<cl::Context>& context, std::shared_ptr<cl::CommandQueue>& queue);
53 virtual void apply(
const cl::Buffer&
y, cl::Buffer& x) = 0;
This struct resembles a blocked csr matrix, like Dune::BCRSMatrix.
Definition BlockedMatrix.hpp:29
Definition Preconditioner.hpp:41
Definition openclPreconditioner.hpp:32
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242