Opm::Accelerator::BdaSolver< block_size > Class Template Referenceabstract

#include <BdaSolver.hpp>

Inheritance diagram for Opm::Accelerator::BdaSolver< block_size >:
Inheritance graph

Public Member Functions

 BdaSolver (int linear_solver_verbosity, int max_it, double tolerance_)
 
 BdaSolver (int linear_solver_verbosity, int max_it, double tolerance_, unsigned int deviceID_)
 
 BdaSolver (int linear_solver_verbosity, int max_it, double tolerance_, unsigned int platformID_, unsigned int deviceID_)
 
virtual ~BdaSolver ()
 Define virtual destructor, so that the derivedclass destructor will be called. More...
 
virtual SolverStatus solve_system (std::shared_ptr< BlockedMatrix > matrix, double *b, std::shared_ptr< BlockedMatrix > jacMatrix, WellContributions &wellContribs, BdaResult &res)=0
 Define as pure virtual functions, so derivedclass must implement them. More...
 
virtual void get_result (double *x)=0
 

Protected Attributes

int verbosity = 0
 
int maxit = 200
 
double tolerance = 1e-2
 
int N
 
int Nb
 
int nnz
 
int nnzb
 
unsigned int platformID = 0
 
unsigned int deviceID = 0
 
bool initialized = false
 

Detailed Description

template<unsigned int block_size>
class Opm::Accelerator::BdaSolver< block_size >

This class serves to simplify choosing between different backend solvers, such as cusparseSolver and openclSolver This class is abstract, no instantiations can of it can be made, only of its children

Constructor & Destructor Documentation

◆ BdaSolver() [1/3]

template<unsigned int block_size>
Opm::Accelerator::BdaSolver< block_size >::BdaSolver ( int  linear_solver_verbosity,
int  max_it,
double  tolerance_ 
)
inline

Construct a BdaSolver

Parameters
[in]linear_solver_verbosityverbosity of solver
[in]maxitmaximum number of iterations for solver
[in]tolerancerequired relative tolerance for solver
[in]platformIDthe OpenCL platform to be used, only used in openclSolver
[in]deviceIDthe device to be used

◆ BdaSolver() [2/3]

template<unsigned int block_size>
Opm::Accelerator::BdaSolver< block_size >::BdaSolver ( int  linear_solver_verbosity,
int  max_it,
double  tolerance_,
unsigned int  deviceID_ 
)
inline

◆ BdaSolver() [3/3]

template<unsigned int block_size>
Opm::Accelerator::BdaSolver< block_size >::BdaSolver ( int  linear_solver_verbosity,
int  max_it,
double  tolerance_,
unsigned int  platformID_,
unsigned int  deviceID_ 
)
inline

◆ ~BdaSolver()

template<unsigned int block_size>
virtual Opm::Accelerator::BdaSolver< block_size >::~BdaSolver ( )
inlinevirtual

Define virtual destructor, so that the derivedclass destructor will be called.

Member Function Documentation

◆ get_result()

◆ solve_system()

template<unsigned int block_size>
virtual SolverStatus Opm::Accelerator::BdaSolver< block_size >::solve_system ( std::shared_ptr< BlockedMatrix matrix,
double *  b,
std::shared_ptr< BlockedMatrix jacMatrix,
WellContributions wellContribs,
BdaResult res 
)
pure virtual

Member Data Documentation

◆ deviceID

template<unsigned int block_size>
unsigned int Opm::Accelerator::BdaSolver< block_size >::deviceID = 0
protected

◆ initialized

template<unsigned int block_size>
bool Opm::Accelerator::BdaSolver< block_size >::initialized = false
protected

◆ maxit

template<unsigned int block_size>
int Opm::Accelerator::BdaSolver< block_size >::maxit = 200
protected

◆ N

template<unsigned int block_size>
int Opm::Accelerator::BdaSolver< block_size >::N
protected

◆ Nb

template<unsigned int block_size>
int Opm::Accelerator::BdaSolver< block_size >::Nb
protected

◆ nnz

template<unsigned int block_size>
int Opm::Accelerator::BdaSolver< block_size >::nnz
protected

◆ nnzb

template<unsigned int block_size>
int Opm::Accelerator::BdaSolver< block_size >::nnzb
protected

◆ platformID

template<unsigned int block_size>
unsigned int Opm::Accelerator::BdaSolver< block_size >::platformID = 0
protected

◆ tolerance

template<unsigned int block_size>
double Opm::Accelerator::BdaSolver< block_size >::tolerance = 1e-2
protected

◆ verbosity

template<unsigned int block_size>
int Opm::Accelerator::BdaSolver< block_size >::verbosity = 0
protected

The documentation for this class was generated from the following file: