16#ifndef ALICEO2_FWDALIGN_MINRESSOLVE_H
17#define ALICEO2_FWDALIGN_MINRESSOLVE_H
68 Bool_t
SolveMinRes(Double_t* VecSol, Int_t precon = 0,
int itnlim = 2000,
double rtol = 1e-12);
71 Bool_t
SolveMinRes(TVectorD& VecSol, Int_t precon = 0,
int itnlim = 2000,
double rtol = 1e-12);
74 Bool_t
SolveFGMRES(Double_t* VecSol, Int_t precon = 0,
int itnlim = 2000,
double rtol = 1e-12,
int nkrylov = 60);
77 Bool_t
SolveFGMRES(TVectorD& VecSol, Int_t precon = 0,
int itnlim = 2000,
double rtol = 1e-12,
int nkrylov = 60);
86 void ApplyPrecon(
const TVectorD& vecRHS, TVectorD& vecOut)
const;
89 void ApplyPrecon(
const double* vecRHS,
double* vecOut)
const;
for solving large system of linear equations
MinResSolve()
default constructor
Int_t BuildPreconBD(Int_t hwidth)
build Band-Diagonal preconditioner
MatrixSq * fMatrix
matrix defining the equations
void ApplyPrecon(const TVectorD &vecRHS, TVectorD &vecOut) const
apply precond.
Int_t BuildPreconILUKDense(Int_t lofM)
ILUK preconditioner.
MinResSolve & operator=(const MinResSolve &rhs)
assignment op.
Bool_t InitAuxFGMRES(int nkrylov)
init auxiliary space for fgmres
Int_t fPrecon
preconditioner type
Int_t PreconILUKsymb(Int_t lofM)
ILUK preconditioner.
Double_t * fPVecY
aux. space
Int_t BuildPreconILUK(Int_t lofM)
ILUK preconditioner.
ClassDefOverride(MinResSolve, 0)
void ClearAux()
clear aux. space
Int_t BuildPrecon(Int_t val=0)
preconditioner building
~MinResSolve() override
destructor
Double_t * fRHS
right hand side
Int_t fSize
dimension of the input matrix
Int_t PreconILUKsymbDense(Int_t lofM)
ILUK preconditioner.
Bool_t InitAuxMinRes()
init auxiliary space for MinRes
Bool_t SolveMinRes(Double_t *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)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...