Opm::MixedMatrixWrapper< Vector > Class Template Reference

Wraps c-implementation of mixed-precision matrix. More...

#include <MatrixWrapper.hpp>

Public Member Functions

virtual void mv (const Vector &x, Vector &y) const
 
virtual void umv (const Vector &x, Vector &y) const
 
virtual void usmv (double alpha, const Vector &x, Vector &y) const
 
 MixedMatrixWrapper (int nrows, int nnz)
 constructor More...
 
 ~MixedMatrixWrapper ()
 destructor More...
 
void update (double const *data)
 
int * rowptr ()
 
int * colidx ()
 

Static Public Attributes

static constexpr auto block_size = Vector::block_type::dimension
 

Detailed Description

template<class Vector>
class Opm::MixedMatrixWrapper< Vector >

Wraps c-implementation of mixed-precision matrix.

Note
matrix is stored in single precision, but all operations are performed in double-precision
Template Parameters
Vectorthe block-vector used by linear operator
bblock size

Constructor & Destructor Documentation

◆ MixedMatrixWrapper()

template<class Vector >
Opm::MixedMatrixWrapper< Vector >::MixedMatrixWrapper ( int  nrows,
int  nnz 
)
inline

constructor

Parameters
nrowsnumber of block rows
nnznumber of nonzero blocks

References Opm::MixedMatrixWrapper< Vector >::block_size, bsr_alloc(), and bsr_init().

◆ ~MixedMatrixWrapper()

template<class Vector >
Opm::MixedMatrixWrapper< Vector >::~MixedMatrixWrapper ( )
inline

destructor

References bsr_free().

Member Function Documentation

◆ colidx()

template<class Vector >
int * Opm::MixedMatrixWrapper< Vector >::colidx ( )
inline

References bsr_matrix::colidx.

◆ mv()

template<class Vector >
void Opm::MixedMatrixWrapper< Vector >::mv ( const Vector &  x,
Vector &  y 
) const
virtual

References bsr_vmspmv3().

◆ rowptr()

template<class Vector >
int * Opm::MixedMatrixWrapper< Vector >::rowptr ( )
inline

References bsr_matrix::rowptr.

◆ umv()

template<class Vector >
void Opm::MixedMatrixWrapper< Vector >::umv ( const Vector &  x,
Vector &  y 
) const
virtual

References bsr_vmspumv3().

◆ update()

template<class Vector >
void Opm::MixedMatrixWrapper< Vector >::update ( double const *  data)

References bsr_downcast().

◆ usmv()

template<class Vector >
void Opm::MixedMatrixWrapper< Vector >::usmv ( double  alpha,
const Vector &  x,
Vector &  y 
) const
virtual

References bsr_vmspumv3().

Member Data Documentation

◆ block_size

template<class Vector >
constexpr auto Opm::MixedMatrixWrapper< Vector >::block_size = Vector::block_type::dimension
staticconstexpr

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