ParGeMSLR
|
Class of matvec for low-rank correction, not necessarily EB^{-1}FC^{-1}. More...
#include <parallel_gemslr.hpp>
Public Member Functions | |
ParallelGemslrEBFCMatrixClass () | |
The constructor of ParallelGemslrEBFCMatrixClass. More... | |
virtual | ~ParallelGemslrEBFCMatrixClass () |
The destructor of ParallelGemslrEBFCMatrixClass. More... | |
ParallelGemslrEBFCMatrixClass (const ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &precond) | |
The copy constructor of ParallelGemslrEBFCMatrixClass. More... | |
ParallelGemslrEBFCMatrixClass (ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &&precond) | |
The move constructor of ParallelGemslrEBFCMatrixClass. More... | |
ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & | operator= (const ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &precond) |
The operator = of ParallelGemslrEBFCMatrixClass. More... | |
ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & | operator= (ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > &&precond) |
The operator = of ParallelGemslrEBFCMatrixClass. More... | |
int | Setup (int level, int option, ParallelGemslrClass< 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... | |
Class of matvec for low-rank correction, not necessarily EB^{-1}FC^{-1}. kGemslrGlobalPrecondESMSLR, kGemslrGlobalPrecondGeMSLR, kGemslrGlobalPrecondPSLR
template pargemslr::precond_gemslrebfc_csr_par_complexd::ParallelGemslrEBFCMatrixClass | ( | ) |
The constructor of ParallelGemslrEBFCMatrixClass. The default memory location is the host memory.
|
virtual |
The destructor of ParallelGemslrEBFCMatrixClass. Simply a call to the free function.
pargemslr::ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::ParallelGemslrEBFCMatrixClass | ( | const ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & | precond | ) |
The copy constructor of ParallelGemslrEBFCMatrixClass.
pargemslr::ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::ParallelGemslrEBFCMatrixClass | ( | ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > && | precond | ) |
The move constructor of ParallelGemslrEBFCMatrixClass.
template int pargemslr::precond_gemslrebfc_csr_par_complexd::Clear | ( | ) |
Free the current matrix.
|
inline |
Get the MPI_comm.
|
inline |
Get the data location of the matrix.
|
inline |
Get comm, np, and myid. Get the global one.
[in] | np | The number of processors. |
[in] | myid | The local MPI rank number. |
[in] | comm | The MPI_Comm. |
template int pargemslr::precond_gemslrebfc_csr_par_complexd::GetNumColsLocal | ( | ) |
Get the local number of columns of the matrix.
template int pargemslr::precond_gemslrebfc_csr_par_complexd::GetNumRowsLocal | ( | ) |
Get the local number of rows of the matrix.
int pargemslr::ParallelGemslrEBFCMatrixClass< 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.
[in] | trans | Whether or not transpose matrix A. |
[in] | alpha | The alpha value. |
[in] | x | The left vector. |
[in] | beta | The beta value. |
[in,out] | y | The product vector. |
ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & pargemslr::ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::operator= | ( | const ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & | precond | ) |
The operator = of ParallelGemslrEBFCMatrixClass.
ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > & pargemslr::ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::operator= | ( | ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType > && | precond | ) |
The operator = of ParallelGemslrEBFCMatrixClass.
int pargemslr::ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::Setup | ( | int | level, |
int | option, | ||
ParallelGemslrClass< MatrixType, VectorType, DataType > & | gemslr | ||
) |
Set the current matrix to a certain GEMSLR level.
[in] | level | The level. |
[in] | option | The matvec option. |
[in] | gemslr | The GeMSLR structure. |
int pargemslr::ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::SetupVectorPtrStr | ( | VectorType & | v | ) |
Set the structure of a vector pointer that has same row partition as this matrix.
[in,out] | v | The target vector. |
VectorType pargemslr::ParallelGemslrEBFCMatrixClass< MatrixType, VectorType, DataType >::_temp_v |
Temp vector for the Arnoldi.