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

The GEMSLR information on each level, contains the solver for B and the low-rank information for S. More...

#include <gemslr.hpp>

Public Member Functions

int Clear ()
 Free the current level structure, set everything to 0. More...
 
 GemslrLevelClass ()
 The constructor of GemslrLevelClass, set everything to 0. More...
 
 ~GemslrLevelClass ()
 The destructor of GemslrLevelClass. More...
 
 GemslrLevelClass (const GemslrLevelClass< MatrixType, VectorType, DataType > &str)
 The copy constructor of GemslrLevelClass. More...
 
 GemslrLevelClass (GemslrLevelClass< MatrixType, VectorType, DataType > &&str)
 The move constructor of GemslrLevelClass. More...
 
GemslrLevelClass< MatrixType, VectorType, DataType > & operator= (const GemslrLevelClass< MatrixType, VectorType, DataType > &str)
 The operator= of GemslrLevelClass. More...
 
GemslrLevelClass< MatrixType, VectorType, DataType > & operator= (GemslrLevelClass< MatrixType, VectorType, DataType > &&str)
 The operator= of GemslrLevelClass. More...
 
int GetNumNonzeros (long int &nnz_bsolver, long int &nnz_lr)
 Get the number of nonzeros in the low-rank correction and the ILU factorization on this level. More...
 

Public Attributes

int _lrc
 The size of low-rank correction on this level. More...
 
int _ncomps
 Number of subdomains on this level. More...
 
std::vector< MatrixType > _B_mat_v
 The B matrix on this level. C matrix if this is the last level. More...
 
MatrixType _E_mat
 The E matrix on this level. More...
 
MatrixType _F_mat
 The F matrix on this level. More...
 
MatrixType _C_mat
 The C matrix on this level. More...
 
MatrixType _D_mat
 The D matrix on this level. More...
 
GemslrEBFCMatrixClass< MatrixType, VectorType, DataType > _EBFC
 The EBFC matrix on this level. More...
 
SolverClass< MatrixType, VectorType, DataType > ** _B_precond
 The preconditioners for B matrix. More...
 
SolverClass< MatrixType, VectorType, DataType > ** _B_solver
 The solvers for B matrix. More...
 
DenseMatrixClass< DataType > _Hk
 The H matrix for the low-rank correction W*H*W' on this level. More...
 
DenseMatrixClass< DataType > _Wk
 The W matrix for the low-rank correction W*H*W' on this level. More...
 
VectorType _y_temp
 Temp vector. More...
 
VectorType _z_temp
 Temp vector. More...
 
VectorType _v_temp
 Temp vector. More...
 
VectorType _w_temp
 Temp vector. More...
 
VectorType _xlr_temp
 Temp vector. More...
 
VectorType _xlr1_temp
 Temp vector. More...
 
VectorType _xlr2_temp
 Temp vector. More...
 

Detailed Description

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

The GEMSLR information on each level, contains the solver for B and the low-rank information for S. VectorType is the type of the vector. DataType is the real data type.

Constructor & Destructor Documentation

◆ GemslrLevelClass() [1/3]

template<class MatrixType , class VectorType , typename DataType >
template pargemslr::precond_gemslrlevel_csr_seq_complexd::GemslrLevelClass ( )

The constructor of GemslrLevelClass, set everything to 0.

◆ ~GemslrLevelClass()

template<class MatrixType , class VectorType , typename DataType >
template pargemslr::precond_gemslrlevel_csr_seq_complexd::~GemslrLevelClass ( )

The destructor of GemslrLevelClass, simply call the free function.

◆ GemslrLevelClass() [2/3]

template<class MatrixType , class VectorType , typename DataType >
pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::GemslrLevelClass ( const GemslrLevelClass< MatrixType, VectorType, DataType > &  str)

The copy constructor of GemslrLevelClass.

◆ GemslrLevelClass() [3/3]

template<class MatrixType , class VectorType , typename DataType >
pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::GemslrLevelClass ( GemslrLevelClass< MatrixType, VectorType, DataType > &&  str)

The move constructor of GemslrLevelClass.

Member Function Documentation

◆ Clear()

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

Free the current level structure, set everything to 0.

Returns
return GEMSLR_SUCESS or error information.

◆ GetNumNonzeros()

template<class MatrixType , class VectorType , typename DataType >
template int pargemslr::precond_gemslrlevel_csr_seq_complexd::GetNumNonzeros ( long int &  nnz_bsolver,
long int &  nnz_lr 
)

Get the number of nonzeros in the low-rank correction and the ILU factorization on this level.
Note that this is the sequential version, int would be enough. No need to use the long int.

Parameters
[out]nnz_iluThe nnz for the ILU factorization.
[out]nnz_lrThe nnz for the low-rank correction.
Returns
return nnz_ilu+nnz_lr.

◆ operator=() [1/2]

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

The operator= of GemslrLevelClass.

◆ operator=() [2/2]

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

The operator= of GemslrLevelClass.

Member Data Documentation

◆ _B_mat_v

template<class MatrixType , class VectorType , typename DataType >
std::vector<MatrixType > pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_B_mat_v

The B matrix on this level. C matrix if this is the last level.

◆ _B_precond

template<class MatrixType , class VectorType , typename DataType >
SolverClass<MatrixType, VectorType, DataType>** pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_B_precond

The preconditioners for B matrix.

◆ _B_solver

template<class MatrixType , class VectorType , typename DataType >
SolverClass<MatrixType, VectorType, DataType>** pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_B_solver

The solvers for B matrix.

◆ _C_mat

template<class MatrixType , class VectorType , typename DataType >
MatrixType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_C_mat

The C matrix on this level.

◆ _D_mat

template<class MatrixType , class VectorType , typename DataType >
MatrixType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_D_mat

The D matrix on this level.

◆ _E_mat

template<class MatrixType , class VectorType , typename DataType >
MatrixType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_E_mat

The E matrix on this level.

◆ _EBFC

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

The EBFC matrix on this level.

◆ _F_mat

template<class MatrixType , class VectorType , typename DataType >
MatrixType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_F_mat

The F matrix on this level.

◆ _Hk

template<class MatrixType , class VectorType , typename DataType >
DenseMatrixClass<DataType> pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_Hk

The H matrix for the low-rank correction W*H*W' on this level.

◆ _lrc

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_lrc

The size of low-rank correction on this level.

◆ _ncomps

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_ncomps

Number of subdomains on this level.

◆ _v_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_v_temp

Temp vector.

◆ _w_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_w_temp

Temp vector.

◆ _Wk

template<class MatrixType , class VectorType , typename DataType >
DenseMatrixClass<DataType> pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_Wk

The W matrix for the low-rank correction W*H*W' on this level.

◆ _xlr1_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_xlr1_temp

Temp vector.

◆ _xlr2_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_xlr2_temp

Temp vector.

◆ _xlr_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_xlr_temp

Temp vector.

◆ _y_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_y_temp

Temp vector.

◆ _z_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::GemslrLevelClass< MatrixType, VectorType, DataType >::_z_temp

Temp vector.


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