Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size > Class Template Referenceabstract

#include <rocsparsePreconditioner.hpp>

Inheritance diagram for Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >:
Inheritance graph

Public Member Functions

virtual ~rocsparsePreconditioner ()=default
 
virtual void apply (Scalar &y, Scalar &x)=0
 
virtual bool create_preconditioner (BlockedMatrix< Scalar > *mat)=0
 
virtual bool create_preconditioner (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat)=0
 
virtual bool initialize (std::shared_ptr< BlockedMatrix< Scalar > > matrix, std::shared_ptr< BlockedMatrix< Scalar > > jacMatrix, rocsparse_int *d_Arows, rocsparse_int *d_Acols)=0
 
virtual void copy_system_to_gpu (Scalar *b)=0
 
virtual void update_system_on_gpu (Scalar *b)=0
 
void set_matrix_analysis (rocsparse_mat_descr descr_L, rocsparse_mat_descr descr_U)
 
void set_context (rocsparse_handle handle, rocsparse_direction dir, rocsparse_operation operation, hipStream_t stream)
 
void setJacMat (const BlockedMatrix< Scalar > &jacMat)
 
virtual bool analyze_matrix (BlockedMatrix< Scalar > *mat)=0
 
virtual bool analyze_matrix (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat)=0
 

Static Public Member Functions

static std::unique_ptr< rocsparsePreconditioner< Scalar, block_size > > create (PreconditionerType type, int verbosity)
 
static std::unique_ptr< Preconditionercreate (PreconditionerType type, bool opencl_ilu_parallel, int verbosity)
 

Public Attributes

int nnzbs_prec = 0
 
bool useJacMatrix = false
 
std::shared_ptr< BlockedMatrix< Scalar > > jacMat {}
 

Protected Member Functions

 rocsparsePreconditioner (int verbosity_)
 

Protected Attributes

rocsparse_handle handle
 
rocsparse_direction dir = rocsparse_direction_row
 
rocsparse_operation operation = rocsparse_operation_none
 
rocsparse_mat_descr descr_L
 
rocsparse_mat_descr descr_U
 
hipStream_t stream
 
int N = 0
 
int Nb = 0
 
int nnz = 0
 
int nnzb = 0
 
int verbosity = 0
 

Constructor & Destructor Documentation

◆ rocsparsePreconditioner()

template<class Scalar , unsigned int block_size>
Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::rocsparsePreconditioner ( int  verbosity_)
inlineprotected

◆ ~rocsparsePreconditioner()

template<class Scalar , unsigned int block_size>
virtual Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::~rocsparsePreconditioner ( )
virtualdefault

Member Function Documentation

◆ analyze_matrix() [1/2]

◆ analyze_matrix() [2/2]

◆ apply()

template<class Scalar , unsigned int block_size>
virtual void Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::apply ( Scalar &  y,
Scalar &  x 
)
pure virtual

◆ copy_system_to_gpu()

template<class Scalar , unsigned int block_size>
virtual void Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::copy_system_to_gpu ( Scalar *  b)
pure virtual

◆ create() [1/2]

template<class Scalar , unsigned int block_size>
static std::unique_ptr< Preconditioner > Opm::Accelerator::Preconditioner< Scalar, block_size >::create ( PreconditionerType  type,
bool  opencl_ilu_parallel,
int  verbosity 
)
staticinherited

◆ create() [2/2]

template<class Scalar , unsigned int block_size>
static std::unique_ptr< rocsparsePreconditioner< Scalar, block_size > > Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::create ( PreconditionerType  type,
int  verbosity 
)
static

◆ create_preconditioner() [1/2]

template<class Scalar , unsigned int block_size>
virtual bool Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::create_preconditioner ( BlockedMatrix< Scalar > *  mat)
pure virtual

◆ create_preconditioner() [2/2]

template<class Scalar , unsigned int block_size>
virtual bool Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::create_preconditioner ( BlockedMatrix< Scalar > *  mat,
BlockedMatrix< Scalar > *  jacMat 
)
pure virtual

◆ initialize()

template<class Scalar , unsigned int block_size>
virtual bool Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::initialize ( std::shared_ptr< BlockedMatrix< Scalar > >  matrix,
std::shared_ptr< BlockedMatrix< Scalar > >  jacMatrix,
rocsparse_int *  d_Arows,
rocsparse_int *  d_Acols 
)
pure virtual

◆ set_context()

template<class Scalar , unsigned int block_size>
void Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::set_context ( rocsparse_handle  handle,
rocsparse_direction  dir,
rocsparse_operation  operation,
hipStream_t  stream 
)

◆ set_matrix_analysis()

template<class Scalar , unsigned int block_size>
void Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::set_matrix_analysis ( rocsparse_mat_descr  descr_L,
rocsparse_mat_descr  descr_U 
)

◆ setJacMat()

template<class Scalar , unsigned int block_size>
void Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::setJacMat ( const BlockedMatrix< Scalar > &  jacMat)

◆ update_system_on_gpu()

template<class Scalar , unsigned int block_size>
virtual void Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::update_system_on_gpu ( Scalar *  b)
pure virtual

Update linear system to GPU

Parameters
[in]binput vector, contains N values

Implemented in Opm::Accelerator::rocsparseBILU0< Scalar, block_size >, and Opm::Accelerator::rocsparseCPR< Scalar, block_size >.

Member Data Documentation

◆ descr_L

template<class Scalar , unsigned int block_size>
rocsparse_mat_descr Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::descr_L
protected

◆ descr_U

template<class Scalar , unsigned int block_size>
rocsparse_mat_descr Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::descr_U
protected

◆ dir

template<class Scalar , unsigned int block_size>
rocsparse_direction Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::dir = rocsparse_direction_row
protected

◆ handle

template<class Scalar , unsigned int block_size>
rocsparse_handle Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::handle
protected

◆ jacMat

template<class Scalar , unsigned int block_size>
std::shared_ptr<BlockedMatrix<Scalar> > Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::jacMat {}

◆ N

template<class Scalar , unsigned int block_size>
int Opm::Accelerator::Preconditioner< Scalar, block_size >::N = 0
protectedinherited

◆ Nb

template<class Scalar , unsigned int block_size>
int Opm::Accelerator::Preconditioner< Scalar, block_size >::Nb = 0
protectedinherited

◆ nnz

template<class Scalar , unsigned int block_size>
int Opm::Accelerator::Preconditioner< Scalar, block_size >::nnz = 0
protectedinherited

◆ nnzb

template<class Scalar , unsigned int block_size>
int Opm::Accelerator::Preconditioner< Scalar, block_size >::nnzb = 0
protectedinherited

◆ nnzbs_prec

template<class Scalar , unsigned int block_size>
int Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::nnzbs_prec = 0

◆ operation

template<class Scalar , unsigned int block_size>
rocsparse_operation Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::operation = rocsparse_operation_none
protected

◆ stream

template<class Scalar , unsigned int block_size>
hipStream_t Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::stream
protected

◆ useJacMatrix

template<class Scalar , unsigned int block_size>
bool Opm::Accelerator::rocsparsePreconditioner< Scalar, block_size >::useJacMatrix = false

◆ verbosity

template<class Scalar , unsigned int block_size>
int Opm::Accelerator::Preconditioner< Scalar, block_size >::verbosity = 0
protectedinherited

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