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 ChIterativeSolver * | AsIterative () | 
| Downcast to ChIterativeSolver. | |
| virtual ChDirectSolverLS * | AsDirect () | 
| 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. | |
|  Static Public Member Functions inherited from chrono::ChSolver | |
| static std::string | GetTypeAsString (Type type) | 
| Return the solver type as a string. | |
|  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
