20#ifndef OPM_ROCSPARSEPRECONDITIONER_HEADER_INCLUDED
21#define OPM_ROCSPARSEPRECONDITIONER_HEADER_INCLUDED
23#include <opm/simulators/linalg/bda/Preconditioner.hpp>
25#include <rocsparse/rocsparse.h>
27namespace Opm::Accelerator {
29template<
class Scalar>
class BlockedMatrix;
31template <
class Scalar,
unsigned int block_size>
50 bool useJacMatrix =
false;
51 std::shared_ptr<BlockedMatrix<Scalar>> jacMat{};
55 static std::unique_ptr<rocsparsePreconditioner<Scalar, block_size>> create(PreconditionerType type,
59 virtual void apply(Scalar&
y, Scalar& x) = 0;
73 virtual void copy_system_to_gpu(Scalar *
b)=0;
This struct resembles a blocked csr matrix, like Dune::BCRSMatrix.
Definition BlockedMatrix.hpp:29
Definition Preconditioner.hpp:41
Definition rocsparsePreconditioner.hpp:33
virtual void update_system_on_gpu(Scalar *b)=0
Update linear system to GPU.
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:242