chrono::ChSolverGMRES Class Reference

## Description

GMRES iterative solver.

Solves Ax=b for general sparse matrix a, using the Generalized Minimal Residual Algorithm based on the Arnoldi algorithm implemented with Householder reflections.

See ChIterativeSolverLS for supported solver settings and paramters.

`#include <ChIterativeSolverLS.h>`

Inheritance diagram for chrono::ChSolverGMRES:

Collaboration diagram for chrono::ChSolverGMRES:

## Public Member Functions | |

virtual Type | GetType () const override |

Return type of the solver. | |

virtual int | GetIterations () const override |

Return the number of iterations performed during the last solve. | |

virtual double | GetError () const override |

Return the tolerance error reached during the last solve. | |

Public Member Functions inherited from chrono::ChIterativeSolverLS | |

virtual bool | Setup (ChSystemDescriptor &sysd) override |

Perform the solver setup operations. More... | |

virtual double | Solve (ChSystemDescriptor &sysd) override |

Performs the solution of the problem. More... | |

Public Member Functions inherited from chrono::ChIterativeSolver | |

void | SetMaxIterations (int max_iterations) |

Set the maximum number of iterations. | |

void | SetTolerance (double tolerance) |

Set the tolerance threshold used by the stopping criteria. | |

void | EnableDiagonalPreconditioner (bool val) |

Enable/disable use of a simple diagonal preconditioner (default: true). More... | |

void | EnableWarmStart (bool val) |

Enable/disable warm starting by providing an initial guess (default: false). More... | |

int | GetMaxIterations () const |

Get the current maximum number of iterations. | |

double | GetTolerance () const |

Get the current tolerance value. | |

Public Member Functions inherited from chrono::ChSolver | |

void | SetVerbose (bool mv) |

Set verbose output from solver. | |

virtual void | ArchiveOUT (ChArchiveOut &marchive) |

Method to allow serialization of transient data to archives. | |

virtual void | ArchiveIN (ChArchiveIn &marchive) |

Method to allow de-serialization of transient data from archives. | |

## Additional Inherited Members | |

Public Types inherited from chrono::ChSolver | |

enum | Type { Type::PSOR = 0, Type::PSSOR, Type::PJACOBI, Type::PMINRES, Type::BARZILAIBORWEIN, Type::APGD, Type::SPARSE_LU, Type::SPARSE_QR, Type::PARDISO, Type::MUMPS, Type::GMRES, Type::MINRES, Type::BICGSTAB, CUSTOM
} |

Available types of solvers. More... | |

Protected Member Functions inherited from chrono::ChIterativeSolverLS | |

virtual bool | SolveRequiresMatrix () const override final |

Indicate whether or not the Solve() phase requires an up-to-date problem matrix. | |

Protected Member Functions inherited from chrono::ChIterativeSolver | |

ChIterativeSolver (int max_iterations, double tolerance, bool use_precond, bool warm_start) | |

void | SaveMatrix (ChSystemDescriptor &sysd) |

double | CheckSolution (ChSystemDescriptor &sysd, const ChVectorDynamic<> &x) |

Protected Attributes inherited from chrono::ChIterativeSolverLS | |

ChMatrixSPMV * | m_spmv |

matrix-like wrapper for SPMV operations | |

ChVectorDynamic< double > | m_sol |

solution vector | |

ChVectorDynamic< double > | m_rhs |

right-hand side vector | |

ChVectorDynamic< double > | m_invdiag |

inverse diagonal entries (for preconditioning) | |

ChVectorDynamic< double > | m_initguess |

initial guess (for warm start) | |

Protected Attributes inherited from chrono::ChIterativeSolver | |

bool | m_use_precond |

use diagonal preconditioning? | |

bool | m_warm_start |

use initial guesss? | |

int | m_max_iterations |

maximum number of iterations | |

double | m_tolerance |

tolerance threshold in stopping criteria | |

Protected Attributes inherited from chrono::ChSolver | |

bool | verbose |

The documentation for this class was generated from the following files:

- /builds/uwsbel/chrono/src/chrono/solver/ChIterativeSolverLS.h
- /builds/uwsbel/chrono/src/chrono/solver/ChIterativeSolverLS.cpp