20#ifndef OPM_ROCALUTIONSOLVER_BACKEND_HEADER_INCLUDED
21#define OPM_ROCALUTIONSOLVER_BACKEND_HEADER_INCLUDED
28template<
class Matrix,
class Vector,
class Scalar>
class BiCGStab;
29template<
class Matrix,
class Vector,
class Scalar>
class ILU;
38template<
class Scalar,
unsigned int block_size>
55 std::vector<Scalar> h_x;
58 Scalar* tmp_nnzvalues;
63 std::unique_ptr<rocalution::ILU<Mat,Vec,Scalar>> roc_prec;
64 std::unique_ptr<rocalution::BiCGStab<Mat,Vec,Scalar>> roc_solver;
82 int maxit, Scalar tolerance);
Definition: BlockedMatrix.hpp:29
Definition: GpuResult.hpp:31
Definition: GpuSolver.hpp:46
int nnzb
Definition: GpuSolver.hpp:61
unsigned int platformID
Definition: GpuSolver.hpp:63
unsigned int deviceID
Definition: GpuSolver.hpp:64
Scalar tolerance
Definition: GpuSolver.hpp:56
bool initialized
Definition: GpuSolver.hpp:66
int maxit
Definition: GpuSolver.hpp:55
int N
Definition: GpuSolver.hpp:58
int verbosity
Definition: GpuSolver.hpp:53
int nnz
Definition: GpuSolver.hpp:60
int Nb
Definition: GpuSolver.hpp:59
Definition: rocalutionSolverBackend.hpp:40
rocalutionSolverBackend(int linear_solver_verbosity, int maxit, Scalar tolerance)
~rocalutionSolverBackend()
Destroy a rocalutionSolver, and free memory.
void get_result(Scalar *x) override
SolverStatus solve_system(std::shared_ptr< BlockedMatrix< Scalar > > matrix, Scalar *b, std::shared_ptr< BlockedMatrix< Scalar > > jacMatrix, WellContributions< Scalar > &wellContribs, GpuResult &res) override
Definition: WellContributions.hpp:51
Definition: rocalutionSolverBackend.hpp:28
Definition: rocalutionSolverBackend.hpp:29
Definition: rocalutionSolverBackend.hpp:30
Definition: rocalutionSolverBackend.hpp:31
Definition: amgclSolverBackend.hpp:44
SolverStatus
Definition: GpuSolver.hpp:35
Definition: rocalutionSolverBackend.hpp:27