![]() |
Project
|
for solving large system of linear equations More...
#include <MinResSolve.h>
Inherits TObject.
Public Types | |
| enum | { kPreconBD = 1 , kPreconILU0 = 100 , kPreconILU10 = kPreconILU0 + 10 , kPreconsTot } |
| enum | { kSolMinRes , kSolFGMRes , kNSolvers } |
Public Member Functions | |
| MinResSolve () | |
| default constructor | |
| MinResSolve (const MatrixSq *mat, const TVectorD *rhs) | |
| copy accepting equation | |
| MinResSolve (const MatrixSq *mat, const double *rhs) | |
| copy accepting equation | |
| MinResSolve (const MinResSolve &src) | |
| copy constructor | |
| ~MinResSolve () override | |
| destructor | |
| MinResSolve & | operator= (const MinResSolve &rhs) |
| assignment op. | |
| Bool_t | SolveMinRes (Double_t *VecSol, Int_t precon=0, int itnlim=2000, double rtol=1e-12) |
| MINRES method (for symmetric matrices) | |
| Bool_t | SolveMinRes (TVectorD &VecSol, Int_t precon=0, int itnlim=2000, double rtol=1e-12) |
| MINRES method (for symmetric matrices) | |
| Bool_t | SolveFGMRES (Double_t *VecSol, Int_t precon=0, int itnlim=2000, double rtol=1e-12, int nkrylov=60) |
| FGMRES method (for general symmetric matrices) | |
| Bool_t | SolveFGMRES (TVectorD &VecSol, Int_t precon=0, int itnlim=2000, double rtol=1e-12, int nkrylov=60) |
| FGMRES method (for general symmetric matrices) | |
| Bool_t | InitAuxMinRes () |
| init auxiliary space for MinRes | |
| Bool_t | InitAuxFGMRES (int nkrylov) |
| init auxiliary space for fgmres | |
| void | ApplyPrecon (const TVectorD &vecRHS, TVectorD &vecOut) const |
| apply precond. | |
| void | ApplyPrecon (const double *vecRHS, double *vecOut) const |
| Application of preconditioner matrix: implicitly defines the matrix solving the M*VecOut = VecRHS. | |
| Int_t | BuildPrecon (Int_t val=0) |
| preconditioner building | |
| Int_t | GetPrecon () const |
| void | ClearAux () |
| clear aux. space | |
| Int_t | BuildPreconBD (Int_t hwidth) |
| build Band-Diagonal preconditioner | |
| Int_t | BuildPreconILUK (Int_t lofM) |
| ILUK preconditioner. | |
| Int_t | BuildPreconILUKDense (Int_t lofM) |
| ILUK preconditioner. | |
| Int_t | PreconILUKsymb (Int_t lofM) |
| ILUK preconditioner. | |
| Int_t | PreconILUKsymbDense (Int_t lofM) |
| ILUK preconditioner. | |
Protected Member Functions | |
| ClassDefOverride (MinResSolve, 0) | |
Protected Attributes | |
| Int_t | fSize |
| dimension of the input matrix | |
| Int_t | fPrecon |
| preconditioner type | |
| MatrixSq * | fMatrix |
| matrix defining the equations | |
| Double_t * | fRHS |
| right hand side | |
| Double_t * | fPVecY |
| aux. space | |
| Double_t * | fPVecR1 |
| Double_t * | fPVecR2 |
| Double_t * | fPVecV |
| Double_t * | fPVecW |
| Double_t * | fPVecW1 |
| Double_t * | fPVecW2 |
| Double_t ** | fPvv |
| Double_t ** | fPvz |
| Double_t ** | fPhh |
| Double_t * | fDiagLU |
| MatrixSparse * | fMatL |
| MatrixSparse * | fMatU |
| SymBDMatrix * | fMatBD |
for solving large system of linear equations
Includes MINRES, FGMRES methods as well as a few precondiotiong methods
Definition at line 36 of file MinResSolve.h.
| anonymous enum |
| Enumerator | |
|---|---|
| kPreconBD | |
| kPreconILU0 | |
| kPreconILU10 | |
| kPreconsTot | |
Definition at line 40 of file MinResSolve.h.
| anonymous enum |
| Enumerator | |
|---|---|
| kSolMinRes | |
| kSolFGMRes | |
| kNSolvers | |
Definition at line 44 of file MinResSolve.h.
| MinResSolve::MinResSolve | ( | ) |
default constructor
Definition at line 29 of file MinResSolve.cxx.
| MinResSolve::MinResSolve | ( | const MatrixSq * | mat, |
| const TVectorD * | rhs | ||
| ) |
copy accepting equation
Definition at line 76 of file MinResSolve.cxx.
| MinResSolve::MinResSolve | ( | const MatrixSq * | mat, |
| const double * | rhs | ||
| ) |
copy accepting equation
Definition at line 99 of file MinResSolve.cxx.
| MinResSolve::MinResSolve | ( | const MinResSolve & | src | ) |
copy constructor
Definition at line 52 of file MinResSolve.cxx.
|
override |
destructor
Definition at line 122 of file MinResSolve.cxx.
| void MinResSolve::ApplyPrecon | ( | const double * | vecRHS, |
| double * | vecOut | ||
| ) | const |
Application of preconditioner matrix: implicitly defines the matrix solving the M*VecOut = VecRHS.
Definition at line 659 of file MinResSolve.cxx.
| void MinResSolve::ApplyPrecon | ( | const TVectorD & | vecRHS, |
| TVectorD & | vecOut | ||
| ) | const |
apply precond.
Definition at line 652 of file MinResSolve.cxx.
| Int_t MinResSolve::BuildPrecon | ( | Int_t | val = 0 | ) |
preconditioner building
Definition at line 140 of file MinResSolve.cxx.
| Int_t MinResSolve::BuildPreconBD | ( | Int_t | hwidth | ) |
build Band-Diagonal preconditioner
Definition at line 776 of file MinResSolve.cxx.
| Int_t MinResSolve::BuildPreconILUK | ( | Int_t | lofM | ) |
ILUK preconditioner.
Definition at line 810 of file MinResSolve.cxx.
| Int_t MinResSolve::BuildPreconILUKDense | ( | Int_t | lofM | ) |
ILUK preconditioner.
Definition at line 945 of file MinResSolve.cxx.
|
protected |
| void MinResSolve::ClearAux | ( | ) |
clear aux. space
Definition at line 727 of file MinResSolve.cxx.
|
inline |
Definition at line 94 of file MinResSolve.h.
| Bool_t MinResSolve::InitAuxFGMRES | ( | int | nkrylov | ) |
init auxiliary space for fgmres
Definition at line 706 of file MinResSolve.cxx.
| Bool_t MinResSolve::InitAuxMinRes | ( | ) |
init auxiliary space for MinRes
Definition at line 689 of file MinResSolve.cxx.
| MinResSolve & MinResSolve::operator= | ( | const MinResSolve & | rhs | ) |
assignment op.
Definition at line 128 of file MinResSolve.cxx.
| Int_t MinResSolve::PreconILUKsymb | ( | Int_t | lofM | ) |
ILUK preconditioner.
Definition at line 1065 of file MinResSolve.cxx.
| Int_t MinResSolve::PreconILUKsymbDense | ( | Int_t | lofM | ) |
ILUK preconditioner.
Definition at line 1214 of file MinResSolve.cxx.
| Bool_t o2::fwdalign::MinResSolve::SolveFGMRES | ( | Double_t * | VecSol, |
| Int_t | precon = 0, |
||
| int | itnlim = 2000, |
||
| double | rtol = 1e-12, |
||
| int | nkrylov = 60 |
||
| ) |
FGMRES method (for general symmetric matrices)
| Bool_t MinResSolve::SolveFGMRES | ( | TVectorD & | VecSol, |
| Int_t | precon = 0, |
||
| int | itnlim = 2000, |
||
| double | rtol = 1e-12, |
||
| int | nkrylov = 60 |
||
| ) |
FGMRES method (for general symmetric matrices)
Definition at line 160 of file MinResSolve.cxx.
| Bool_t o2::fwdalign::MinResSolve::SolveMinRes | ( | Double_t * | VecSol, |
| Int_t | precon = 0, |
||
| int | itnlim = 2000, |
||
| double | rtol = 1e-12 |
||
| ) |
MINRES method (for symmetric matrices)
| Bool_t MinResSolve::SolveMinRes | ( | TVectorD & | VecSol, |
| Int_t | precon = 0, |
||
| int | itnlim = 2000, |
||
| double | rtol = 1e-12 |
||
| ) |
MINRES method (for symmetric matrices)
Definition at line 361 of file MinResSolve.cxx.
|
protected |
Definition at line 130 of file MinResSolve.h.
|
protected |
Definition at line 133 of file MinResSolve.h.
|
protected |
Definition at line 131 of file MinResSolve.h.
|
protected |
matrix defining the equations
Definition at line 117 of file MinResSolve.h.
|
protected |
Definition at line 132 of file MinResSolve.h.
|
protected |
Definition at line 129 of file MinResSolve.h.
|
protected |
preconditioner type
Definition at line 116 of file MinResSolve.h.
|
protected |
Definition at line 121 of file MinResSolve.h.
|
protected |
Definition at line 122 of file MinResSolve.h.
|
protected |
Definition at line 123 of file MinResSolve.h.
|
protected |
Definition at line 124 of file MinResSolve.h.
|
protected |
Definition at line 125 of file MinResSolve.h.
|
protected |
Definition at line 126 of file MinResSolve.h.
|
protected |
aux. space
Definition at line 120 of file MinResSolve.h.
|
protected |
Definition at line 127 of file MinResSolve.h.
|
protected |
Definition at line 128 of file MinResSolve.h.
|
protected |
right hand side
Definition at line 118 of file MinResSolve.h.
|
protected |
dimension of the input matrix
Definition at line 115 of file MinResSolve.h.