This class implements a rocalution based linear solver solver on GPU It uses ilu0-bicgstab.
More...
#include <rocalutionSolverBackend.hpp>
|
| | rocalutionSolverBackend (int linear_solver_verbosity, int maxit, Scalar tolerance) |
| | Construct a rocalutionSolver also initialize rocalution library and rocalution variables. More...
|
| |
|
| ~rocalutionSolverBackend () |
| | Destroy a rocalutionSolver, and free memory.
|
| |
| SolverStatus | solve_system (std::shared_ptr< BlockedMatrix< Scalar >> matrix, Scalar *b, std::shared_ptr< BlockedMatrix< Scalar >> jacMatrix, WellContributions< Scalar > &wellContribs, GpuResult &res) override |
| | Solve linear system, A*x = b, matrix A must be in blocked-CSR format. More...
|
| |
| void | get_result (Scalar *x) override |
| | Get result after linear solve, and peform postprocessing if necessary. More...
|
| |
| | GpuSolver (int linear_solver_verbosity, int max_it, Scalar tolerance_) |
| | Construct a GpuSolver. More...
|
| |
|
| GpuSolver (int linear_solver_verbosity, int max_it, Scalar tolerance_, unsigned int deviceID_) |
| |
|
| GpuSolver (int linear_solver_verbosity, int max_it, double tolerance_, unsigned int platformID_, unsigned int deviceID_) |
| |
|
virtual | ~GpuSolver ()=default |
| | Define virtual destructor, so that the derivedclass destructor will be called.
|
| |
|
|
int | verbosity = 0 |
| |
|
int | maxit = 200 |
| |
|
Scalar | tolerance = 1e-2 |
| |
|
int | N |
| |
|
int | Nb |
| |
|
int | nnz |
| |
|
int | nnzb |
| |
|
unsigned int | platformID = 0 |
| |
|
unsigned int | deviceID = 0 |
| |
|
bool | initialized = false |
| |
template<class Scalar, unsigned int block_size>
class Opm::Accelerator::rocalutionSolverBackend< Scalar, block_size >
This class implements a rocalution based linear solver solver on GPU It uses ilu0-bicgstab.
◆ rocalutionSolverBackend()
template<class Scalar , unsigned int block_size>
Construct a rocalutionSolver also initialize rocalution library and rocalution variables.
- Parameters
-
| [in] | linear_solver_verbosity | verbosity of rocalutionSolver |
| [in] | maxit | maximum number of iterations for rocalutionSolver |
| [in] | tolerance | required relative tolerance for rocalutionSolver |
◆ get_result()
template<class Scalar , unsigned int block_size>
◆ solve_system()
template<class Scalar , unsigned int block_size>
Solve linear system, A*x = b, matrix A must be in blocked-CSR format.
- Parameters
-
| [in] | matrix | matrix A |
| [in] | b | input vector, contains N values |
| [in] | jacMatrix | matrix for preconditioner |
| [in] | wellContribs | WellContributions, to apply them separately, instead of adding them to matrix A |
| [in,out] | res | summary of solver result |
- Returns
- status code
Implements Opm::Accelerator::GpuSolver< Scalar, block_size >.
The documentation for this class was generated from the following files: