Class SUNLinSolWrapper¶
Defined in File sundials_linsol_wrapper.h
Inheritance Relationships¶
Derived Types¶
public amici::SUNLinSolBand(Class SUNLinSolBand)public amici::SUNLinSolDense(Class SUNLinSolDense)public amici::SUNLinSolKLU(Class SUNLinSolKLU)public amici::SUNLinSolPCG(Class SUNLinSolPCG)public amici::SUNLinSolSPBCGS(Class SUNLinSolSPBCGS)public amici::SUNLinSolSPFGMR(Class SUNLinSolSPFGMR)public amici::SUNLinSolSPGMR(Class SUNLinSolSPGMR)public amici::SUNLinSolSPTFQMR(Class SUNLinSolSPTFQMR)
Class Documentation¶
-
class
amici::SUNLinSolWrapper¶ A RAII wrapper for SUNLinearSolver structs.
For details on member functions see documentation in sunlinsol/sundials_linearsolver.h.
Subclassed by amici::SUNLinSolBand, amici::SUNLinSolDense, amici::SUNLinSolKLU, amici::SUNLinSolPCG, amici::SUNLinSolSPBCGS, amici::SUNLinSolSPFGMR, amici::SUNLinSolSPGMR, amici::SUNLinSolSPTFQMR
Public Functions
-
SUNLinSolWrapper() = default¶
-
SUNLinSolWrapper(SUNLinearSolver linsol)¶ Wrap existing SUNLinearSolver.
- Parameters
linsol:
-
~SUNLinSolWrapper()¶
-
SUNLinSolWrapper(const SUNLinSolWrapper &other) = delete¶ Copy constructor.
- Parameters
other:
-
SUNLinSolWrapper(SUNLinSolWrapper &&other) noexcept¶ Move constructor.
- Parameters
other:
-
SUNLinSolWrapper &
operator=(const SUNLinSolWrapper &other) = delete¶ Copy assignment.
- Return
- Parameters
other:
-
SUNLinSolWrapper &
operator=(SUNLinSolWrapper &&other) noexcept¶ Move assignment.
- Return
- Parameters
other:
-
SUNLinearSolver
get() const¶ Returns the wrapped SUNLinSol.
- Return
SUNLinearSolver
-
SUNLinearSolver_Type
getType() const¶ Returns an identifier for the linear solver type.
- Return
-
void
setup(SUNMatrix A) const¶ Performs any linear solver setup needed, based on an updated system matrix A.
- Parameters
A:
-
void
setup(const SUNMatrixWrapper &A) const¶ Performs any linear solver setup needed, based on an updated system matrix A.
- Parameters
A:
-
int
Solve(SUNMatrix A, N_Vector x, N_Vector b, realtype tol) const¶ Solves a linear system A*x = b.
- Return
error flag
- Parameters
A:x: A template for cloning vectors needed within the solver.b:tol: Tolerance (weighted 2-norm), iterative solvers only
-
long int
getLastFlag() const¶ Returns the last error flag encountered within the linear solver.
- Return
error flag
-
int
space(long int *lenrwLS, long int *leniwLS) const¶ Returns the integer and real workspace sizes for the linear solver.
- Return
workspace size
- Parameters
lenrwLS: output argument for size of real workspaceleniwLS: output argument for size of integer workspace
-
SUNMatrix
getMatrix() const¶ Get the matrix A (matrix solvers only).
- Return
A
Protected Functions
-
int
initialize()¶ Performs linear solver initialization (assumes that all solver-specific options have been set).
- Return
error code
Protected Attributes
-
SUNLinearSolver
solver_= {nullptr}¶ Wrapped solver
-