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 | |
virtual 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 | |
virtual ChDirectSolverLS * | AsDirect () |
Downcast to ChDirectSolver. | |
void | SetVerbose (bool mv) |
Set verbose output from solver. | |
void | EnableWrite (bool val, const std::string &frame, const std::string &out_dir=".") |
Enable/disable debug output of matrix, RHS, and solution vector. | |
virtual void | ArchiveOut (ChArchiveOut &archive_out) |
Method to allow serialization of transient data to archives. | |
virtual void | ArchiveIn (ChArchiveIn &archive_in) |
Method to allow de-serialization of transient data from archives. | |
Additional Inherited Members | |
Public Types inherited from chrono::ChSolver | |
enum | Type { Type::PSOR, Type::PSSOR, Type::PJACOBI, Type::PMINRES, Type::BARZILAIBORWEIN, Type::APGD, Type::ADMM, Type::SPARSE_LU, Type::SPARSE_QR, Type::PARDISO_MKL, Type::MUMPS, Type::GMRES, Type::MINRES, Type::BICGSTAB, CUSTOM } |
Available types of solvers. More... | |
Protected Member Functions inherited from chrono::ChIterativeSolverLS | |
virtual bool | IsIterative () const override |
Return true if iterative solver. | |
virtual bool | IsDirect () const override |
Return true if direct solver. | |
virtual ChIterativeSolver * | AsIterative () override |
Downcast to ChIterativeSolver. | |
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 | WriteMatrices (ChSystemDescriptor &sysd, bool one_indexed=true) |
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 |
bool | write_matrix |
std::string | output_dir |
std::string | frame_id |
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