chrono::ChSolverVI Class Reference

Description

Base class for solvers aimed at solving complementarity problems arising from QP optimization problems.

The problem is described by a variational inequality VI(Z*x-d,K):

  | M -Cq'|*|q|- | f|= |0|
  | Cq -E | |l|  |-b|  |c|

with l \(\in\) Y, C \(\in\) Ny, normal cone to Y
Also Z symmetric by flipping sign of l_i:

  |M  Cq'|*| q|-| f|=|0|
  |Cq  E | |-l| |-b| |c|
  • case linear problem: all Y_i = R, Ny=0, ex. all bilaterals
  • case LCP: all Y_i = R+: c>=0, l>=0, l*c=0
  • case CCP: Y_i are friction cones

For details on the supported types of solvers see ChIterativeSolverVI and the concrete iterative VI solvers.

#include <ChSolverVI.h>

Inheritance diagram for chrono::ChSolverVI:
Collaboration diagram for chrono::ChSolverVI:

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...
 
- Public Member Functions inherited from chrono::ChSolver
virtual Type GetType () const
 Return type of the solver.
 
virtual bool SolveRequiresMatrix () const =0
 Indicate whether or not the Solve() phase requires an up-to-date problem matrix. More...
 
virtual double Solve (ChSystemDescriptor &sysd)=0
 Performs the solution of the problem. 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.
 
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.
 
- Protected Attributes inherited from chrono::ChSolver
bool verbose
 

The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono/solver/ChSolverVI.h