|
| FlexGmresClass () |
| The constructor. More...
|
|
| FlexGmresClass (const FlexGmresClass< MatrixType, VectorType, DataType > &solver) |
| The copy constructor. More...
|
|
| FlexGmresClass (FlexGmresClass< MatrixType, VectorType, DataType > &&solver) |
| The move constructor. More...
|
|
FlexGmresClass< MatrixType, VectorType, DataType > & | operator= (const FlexGmresClass< MatrixType, VectorType, DataType > &solver) |
| The = operator. More...
|
|
FlexGmresClass< MatrixType, VectorType, DataType > & | operator= (FlexGmresClass< MatrixType, VectorType, DataType > &&solver) |
| The = operator. More...
|
|
int | Clear () |
| Free function. More...
|
|
| ~FlexGmresClass () |
| The destructor. More...
|
|
virtual int | Setup (VectorType &x, VectorType &rhs) |
| Setup the solver phase, include building the preconditioner, call this function before Solve, after SetPreconditioner. More...
|
|
virtual int | Solve (VectorType &x, VectorType &rhs) |
| Solve phase. Call this function after Setup. More...
|
|
virtual int | SetSolveLocation (const int &location) |
| Set the data location that the solver apply to. More...
|
|
virtual int | SetWithParameterArray (double *params) |
| Setup with parameter array. More...
|
|
template<typename T > |
int | SetTolerance (T tol) |
| Set the tolorance for stop the iteration. More...
|
|
int | SetMaxNumberIterations (int maxits) |
| Set the maximum number of iterations. More...
|
|
int | SetKrylovSubspaceDimension (int kdim) |
| Set the maximum number of flexible GMRES inner iterations per cycle. More...
|
|
int | SetAbsoluteTol (bool option) |
| Set if we use absolute threshold ||r|| or ||r||/||b||. More...
|
|
std::conditional< PargemslrIsDoublePrecision< DataType >::value, double, float >::type | GetFinalRelativeResidual () const |
| Get the final relative residual. More...
|
|
int | GetNumberIterations () const |
| Get the number of iterations. More...
|
|
std::conditional< PargemslrIsDoublePrecision< DataType >::value, vector_seq_double, vector_seq_float >::type & | GetRelativeResidual () |
| Get the relative residual at each step as a vector. More...
|
|
| SolverClass () |
| The constructor of solver class. More...
|
|
| SolverClass (const SolverClass< MatrixType, VectorType, DataType > &solver) |
| The copy constructor of solver class. More...
|
|
| SolverClass (SolverClass< MatrixType, VectorType, DataType > &&solver) |
| The move constructor of solver class. More...
|
|
SolverClass< MatrixType, VectorType, DataType > & | operator= (const SolverClass< MatrixType, VectorType, DataType > &solver) |
| The = operator of solver class. More...
|
|
SolverClass< MatrixType, VectorType, DataType > & | operator= (SolverClass< MatrixType, VectorType, DataType > &&solver) |
| The = operator of solver class. More...
|
|
virtual | ~SolverClass () |
| The destructor of solver class. More...
|
|
virtual int | Solve (DenseMatrixClass< DataType > &x, DenseMatrixClass< DataType > &rhs) |
| Solve phase with multiple right-hand-sides. Call this function after Setup. More...
|
|
virtual long int | GetNumNonzeros () |
| Get the total number of nonzeros. More...
|
|
MatrixType * | GetMatrix () |
| Get pointer to the matrix. More...
|
|
SolverClass< MatrixType, VectorType, DataType > * | GetPreconditioner () |
| Get pointer to the preconditioner. More...
|
|
int | SetMatrix (MatrixType &matrix) |
| Set the target matrix for the current solver. More...
|
|
int | SetMatrixP (MatrixType *matrix) |
| Set the target matrix for the current solver. More...
|
|
int | SetPreconditioner (SolverClass< MatrixType, VectorType, DataType > &precond) |
| Set the preconditioner for the current solver. More...
|
|
int | SetPreconditionerP (SolverClass< MatrixType, VectorType, DataType > *precond) |
| Set the preconditioner for the current solver. More...
|
|
bool | IsReady () const |
| Check if the solver is ready to be used. More...
|
|
int | SetOwnMatrix (bool own_matrix) |
| Set if the matrix is owned by this solver, if so, matrix is freed when free the solver. More...
|
|
int | SetOwnPreconditioner (bool own_preconditioner) |
| Set if the preconditioner is owned by this solver, if so, preconditioner is freed when free the solver. More...
|
|
int | SetPrintOption (int print_option) |
| Set the print option. More...
|
|
PrecisionEnum | GerPrecision () const |
| Get the precision. More...
|
|
SolverTypeEnum | GetSolverType () const |
| Get the solver type. More...
|
|
template<class MatrixType, class VectorType, typename DataType>
class pargemslr::FlexGmresClass< MatrixType, VectorType, DataType >
The real flexgmres solver class. MatrixType is the type of the matrix, VectorType is the type of the vector, DataType is the data type.
MatrixType required function: SetupVectorPtrStr, Matvec, GetMpiInfo (for PARGEMSLR_TIMING).