20#ifndef OPM_ROCSPARSEPRECONDITIONER_HEADER_INCLUDED
21#define OPM_ROCSPARSEPRECONDITIONER_HEADER_INCLUDED
23#include <opm/simulators/linalg/gpubridge/Preconditioner.hpp>
25#include <rocsparse/rocsparse.h>
26#include <rocblas/rocblas.h>
28namespace Opm::Accelerator {
30template<
class Scalar>
class BlockedMatrix;
32template <
class Scalar,
unsigned int block_size>
52 bool useJacMatrix =
false;
53 std::shared_ptr<BlockedMatrix<Scalar>> jacMat{};
57 static std::unique_ptr<rocsparsePreconditioner<Scalar, block_size>> create(PreconditionerType type,
65 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:43
Definition rocsparsePreconditioner.hpp:34
virtual void update_system_on_gpu(Scalar *vals, Scalar *b)=0
Update linear system to GPU.
constexpr auto getPropValue()
get the value data member of a property
Definition propertysystem.hh:240