|
PARALUTION
1.0.0
PARALUTION
|
MultiElimination (I)LU factorization (see 12.5.1 Multi-Elimination ILU from "Iterative Methods for Sparse Linear Systems", 2nd Edition, Yousef Saad); The ME-ILU preconditioner is build recursively. More...
#include <preconditioner_multielimination.hpp>
Public Member Functions | |
| MultiElimination () | |
| virtual | ~MultiElimination () |
| int | get_size_diag_block (void) const |
| Returns the size of the first (diagonal) block of the preconditioner. More... | |
| int | get_level (void) const |
| Return the depth of the current level. More... | |
| virtual void | Print (void) const |
| Print information about the solver. More... | |
| virtual void | Clear (void) |
| Clear (free all local data) the solver. More... | |
| virtual void | Set (Solver< OperatorType, VectorType, ValueType > &AA_Solver, const int level, const double drop_off=double(0.0)) |
| Initialize (recursively) ME-ILU with level (defines the depth of recursion); AA_Solvers - defines the last-block solver; drop_off - defines drop-off tolerance. More... | |
| virtual void | SetPrecondMatrixFormat (const unsigned int mat_format) |
| Set a specific matrix type of the decomposed block matrices; if not set, CSR matrix format will be used. More... | |
| virtual void | Build (void) |
| Build the solver (data allocation, structure computation, numerical computation) More... | |
| virtual void | Solve (const VectorType &rhs, VectorType *x) |
| Solve Operator x = rhs. More... | |
| virtual void | SolveZeroSol (const VectorType &rhs, VectorType *x) |
| Solve Operator x = rhs; but set first the init x = 0. More... | |
| void | SetOperator (const OperatorType &op) |
| Set the Operator of the solver. More... | |
| virtual void | ResetOperator (const OperatorType &op) |
| Reset the operator; see ReBuildNumeric. 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... | |
| 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... | |
Protected Member Functions | |
| virtual void | MoveToHostLocalData_ (void) |
| Move all local data to the host. More... | |
| virtual void | MoveToAcceleratorLocalData_ (void) |
| Move all local data to the accelerator. More... | |
| virtual void | PrintStart_ (void) const |
| Print starting msg of the solver. More... | |
| virtual void | PrintEnd_ (void) const |
| Print ending msg of the solver. More... | |
Protected Attributes | |
| OperatorType | A_ |
A_ is decomposed into , where ; ;. More... | |
| OperatorType | D_ |
| Diagonal part. More... | |
| OperatorType | E_ |
| OperatorType | F_ |
| OperatorType | C_ |
| OperatorType | AA_ |
; More... | |
| int | AA_nrow_ |
| The sizes of the AA_ matrix. More... | |
| int | AA_nnz_ |
| bool | op_mat_format_ |
| Keep the precond matrix in CSR or not. More... | |
| unsigned int | precond_mat_format_ |
| Precond matrix format. More... | |
| VectorType | x_ |
| VectorType | x_1_ |
| VectorType | x_2_ |
| VectorType | rhs_ |
| VectorType | rhs_1_ |
| VectorType | rhs_2_ |
| MultiElimination< OperatorType, VectorType, ValueType > * | AA_me_ |
| Solver< OperatorType, VectorType, ValueType > * | AA_solver_ |
| bool | diag_solver_init_ |
| int | level_ |
| double | drop_off_ |
| VectorType | inv_vec_D_ |
| VectorType | vec_D_ |
| LocalVector< int > | permutation_ |
| int | size_ |
| const OperatorType * | op_ |
| Pointer to the operator. More... | |
| Solver< OperatorType, VectorType, ValueType > * | precond_ |
| Pointer to the defined preconditioner. More... | |
| bool | build_ |
| Flag == true after building the solver (e.g. Build()) 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 |
MultiElimination (I)LU factorization (see 12.5.1 Multi-Elimination ILU from "Iterative Methods for Sparse Linear Systems", 2nd Edition, Yousef Saad); The ME-ILU preconditioner is build recursively.
| paralution::MultiElimination< OperatorType, VectorType, ValueType >::MultiElimination | ( | ) |
|
virtual |
|
virtual |
Build the solver (data allocation, structure computation, numerical computation)
Reimplemented from paralution::Solver< OperatorType, VectorType, ValueType >.
|
virtual |
Clear (free all local data) the solver.
Reimplemented from paralution::Solver< OperatorType, VectorType, ValueType >.
|
inline |
Return the depth of the current level.
|
inline |
Returns the size of the first (diagonal) block of the preconditioner.
|
virtualinherited |
Move all the data (i.e. move the solver) to the accelerator.
Referenced by main(), mexFunction(), and paralution_fortran_solve().
|
protectedvirtual |
Move all local data to the accelerator.
Implements paralution::Solver< OperatorType, VectorType, ValueType >.
|
virtualinherited |
Move all the data (i.e. move the solver) to the host.
|
protectedvirtual |
Move all local data to the host.
Implements paralution::Solver< OperatorType, VectorType, ValueType >.
|
virtual |
Print information about the solver.
Implements paralution::Solver< OperatorType, VectorType, ValueType >.
|
protectedvirtualinherited |
Print ending msg of the solver.
Implements paralution::Solver< OperatorType, VectorType, ValueType >.
|
protectedvirtualinherited |
Print starting msg of the solver.
Implements paralution::Solver< OperatorType, VectorType, ValueType >.
|
virtualinherited |
Rebuild only with numerical computation (no allocation or data structure computation)
Reimplemented in paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::MultiColoredILU< OperatorType, VectorType, ValueType >, and paralution::MultiColoredSGS< OperatorType, VectorType, ValueType >.
|
virtualinherited |
Reset the operator; see ReBuildNumeric.
Reimplemented in paralution::SGS< OperatorType, VectorType, ValueType >, paralution::GS< OperatorType, VectorType, ValueType >, and paralution::Jacobi< OperatorType, VectorType, ValueType >.
Referenced by main().
|
virtual |
Initialize (recursively) ME-ILU with level (defines the depth of recursion); AA_Solvers - defines the last-block solver; drop_off - defines drop-off tolerance.
Referenced by main().
|
inherited |
Set the Operator of the solver.
Referenced by paralution::BaseAMG< OperatorType, VectorType, ValueType >::Build(), paralution::MultiElimination< OperatorType, VectorType, ValueType >::Build(), paralution::MultiColored< OperatorType, VectorType, ValueType >::Decompose_(), main(), mexFunction(), paralution_fortran_solve(), and paralution_solve().
|
virtual |
Set a specific matrix type of the decomposed block matrices; if not set, CSR matrix format will be used.
|
virtual |
Solve Operator x = rhs.
Implements paralution::Solver< OperatorType, VectorType, ValueType >.
|
virtualinherited |
Solve Operator x = rhs; but set first the init x = 0.
Reimplemented from paralution::Solver< OperatorType, VectorType, ValueType >.
|
virtualinherited |
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;.
Reimplemented in paralution::DirectLinearSolver< OperatorType, VectorType, ValueType >, paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >, paralution::IterativeLinearSolver< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::IterativeLinearSolver< OperatorTypeH, VectorTypeH, ValueTypeH >, and paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >.
|
protected |
A_ is decomposed into
, where
;
;.
|
protected |
;
|
protected |
|
protected |
|
protected |
The sizes of the AA_ matrix.
|
protected |
|
protectedinherited |
Flag == true after building the solver (e.g. Build())
|
protected |
|
protected |
Diagonal part.
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedinherited |
|
protected |
|
protected |
|
protectedinherited |
Pointer to the operator.
|
protected |
Keep the precond matrix in CSR or not.
|
protected |
|
protectedinherited |
Pointer to the defined preconditioner.
|
protected |
Precond matrix format.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedinherited |
Verbose flag verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;.
|
protected |
|
protected |
|
protected |