chrono::ChSolverPSSOR Class Reference
Description
An iterative solver based on symmetric projective fixed point method, with overrelaxation and immediate variable update as in SSOR methods.
See ChSystemDescriptor for more information about the problem formulation and the data structures passed to the solver.
 Deprecated:
 Use ChSolverPSOR, ChSolverBB, or ChSolverAPGD instead. This class will be removed in a future Chrono release.
#include <ChSolverPSSOR.h>
Inheritance diagram for chrono::ChSolverPSSOR:
Collaboration diagram for chrono::ChSolverPSSOR:
Public Member Functions  
virtual Type  GetType () const override 
Return type of the solver.  
virtual double  Solve (ChSystemDescriptor &sysd) override 
Performs the solution of the problem. More...  
virtual double  GetError () const override 
Return the tolerance error reached during the last solve. More...  
Public Member Functions inherited from chrono::ChIterativeSolverVI  
void  SetOmega (double mval) 
Set the overrelaxation factor (default: 1.0). More...  
void  SetSharpnessLambda (double mval) 
Set the sharpness factor (default: 1.0). More...  
void  SetRecordViolation (bool mval) 
Enable/disable recording of the constraint violation history. More...  
double  GetOmega () const 
Return the current value of the overrelaxation factor.  
double  GetSharpnessLambda () const 
Return the current value of the sharpness factor.  
virtual int  GetIterations () const override 
Return the number of iterations performed during the last solve.  
const std::vector< double > &  GetViolationHistory () const 
Access the vector of constraint violation history. More...  
const std::vector< double > &  GetDeltalambdaHistory () const 
Access the vector with history of maximum change in Lagrange multipliers Note that collection of constraint violations must be enabled through SetRecordViolation.  
virtual void  ArchiveOut (ChArchiveOut &archive_out) override 
Method to allow serialization of transient data to archives.  
virtual void  ArchiveIn (ChArchiveIn &archive_in) override 
Method to allow deserialization 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.  
Public Member Functions inherited from chrono::ChSolver  
virtual ChDirectSolverLS *  AsDirect () 
Downcast to ChDirectSolver.  
virtual bool  Setup (ChSystemDescriptor &sysd) 
This function does the setup operations for the solver. More...  
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.  
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::ChIterativeSolverVI  
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.  
void  AtIterationEnd (double mmaxviolation, double mdeltalambda, unsigned int iternum) 
This method MUST be called by all iterative methods INSIDE their iteration loops (at the end). More...  
virtual bool  SolveRequiresMatrix () const override 
Indicate whether ot not the Solve() phase requires an uptodate problem matrix. More...  
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::ChIterativeSolverVI  
int  m_iterations 
total number of iterations performed by the solver  
double  m_omega 
overrelaxation factor  
double  m_shlambda 
sharpness factor  
bool  record_violation_history 
std::vector< double >  violation_history 
std::vector< double >  dlambda_history 
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 
Member Function Documentation
◆ GetError()

inlineoverridevirtual 
Return the tolerance error reached during the last solve.
For the PSSOR solver, this is the maximum constraint violation.
Implements chrono::ChIterativeSolver.
◆ Solve()

overridevirtual 
Performs the solution of the problem.
 Returns
 the maximum constraint violation after termination.
 Parameters

sysd system description with constraints and variables
Implements chrono::ChSolver.
The documentation for this class was generated from the following files:
 /builds/uwsbel/chrono/src/chrono/solver/ChSolverPSSOR.h
 /builds/uwsbel/chrono/src/chrono/solver/ChSolverPSSOR.cpp