chrono::ChSolverPCG Class Reference
Description
An iterative solver based on modified Krylov iteration of projected conjugate gradient.
See ChSystemDescriptor for more information about the problem formulation and the data structures passed to the solver.
#include <ChSolverPCG.h>
Inheritance diagram for chrono::ChSolverPCG:

Collaboration diagram for chrono::ChSolverPCG:

Public Member Functions | |
ChSolverPCG (int mmax_iters=50, bool mwarm_start=false, double mtolerance=0.0) | |
virtual Type | GetType () const override |
Return type of the solver. More... | |
virtual double | Solve (ChSystemDescriptor &sysd) override |
Performs the solution of the problem. More... | |
![]() | |
ChIterativeSolver (int mmax_iters=50, bool mwarm_start=false, double mtolerance=0.0, double momega=1.0, double mshlambda=1.0) | |
virtual bool | SolveRequiresMatrix () const override |
Indicate whether ot not the Solve() phase requires an up-to-date problem matrix. More... | |
void | SetMaxIterations (int mval) |
Set the maximum number of iterations. More... | |
int | GetMaxIterations () const |
Get the current value for the maximum allowed number of iterations. | |
int | GetTotalIterations () const |
Get the number of total iterations taken by the solver. | |
void | SetOmega (double mval) |
Set the overrelaxation factor. More... | |
double | GetOmega () const |
Return the current value of the overrelaxation factor. | |
virtual void | SetSharpnessLambda (double mval) |
Set the sharpness factor. More... | |
virtual double | GetSharpnessLambda () const |
Return the current value of the sharpness factor. | |
void | SetWarmStart (bool mval) |
Enable/disable 'warm start'. More... | |
bool | GetWarmStart () const |
Return a flag indicating whether or not warm start is enabled. | |
void | SetTolerance (double mval) |
Set the tolerance for stopping criterion. More... | |
double | GetTolerance () const |
Return the current value of the solver tolerance. | |
void | SetRecordViolation (bool mval) |
Enable/disable recording of the constraint violation history. More... | |
bool | GetRecordViolation () const |
Return a flag indicating whether or not constraint violations are recorded. | |
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. More... | |
![]() | |
virtual bool | Setup (ChSystemDescriptor &sysd) |
This function does the setup operations for the solver. More... | |
void | SetVerbose (bool mv) |
Set verbose output from solver. | |
bool | GetVerbose () const |
Additional Inherited Members | |
![]() | |
enum | Type { SOR = 0, SYMMSOR, JACOBI, SOR_MULTITHREAD, PMINRES, BARZILAIBORWEIN, PCG, APGD, MINRES, SOLVER_SMC, CUSTOM } |
Available types of solvers. | |
![]() | |
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 void | ArchiveOUT (ChArchiveOut &marchive) override |
Method to allow serialization of transient data to archives. | |
virtual void | ArchiveIN (ChArchiveIn &marchive) override |
Method to allow de serialization of transient data from archives. | |
![]() | |
int | max_iterations |
maximum allowed iterations | |
int | tot_iterations |
total number of iterations performed by the solver | |
bool | warm_start |
indicate whether or not to use warm starting | |
double | tolerance |
tolerance for termination criteria | |
double | omega |
over-relaxation factor | |
double | shlambda |
sharpness factor | |
bool | record_violation_history |
std::vector< double > | violation_history |
std::vector< double > | dlambda_history |
![]() | |
bool | verbose |
Constructor & Destructor Documentation
chrono::ChSolverPCG::ChSolverPCG | ( | int | mmax_iters = 50 , |
bool | mwarm_start = false , |
||
double | mtolerance = 0.0 |
||
) |
- Parameters
-
mmax_iters max.number of iterations mwarm_start uses warm start? mtolerance tolerance for termination criterion
Member Function Documentation
|
overridevirtual |
Return type of the solver.
Default is CUSTOM. Derived classes should override this function.
Reimplemented from chrono::ChSolver.
|
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.