Class SUNLinSolSPFGMR

Inheritance Relationships

Base Type

Class Documentation

class SUNLinSolSPFGMR : public amici::SUNLinSolWrapper

SUNDIALS scaled preconditioned FGMRES (Flexible Generalized Minimal Residual method) (SPFGMR) solver.

Public Functions

SUNLinSolSPFGMR(AmiVector const &x, int pretype, int maxl)

SUNLinSolSPFGMR.

Parameters:
  • x – A template for cloning vectors needed within the solver.

  • pretype – Preconditioner type (PREC_NONE, PREC_LEFT, PREC_RIGHT, PREC_BOTH)

  • maxl – Maximum number of solver iterations

int setATimes(void *A_data, ATimesFn ATimes)

Sets the function pointer for ATimes (see sundials/sundials_linearsolver.h).

Parameters:
  • A_data

  • ATimes

Returns:

int setPreconditioner(void *P_data, PSetupFn Pset, PSolveFn Psol)

Sets function pointers for PSetup and PSolve routines inside of iterative linear solver objects (see sundials/sundials_linearsolver.h).

Parameters:
  • P_data

  • Pset

  • Psol

Returns:

int setScalingVectors(N_Vector s, N_Vector nul)

Sets pointers to left/right scaling vectors for the linear system solve (see sundials/sundials_linearsolver.h).

Parameters:
  • s

  • nul

Returns:

int getNumIters() const

Returns the number of linear iterations performed in the last ‘Solve’ call.

Returns:

Number of iterations

realtype getResNorm() const

Returns the final residual norm from the last ‘Solve’ call.

Returns:

residual norm

N_Vector getResid() const

Get preconditioned initial residual (see sundials/sundials_linearsolver.h).

Returns: