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, 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...
 
- Public Member Functions inherited from chrono::ChSolver
virtual Type GetType () const
 Return type of the solver.
 
virtual bool IsIterative () const =0
 Return true if iterative solver.
 
virtual bool IsDirect () const =0
 Return true if direct solver.
 
virtual ChIterativeSolverAsIterative ()
 Downcast to ChIterativeSolver.
 
virtual ChDirectSolverLSAsDirect ()
 Downcast to ChDirectSolver.
 
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.
 
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.
 
- 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 file:
  • /builds/uwsbel/chrono/src/chrono/solver/ChSolverVI.h