ParGeMSLR
Public Member Functions | Public Attributes | List of all members
pargemslr::ParallelGemslrLevelClass< 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 <parallel_gemslr.hpp>

Public Member Functions

int Clear ()
 Free the current level structure, set everything to 0. More...
 
 ParallelGemslrLevelClass ()
 The constructor of ParallelGemslrLevelClass, set everything to 0. More...
 
 ~ParallelGemslrLevelClass ()
 The destructor of ParallelGemslrLevelClass. More...
 
 ParallelGemslrLevelClass (const ParallelGemslrLevelClass< MatrixType, VectorType, DataType > &str)
 The copy constructor of ParallelGemslrLevelClass. More...
 
 ParallelGemslrLevelClass (ParallelGemslrLevelClass< MatrixType, VectorType, DataType > &&str)
 The move constructor of ParallelGemslrLevelClass. More...
 
ParallelGemslrLevelClass< MatrixType, VectorType, DataType > & operator= (const ParallelGemslrLevelClass< MatrixType, VectorType, DataType > &str)
 The operator= of ParallelGemslrLevelClass. More...
 
ParallelGemslrLevelClass< MatrixType, VectorType, DataType > & operator= (ParallelGemslrLevelClass< MatrixType, VectorType, DataType > &&str)
 The operator= of ParallelGemslrLevelClass. 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

parallel_log _parlog
 The parallel log data structure. More...
 
int _lrc
 The size of low-rank correction on this level. More...
 
int _ncomps
 Number of subdomains on this level. More...
 
std::vector< CsrMatrixClass< DataType > > _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 _A_mat
 The A matrix on this level. More...
 
MatrixType _C_mat
 The C matrix on this level. More...
 
MatrixType _S_mat
 The S matrix on this level. More...
 
int _nI
 Number of interior nodes on the top level. More...
 
ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > _EBFC
 The EBFC matrix on this level. More...
 
SolverClass< CsrMatrixClass< DataType >, SequentialVectorClass< DataType >, DataType > ** _B_precond
 The preconditioners for B matrix. More...
 
SolverClass< CsrMatrixClass< DataType >, SequentialVectorClass< DataType >, 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...
 
DenseMatrixClass< DataType > _WHk
 The WH matrix for the low-rank correction (W*H)*W' on this level. More...
 
DenseMatrixClass< DataType > _cHk
 The H matrix for the low-rank correction W*H*W' on the last level. More...
 
DenseMatrixClass< DataType > _cWk
 The W matrix for the low-rank correction W*H*W' on the last level. More...
 
DenseMatrixClass< DataType > _cWHk
 The WH matrix for the low-rank correction (W*H)*W' on the last level. More...
 
IntVectorClass< int > _pperm
 The row permutation vector. More...
 
IntVectorClass< int > _qperm
 The column permutation vector. More...
 
CommunicationHelperClass _comm_helper
 The communication helper. More...
 
SequentialVectorClass< DataType > _work_vector
 Temp vector on this level. More...
 
int _work_vector_unit_length
 The unit length of the work vector. More...
 
VectorType _x_temp
 Temp vector, length equal to the size of this level, used to setup the Ptr for this level. More...
 
VectorType _xlr_temp
 Temp vector. More...
 
VectorType _xlr1_temp
 Temp vector. More...
 
VectorType _xlr2_temp
 Temp vector. More...
 
VectorType _xlr1_temp_h
 Temp vector. More...
 
VectorType _xlr2_temp_h
 Temp vector. More...
 
VectorType _sol_temp
 The temp vector for permuted x. More...
 
VectorType _rhs_temp
 The temp vector for permuted rhs. More...
 
VectorType _sol2_temp
 The temp vector for permuted x. More...
 
VectorType _rhs2_temp
 The temp vector for permuted rhs. More...
 
VectorType _sol3_temp
 The temp vector for permuted x for the upper level. More...
 
VectorType _rhs3_temp
 The temp vector for permuted rhs for the upper level. More...
 

Detailed Description

template<class MatrixType, class VectorType, typename DataType>
class pargemslr::ParallelGemslrLevelClass< 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 data type.

Constructor & Destructor Documentation

◆ ParallelGemslrLevelClass() [1/3]

template<class MatrixType , class VectorType , typename DataType >
template pargemslr::precond_gemslrlevel_csr_par_complexd::ParallelGemslrLevelClass ( )

The constructor of ParallelGemslrLevelClass, set everything to 0.

◆ ~ParallelGemslrLevelClass()

template<class MatrixType , class VectorType , typename DataType >
template pargemslr::precond_gemslrlevel_csr_par_complexd::~ParallelGemslrLevelClass ( )

The destructor of ParallelGemslrLevelClass, simply call the free function.

◆ ParallelGemslrLevelClass() [2/3]

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

The copy constructor of ParallelGemslrLevelClass.

◆ ParallelGemslrLevelClass() [3/3]

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

The move constructor of ParallelGemslrLevelClass.

Member Function Documentation

◆ Clear()

template<class MatrixType , class VectorType , typename DataType >
template int pargemslr::precond_gemslrlevel_csr_par_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_par_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 >
ParallelGemslrLevelClass< MatrixType, VectorType, DataType > & pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::operator= ( const ParallelGemslrLevelClass< MatrixType, VectorType, DataType > &  str)

The operator= of ParallelGemslrLevelClass.

◆ operator=() [2/2]

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

The operator= of ParallelGemslrLevelClass.

Member Data Documentation

◆ _A_mat

template<class MatrixType , class VectorType , typename DataType >
MatrixType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_A_mat

The A matrix on this level.

◆ _B_mat_v

template<class MatrixType , class VectorType , typename DataType >
std::vector<CsrMatrixClass<DataType> > pargemslr::ParallelGemslrLevelClass< 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<CsrMatrixClass<DataType>, SequentialVectorClass<DataType>, DataType>** pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_B_precond

The preconditioners for B matrix.

◆ _B_solver

template<class MatrixType , class VectorType , typename DataType >
SolverClass<CsrMatrixClass<DataType>, SequentialVectorClass<DataType>, DataType>** pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_B_solver

The solvers for B matrix.

◆ _C_mat

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

The C matrix on this level.

◆ _cHk

template<class MatrixType , class VectorType , typename DataType >
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_cHk

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

◆ _comm_helper

template<class MatrixType , class VectorType , typename DataType >
CommunicationHelperClass pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_comm_helper

The communication helper.

◆ _cWHk

template<class MatrixType , class VectorType , typename DataType >
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_cWHk

The WH matrix for the low-rank correction (W*H)*W' on the last level.

◆ _cWk

template<class MatrixType , class VectorType , typename DataType >
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_cWk

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

◆ _E_mat

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

The E matrix on this level.

◆ _EBFC

template<class MatrixType , class VectorType , typename DataType >
ParallelGemslrEBFCMatrixClass<MatrixType, VectorType, DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_EBFC

The EBFC matrix on this level.

◆ _F_mat

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

The F matrix on this level.

◆ _Hk

template<class MatrixType , class VectorType , typename DataType >
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< 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::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_lrc

The size of low-rank correction on this level.

◆ _ncomps

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

Number of subdomains on this level.

◆ _nI

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_nI

Number of interior nodes on the top level.

◆ _parlog

template<class MatrixType , class VectorType , typename DataType >
parallel_log pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_parlog

The parallel log data structure.

◆ _pperm

template<class MatrixType , class VectorType , typename DataType >
IntVectorClass<int> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_pperm

The row permutation vector.

◆ _qperm

template<class MatrixType , class VectorType , typename DataType >
IntVectorClass<int> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_qperm

The column permutation vector.

Note
For non-symmetric reordering.

◆ _rhs2_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_rhs2_temp

The temp vector for permuted rhs.

◆ _rhs3_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_rhs3_temp

The temp vector for permuted rhs for the upper level.

◆ _rhs_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_rhs_temp

The temp vector for permuted rhs.

◆ _S_mat

template<class MatrixType , class VectorType , typename DataType >
MatrixType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_S_mat

The S matrix on this level.

◆ _sol2_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_sol2_temp

The temp vector for permuted x.

◆ _sol3_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_sol3_temp

The temp vector for permuted x for the upper level.

◆ _sol_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_sol_temp

The temp vector for permuted x.

◆ _WHk

template<class MatrixType , class VectorType , typename DataType >
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_WHk

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

◆ _Wk

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

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

◆ _work_vector

template<class MatrixType , class VectorType , typename DataType >
SequentialVectorClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_work_vector

Temp vector on this level.

◆ _work_vector_unit_length

template<class MatrixType , class VectorType , typename DataType >
int pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_work_vector_unit_length

The unit length of the work vector.

◆ _x_temp

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_x_temp

Temp vector, length equal to the size of this level, used to setup the Ptr for this level.

◆ _xlr1_temp

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

Temp vector.

◆ _xlr1_temp_h

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_xlr1_temp_h

Temp vector.

◆ _xlr2_temp

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

Temp vector.

◆ _xlr2_temp_h

template<class MatrixType , class VectorType , typename DataType >
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_xlr2_temp_h

Temp vector.

◆ _xlr_temp

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

Temp vector.


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