Opm::Accelerator::Preconditioner< Scalar, block_size, ApplyScalar > Class Template Referenceabstract

#include <Preconditioner.hpp>

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

Public Member Functions

virtual ~Preconditioner ()=default
 
virtual void apply (const ApplyScalar &y, ApplyScalar &x)=0
 
virtual bool analyze_matrix (BlockedMatrix< Scalar > *mat)=0
 
virtual bool analyze_matrix (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat)=0
 
virtual bool create_preconditioner (BlockedMatrix< Scalar > *mat)=0
 
virtual bool create_preconditioner (BlockedMatrix< Scalar > *mat, BlockedMatrix< Scalar > *jacMat)=0
 

Static Public Member Functions

static std::unique_ptr< Preconditionercreate (PreconditionerType type, bool opencl_ilu_parallel, int verbosity)
 

Protected Member Functions

 Preconditioner (int verbosity_)
 

Protected Attributes

int N = 0
 
int Nb = 0
 
int nnz = 0
 
int nnzb = 0
 
int verbosity = 0
 

Constructor & Destructor Documentation

◆ Preconditioner()

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

◆ ~Preconditioner()

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

Member Function Documentation

◆ analyze_matrix() [1/2]

template<class Scalar , unsigned int block_size, class ApplyScalar = Scalar>
virtual bool Opm::Accelerator::Preconditioner< Scalar, block_size, ApplyScalar >::analyze_matrix ( BlockedMatrix< Scalar > *  mat)
pure virtual

◆ analyze_matrix() [2/2]

template<class Scalar , unsigned int block_size, class ApplyScalar = Scalar>
virtual bool Opm::Accelerator::Preconditioner< Scalar, block_size, ApplyScalar >::analyze_matrix ( BlockedMatrix< Scalar > *  mat,
BlockedMatrix< Scalar > *  jacMat 
)
pure virtual

◆ apply()

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

◆ create()

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

◆ create_preconditioner() [1/2]

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

◆ create_preconditioner() [2/2]

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

Member Data Documentation

◆ N

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

◆ Nb

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

◆ nnz

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

◆ nnzb

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

◆ verbosity

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

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