ParGeMSLR
|
Class of matvec EB^{-1}FC^{-1}. More...
#include <gemslr.hpp>
Public Member Functions | |
GemslrSchurMatrixClass () | |
The constructor of GemslrEBFCMatrixClass. More... | |
virtual | ~GemslrSchurMatrixClass () |
The destructor of GemslrEBFCMatrixClass. More... | |
GemslrSchurMatrixClass (const GemslrSchurMatrixClass< MatrixType, VectorType, DataType > &precond) | |
The copy constructor of GemslrSchurMatrixClass. More... | |
GemslrSchurMatrixClass (GemslrSchurMatrixClass< MatrixType, VectorType, DataType > &&precond) | |
The move constructor of GemslrSchurMatrixClass. More... | |
GemslrSchurMatrixClass< MatrixType, VectorType, DataType > & | operator= (const GemslrSchurMatrixClass< MatrixType, VectorType, DataType > &precond) |
The operator = of GemslrSchurMatrixClass. More... | |
GemslrSchurMatrixClass< MatrixType, VectorType, DataType > & | operator= (GemslrSchurMatrixClass< MatrixType, VectorType, DataType > &&precond) |
The operator = of GemslrSchurMatrixClass. 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 | 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 | Solve (VectorType &x, VectorType &rhs) |
Solve phase. Call this function after Setup. Solve with cusparse if unified memory/device memory is used. 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... | |
Public Attributes | |
VectorType | _temp_v |
Temp vector for the Arnoldi. More... | |
Class of matvec EB^{-1}FC^{-1}.
template pargemslr::precond_gemslr_schur_seq_complexd::GemslrSchurMatrixClass | ( | ) |
The constructor of GemslrEBFCMatrixClass. The default memory location is the host memory.
|
virtual |
The destructor of GemslrEBFCMatrixClass. Simply a call to the free function.
pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >::GemslrSchurMatrixClass | ( | const GemslrSchurMatrixClass< MatrixType, VectorType, DataType > & | precond | ) |
The copy constructor of GemslrSchurMatrixClass.
pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >::GemslrSchurMatrixClass | ( | GemslrSchurMatrixClass< MatrixType, VectorType, DataType > && | precond | ) |
The move constructor of GemslrSchurMatrixClass.
template int pargemslr::precond_gemslr_schur_seq_complexd::Clear | ( | ) |
Free the current matrix.
|
inline |
Get the MPI_comm.
|
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. |
int pargemslr::GemslrSchurMatrixClass< 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. |
GemslrSchurMatrixClass< MatrixType, VectorType, DataType > & pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >::operator= | ( | const GemslrSchurMatrixClass< MatrixType, VectorType, DataType > & | precond | ) |
The operator = of GemslrSchurMatrixClass.
GemslrSchurMatrixClass< MatrixType, VectorType, DataType > & pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >::operator= | ( | GemslrSchurMatrixClass< MatrixType, VectorType, DataType > && | precond | ) |
The operator = of GemslrSchurMatrixClass.
int pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >::Setup | ( | int | level, |
GemslrClass< MatrixType, VectorType, DataType > & | gemslr | ||
) |
Set the current matrix to a certain GEMSLR level.
[in] | level | The level. |
[in] | gemslr | The GeMSLR structure. |
int pargemslr::GemslrSchurMatrixClass< 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. |
int pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >::Solve | ( | VectorType & | x, |
VectorType & | rhs | ||
) |
Solve phase. Call this function after Setup. Solve with cusparse if unified memory/device memory is used.
[in,out] | x | The initial guess. |
[in] | rhs | The right-hand-side. |
VectorType pargemslr::GemslrSchurMatrixClass< MatrixType, VectorType, DataType >::_temp_v |
Temp vector for the Arnoldi.