|
MULTIBODY SIMULATION SOFTWARE - API documentation |
#include <CHlcpSimplexSolver.h>


Public Member Functions | |
| virtual double | Solve (ChLcpSystemDescriptor &sysd, bool add_Mq_to_f=false) |
| void | SetTruncationStep (int mstep) |
| void | SetNoTruncation () |
| double | GetTruncationStep () |
Protected Attributes | |
| int | truncation_step |
| ChSparseMatrix * | MC |
| ChMatrix * | X |
| ChMatrix * | B |
| ChUnilateralData * | unilaterals |
| M -Cq'|*|q|- | f|= |0| , c>=0, l>=0, l*c=0; | Cq 0 | |l| |-b| |c|
as arising in the solution of QP with inequalities or in multibody problems.
| double chrono::ChLcpSimplexSolver::Solve | ( | ChLcpSystemDescriptor & | sysd, | |
| bool | add_Mq_to_f = false | |||
| ) | [virtual] |
Performs the solution of the LCP, using the simplex method. If you must solve many LCP problems with the same amount of variables and constraints, we suggest you to use the same ChLcpSimplexSolver object, because it exploits coherency: avoids reallocating the sparse matrix each time.
| sysd | system description with constraints and variables |
| add_Mq_to_f | if true, takes the initial 'q' and adds [M]*q to 'f' vector |
Implements chrono::ChLcpSolver.
| void chrono::ChLcpSimplexSolver::SetTruncationStep | ( | int | mstep | ) |
Set truncation step (that is, the method stops anyway after this amount of pivots in simplex explorations, even if the solution isn't reached). NOTE!! This limits cases with exponential complexity explosion, but premature termination can give _meaningless_ results (differently from premature termination of iterative methods). For truncation step = 0 continue endlessly up to exact solution (default)
CHRONO::ENGINE