|
| | SIRA () |
| |
| virtual | ~SIRA () |
| |
| virtual void | Print (void) const |
| | Print information about the solver. More...
|
| |
| virtual void | Build (void) |
| | Build the solver (data allocation, structure computation, numerical computation) More...
|
| |
| virtual void | SetNumberOfEigenvalues (const int num) |
| |
| virtual void | Clear (void) |
| | Clear (free all local data) the solver. More...
|
| |
| virtual void | Init (ValueTypeH abs_tol, int MaxOuterIter, int MaxInnerIter) |
| | Initialize the solver with abs_tol tolerance and number of maximum outer iteration. The maximum number of inner iteration would be default : MaxInnerIter = 0 dim*MaxInnerIter: 0 < MaxInnerIter <= 1 MaxInnerIter : 1 < MaxInnerIter. More...
|
| |
| virtual void | SetInnerStoppingCriterion (const int n) |
| | Set the stopping criteria of inner linear solver where 0: constant tolerance 1: H.N. stopping criteria. More...
|
| |
| virtual void | SetInnerPreconditioner (Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > &p) |
| | Set the inner solver's preocnditioner. More...
|
| |
| virtual void | SetInnerPreconditioner (Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > &p1, Preconditioner< LocalMatrix< ValueTypeL >, LocalVector< ValueTypeL >, ValueTypeL > &p2) |
| | Set the inner solver's preocnditioner. More...
|
| |
| virtual void | SetInnerPreconditioner (int a) |
| | Disable the preconditioner when a == 0. More...
|
| |
| virtual void | Solve (const VectorTypeH &vec_start, VectorTypeH *vec_ans) |
| | Solve the eigenvalue with initial vector vec_start. More...
|
| |
| virtual void | Solve (VectorTypeH *x) |
| | Solver the eigenvalue with random initial. More...
|
| |
| virtual int | GetIterationCount (void) |
| | Return the iteration count. More...
|
| |
| virtual double | GetCurrentResidual (void) |
| | Return the current residual. More...
|
| |
| virtual int | GetSolverStatus (void) |
| | Return the current status. More...
|
| |
| void | RecordResidualHistory (void) |
| | Write the history to file. More...
|
| |
| virtual void | Verbose (const int verb=1) |
| | Provide verbose output of the solver: verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;. More...
|
| |
| template<> |
| void | Clear (void) |
| | Clear (free all local data) the solver. More...
|
| |
| template<> |
| void | Clear (void) |
| | Clear (free all local data) the solver. More...
|
| |
| template<> |
| void | SetInnerStoppingCriterion (const int n) |
| |
| template<> |
| void | SetInnerStoppingCriterion (const int n) |
| |
| void | SetOperator (const OperatorTypeH &op) |
| | Set the Operator of the solver. More...
|
| |
| virtual void | ResetOperator (const OperatorTypeH &op) |
| | Reset the operator; see ReBuildNumeric. More...
|
| |
| virtual void | SolveZeroSol (const VectorTypeH &rhs, VectorTypeH *x) |
| | Solve Operator x = rhs; but set first the init x = 0. More...
|
| |
| virtual void | ReBuildNumeric (void) |
| | Rebuild only with numerical computation (no allocation or data structure computation) More...
|
| |
| virtual void | MoveToHost (void) |
| | Move all the data (i.e. move the solver) to the host. More...
|
| |
| virtual void | MoveToAccelerator (void) |
| | Move all the data (i.e. move the solver) to the accelerator. More...
|
| |
|
| Preconditioner< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > * | p_inner_h_ |
| | Preconditioner for inner linear solver. More...
|
| |
| Preconditioner< LocalMatrix< ValueTypeL >, LocalVector< ValueTypeL >, ValueTypeL > * | p_inner_l_ |
| |
| FSAI< LocalMatrix< ValueTypeH >, LocalVector< ValueTypeH >, ValueTypeH > * | p_fsai_h_ |
| |
| FSAI< LocalMatrix< ValueTypeL >, LocalVector< ValueTypeL >, ValueTypeL > * | p_fsai_l_ |
| |
| CG< OperatorTypeH, VectorTypeH, ValueTypeH > * | inner_cg_h_ |
| | Inner linear solver. More...
|
| |
| CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH > * | inner_cg_hn_h_ |
| |
| CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL > * | inner_cg_hn_l_ |
| |
| IterationControl | iter_ctrl_ |
| | Iteration control (monitor) More...
|
| |
| const OperatorTypeH * | op_ |
| | Pointer to the operator. More...
|
| |
| Solver< OperatorTypeH, VectorTypeH, ValueTypeH > * | precond_ |
| | Pointer to the defined preconditioner. More...
|
| |
| bool | build_ |
| | Flag == true after building the solver (e.g. Build()) More...
|
| |
| LocalVector< int > | permutation_ |
| | Permutation vector (used if the solver performs permutation/re-ordering techniques) More...
|
| |
| int | verb_ |
| | Verbose flag verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;. More...
|
| |
| size_t | global_obj_id |
| |
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Build |
( |
void |
| ) |
|
|
virtual |
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
| virtual void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Clear |
( |
void |
| ) |
|
|
virtual |
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Init |
( |
ValueTypeH |
abs_tol, |
|
|
int |
MaxOuterIter, |
|
|
int |
MaxInnerIter |
|
) |
| |
|
virtual |
Initialize the solver with abs_tol tolerance and number of maximum outer iteration. The maximum number of inner iteration would be default : MaxInnerIter = 0 dim*MaxInnerIter: 0 < MaxInnerIter <= 1 MaxInnerIter : 1 < MaxInnerIter.
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
| virtual void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Inner |
( |
| ) |
|
|
protectedvirtual |
Solve the inner linear solver.
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::MoveToAcceleratorLocalData_ |
( |
void |
| ) |
|
|
protectedvirtual |
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::MoveToHostLocalData_ |
( |
void |
| ) |
|
|
protectedvirtual |
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Print |
( |
void |
| ) |
const |
|
virtual |
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::PrintEnd_ |
( |
void |
| ) |
const |
|
protectedvirtual |
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::PrintStart_ |
( |
void |
| ) |
const |
|
protectedvirtual |
template<class OperatorTypeH, class VectorTypeH, typename ValueTypeH, class OperatorTypeL = LocalMatrix<double>, class VectorTypeL = LocalVector<double>, typename ValueTypeL = double>
| virtual void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::SetInnerStoppingCriterion |
( |
const int |
n | ) |
|
|
virtual |
Set the stopping criteria of inner linear solver where 0: constant tolerance 1: H.N. stopping criteria.
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Solve |
( |
const VectorTypeH & |
vec_start, |
|
|
VectorTypeH * |
vec_ans |
|
) |
| |
|
virtual |
template<class OperatorTypeH , class VectorTypeH , typename ValueTypeH , class OperatorTypeL , class VectorTypeL , typename ValueTypeL >
| void paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >::Verbose |
( |
const int |
verb = 1 | ) |
|
|
virtual |