chrono::ChSolverBiCGSTAB Class Reference

Description

BiCGSTAB iterative solver.


Solves for Ax = b sparse linear problems using a bi-conjugate gradient stabilized algorithm.
See ChIterativeSolverLS for supported solver settings and paramters.

#include <ChIterativeSolverLS.h>

Inheritance diagram for chrono::ChSolverBiCGSTAB:
Collaboration diagram for chrono::ChSolverBiCGSTAB:

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::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.
 
- 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.
 

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::ChSolver
bool verbose
 
- 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
 

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