ParGeMSLR
Public Member Functions | Public Attributes | List of all members
pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > Class Template Reference

Class of matvec EB^{-1}FC^{-1}. More...

#include <gemslr.hpp>

Public Member Functions

 GemslrEBFCMatrixClass ()
 The constructor of GemslrEBFCMatrixClass. More...
 
virtual ~GemslrEBFCMatrixClass ()
 The destructor of GemslrEBFCMatrixClass. More...
 
 GemslrEBFCMatrixClass (const GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &precond)
 The copy constructor of GemslrEBFCMatrixClass. More...
 
 GemslrEBFCMatrixClass (GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &&precond)
 The move constructor of GemslrEBFCMatrixClass. More...
 
GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & operator= (const GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &precond)
 The operator = of GemslrEBFCMatrixClass. More...
 
GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & operator= (GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &&precond)
 The operator = of GemslrEBFCMatrixClass. More...
 
int Setup (int level, GemslrClass< MatrixType, VectorType, DataType > &gemslr)
 Set the current matrix to a certain GEMSLR level. More...
 
int SetupVectorPtrStr (VectorType &v)
 Set the structure of a vector pointer that has same row partition as this matrix. More...
 
int Clear ()
 Free the current matrix. More...
 
int GetNumRowsLocal ()
 Get the local number of rows of the matrix. More...
 
int GetNumColsLocal ()
 Get the local number of columns of the matrix. More...
 
int MatVec (char trans, const DataType &alpha, VectorType &x, const DataType &beta, VectorType &y)
 In place csr Matrix-Vector product ==> y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y. More...
 
int GetMpiInfo (int &np, int &myid, MPI_Comm &comm) const
 Get comm, np, and myid. Get the global one. More...
 
MPI_Comm GetComm () const
 Get the MPI_comm. More...
 
int GetDataLocation () const
 Get the data location of the matrix. More...
 

Public Attributes

VectorType _temp_v
 Temp vector for the Arnoldi. More...
 

Detailed Description

template<class MatrixType, class VectorType, typename DataType>
class pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >

Class of matvec EB^{-1}FC^{-1}.

Constructor & Destructor Documentation

◆ GemslrEBFCMatrixClass() [1/3]

template<class MatrixType , class VectorType , typename DataType >
template pargemslr::precond_gemslrebfc_csr_seq_complexd::GemslrEBFCMatrixClass ( )

The constructor of GemslrEBFCMatrixClass. The default memory location is the host memory.

◆ ~GemslrEBFCMatrixClass()

template<class MatrixType , class VectorType , typename DataType >
template pargemslr::precond_gemslrebfc_csr_seq_complexd::~GemslrEBFCMatrixClass ( )
virtual

The destructor of GemslrEBFCMatrixClass. Simply a call to the free function.

◆ GemslrEBFCMatrixClass() [2/3]

template<class MatrixType , class VectorType , typename DataType >
pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::GemslrEBFCMatrixClass ( const GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &  precond)

The copy constructor of GemslrEBFCMatrixClass.

◆ GemslrEBFCMatrixClass() [3/3]

template<class MatrixType , class VectorType , typename DataType >
pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::GemslrEBFCMatrixClass ( GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &&  precond)

The move constructor of GemslrEBFCMatrixClass.

Member Function Documentation

◆ Clear()

template<class MatrixType , class VectorType , typename DataType >
template int pargemslr::precond_gemslrebfc_csr_seq_complexd::Clear ( )

Free the current matrix.

Returns
Return error message.

◆ GetComm()

template<class MatrixType , class VectorType , typename DataType >
MPI_Comm pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::GetComm ( ) const
inline

Get the MPI_comm.

Returns
Return the MPI_comm.

◆ GetDataLocation()

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::GetDataLocation ( ) const
inline

Get the data location of the matrix.

Returns
Return the length of the matrix.

◆ GetMpiInfo()

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::GetMpiInfo ( int &  np,
int &  myid,
MPI_Comm &  comm 
) const
inline

Get comm, np, and myid. Get the global one.

Parameters
[in]npThe number of processors.
[in]myidThe local MPI rank number.
[in]commThe MPI_Comm.
Returns
Return error message.

◆ GetNumColsLocal()

template<class MatrixType , class VectorType , typename DataType >
template int pargemslr::precond_gemslrebfc_csr_seq_complexd::GetNumColsLocal ( )

Get the local number of columns of the matrix.

Returns
Return the number of columns of the matrix.

◆ GetNumRowsLocal()

template<class MatrixType , class VectorType , typename DataType >
template int pargemslr::precond_gemslrebfc_csr_seq_complexd::GetNumRowsLocal ( )

Get the local number of rows of the matrix.

Returns
Return the number of rows of the matrix.

◆ MatVec()

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::MatVec ( char  trans,
const DataType &  alpha,
VectorType &  x,
const DataType &  beta,
VectorType &  y 
)

In place csr Matrix-Vector product ==> y := alpha*A*x + beta*y, or y := alpha*A'*x + beta*y.

Parameters
[in]transWhether or not transpose matrix A.
[in]alphaThe alpha value.
[in]xThe left vector.
[in]betaThe beta value.
[in,out]yThe product vector.
Returns
Return error message.

◆ operator=() [1/2]

template<class MatrixType , class VectorType , typename DataType >
GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::operator= ( const GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &  precond)

The operator = of GemslrEBFCMatrixClass.

◆ operator=() [2/2]

template<class MatrixType , class VectorType , typename DataType >
GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::operator= ( GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &&  precond)

The operator = of GemslrEBFCMatrixClass.

◆ Setup()

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::Setup ( int  level,
GemslrClass< MatrixType, VectorType, DataType > &  gemslr 
)

Set the current matrix to a certain GEMSLR level.

Parameters
[in]levelThe level.
[in]gemslrThe GeMSLR structure.
Returns
Return error message.

◆ SetupVectorPtrStr()

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::SetupVectorPtrStr ( VectorType &  v)

Set the structure of a vector pointer that has same row partition as this matrix.

Parameters
[in,out]vThe target vector.
Returns
Return error message.

Member Data Documentation

◆ _temp_v

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::_temp_v

Temp vector for the Arnoldi.


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