ParGeMSLR
|
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... | |
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.
template pargemslr::precond_gemslrlevel_csr_par_complexd::ParallelGemslrLevelClass | ( | ) |
The constructor of ParallelGemslrLevelClass, set everything to 0.
template pargemslr::precond_gemslrlevel_csr_par_complexd::~ParallelGemslrLevelClass | ( | ) |
The destructor of ParallelGemslrLevelClass, simply call the free function.
pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::ParallelGemslrLevelClass | ( | const ParallelGemslrLevelClass< MatrixType, VectorType, DataType > & | str | ) |
The copy constructor of ParallelGemslrLevelClass.
pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::ParallelGemslrLevelClass | ( | ParallelGemslrLevelClass< MatrixType, VectorType, DataType > && | str | ) |
The move constructor of ParallelGemslrLevelClass.
template int pargemslr::precond_gemslrlevel_csr_par_complexd::Clear | ( | ) |
Free the current level structure, set everything to 0.
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.
[out] | nnz_ilu | The nnz for the ILU factorization. |
[out] | nnz_lr | The nnz for the low-rank correction. |
ParallelGemslrLevelClass< MatrixType, VectorType, DataType > & pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::operator= | ( | const ParallelGemslrLevelClass< MatrixType, VectorType, DataType > & | str | ) |
The operator= of ParallelGemslrLevelClass.
ParallelGemslrLevelClass< MatrixType, VectorType, DataType > & pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::operator= | ( | ParallelGemslrLevelClass< MatrixType, VectorType, DataType > && | str | ) |
The operator= of ParallelGemslrLevelClass.
MatrixType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_A_mat |
The A matrix on this level.
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.
SolverClass<CsrMatrixClass<DataType>, SequentialVectorClass<DataType>, DataType>** pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_B_precond |
The preconditioners for B matrix.
SolverClass<CsrMatrixClass<DataType>, SequentialVectorClass<DataType>, DataType>** pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_B_solver |
The solvers for B matrix.
MatrixType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_C_mat |
The C matrix on this level.
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_cHk |
The H matrix for the low-rank correction W*H*W' on the last level.
CommunicationHelperClass pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_comm_helper |
The communication helper.
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_cWHk |
The WH matrix for the low-rank correction (W*H)*W' on the last level.
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_cWk |
The W matrix for the low-rank correction W*H*W' on the last level.
MatrixType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_E_mat |
The E matrix on this level.
ParallelGemslrEBFCMatrixClass<MatrixType, VectorType, DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_EBFC |
The EBFC matrix on this level.
MatrixType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_F_mat |
The F matrix on this level.
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_Hk |
The H matrix for the low-rank correction W*H*W' on this level.
int pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_lrc |
The size of low-rank correction on this level.
int pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_ncomps |
Number of subdomains on this level.
int pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_nI |
Number of interior nodes on the top level.
parallel_log pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_parlog |
The parallel log data structure.
IntVectorClass<int> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_pperm |
The row permutation vector.
IntVectorClass<int> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_qperm |
The column permutation vector.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_rhs2_temp |
The temp vector for permuted rhs.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_rhs3_temp |
The temp vector for permuted rhs for the upper level.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_rhs_temp |
The temp vector for permuted rhs.
MatrixType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_S_mat |
The S matrix on this level.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_sol2_temp |
The temp vector for permuted x.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_sol3_temp |
The temp vector for permuted x for the upper level.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_sol_temp |
The temp vector for permuted x.
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_WHk |
The WH matrix for the low-rank correction (W*H)*W' on this level.
DenseMatrixClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_Wk |
The W matrix for the low-rank correction W*H*W' on this level.
SequentialVectorClass<DataType> pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_work_vector |
Temp vector on this level.
int pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_work_vector_unit_length |
The unit length of the work vector.
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.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_xlr1_temp |
Temp vector.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_xlr1_temp_h |
Temp vector.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_xlr2_temp |
Temp vector.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_xlr2_temp_h |
Temp vector.
VectorType pargemslr::ParallelGemslrLevelClass< MatrixType, VectorType, DataType >::_xlr_temp |
Temp vector.