20#ifndef OPM_ROCALUTIONSOLVER_BACKEND_HEADER_INCLUDED
21#define OPM_ROCALUTIONSOLVER_BACKEND_HEADER_INCLUDED
23#include <opm/simulators/linalg/bda/BdaResult.hpp>
24#include <opm/simulators/linalg/bda/BdaSolver.hpp>
25#include <opm/simulators/linalg/bda/WellContributions.hpp>
28template<
class Matrix,
class Vector,
class Scalar>
class BiCGStab;
29template<
class Matrix,
class Vector,
class Scalar>
class ILU;
41template <
unsigned int block_size>
50 using Base::verbosity;
51 using Base::platformID;
54 using Base::tolerance;
55 using Base::initialized;
58 std::vector<double> h_x;
61 double *tmp_nnzvalues;
94 SolverStatus
solve_system(std::shared_ptr<BlockedMatrix> matrix,
double *b,
This class is based on InverseOperatorResult struct from dune/istl/solver.hh It is needed to prevent ...
Definition: BdaResult.hpp:31
This class serves to simplify choosing between different backend solvers, such as cusparseSolver and ...
Definition: BdaSolver.hpp:46
This struct resembles a blocked csr matrix, like Dune::BCRSMatrix.
Definition: BlockedMatrix.hpp:31
This class implements a rocalution based linear solver solver on GPU It uses ilu0-bicgstab.
Definition: rocalutionSolverBackend.hpp:43
void get_result(double *x) override
Get result after linear solve, and peform postprocessing if necessary.
Definition: rocalutionSolverBackend.cpp:138
~rocalutionSolverBackend()
Destroy a rocalutionSolver, and free memory.
Definition: rocalutionSolverBackend.cpp:70
rocalutionSolverBackend(int linear_solver_verbosity, int maxit, double tolerance)
Construct a rocalutionSolver also initialize rocalution library and rocalution variables.
Definition: rocalutionSolverBackend.cpp:59
SolverStatus solve_system(std::shared_ptr< BlockedMatrix > matrix, double *b, std::shared_ptr< BlockedMatrix > jacMatrix, WellContributions &wellContribs, BdaResult &res) override
Solve linear system, A*x = b, matrix A must be in blocked-CSR format.
Definition: rocalutionSolverBackend.cpp:152
This class serves to eliminate the need to include the WellContributions into the matrix (with –matri...
Definition: WellContributions.hpp:52
Definition: rocalutionSolverBackend.hpp:28
Definition: rocalutionSolverBackend.hpp:29
Definition: rocalutionSolverBackend.hpp:30
Definition: rocalutionSolverBackend.hpp:31
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition: BlackoilPhases.hpp:27