Class MLCP

Defined in Program listing for file kernel/src/simulationTools/MLCP.hpp

class MLCP : public LinearOSNS

Formalization and Resolution of a Mixed Linear Complementarity Problem (MLCP)

Subclassed by MLCPProjectOnConstraints

Public Functions

MLCP(int numericsSolverId = SICONOS_MLCP_ENUM)

constructor from data

Parameters
  • numericsSolverId: id of Numerics solver (optional, SICONOS_MLCP_ENUM the enumerative solver)

virtual ~MLCP()

destructor

ACCEPT_STD_VISITORS()

visitors hook

int compute(double time)

Compute the unknown z and w and update the Interaction (y and lambda )

Return
int, information about the solver convergence.
Parameters
  • time: current time

virtual void computeDiagonalInteractionBlock(const InteractionsGraph::VDescriptor &vd)

compute diagonal Interaction block

Parameters
  • vd: a vertex descriptor

virtual void computeInteractionBlock(const InteractionsGraph::EDescriptor &ed)

compute extra-diagonal interactionBlock-matrix

Parameters
  • ed: an edge descriptor

virtual void computeOptions(SP::Interaction inter1, SP::Interaction inter2)

compute equalities/inequalities sizes and set corresponding values in numerics problem

Parameters
  • inter1: Interaction used to get a non-smooth law and the constraints sizes.
  • inter2: another interaction, not used indeed (?)

virtual void display() const

print the data to the screen

int getn() const

get the number of equality constraints,

Return
int

SP::MixedLinearComplementarityProblem getNumericsMLCP()

get the pointer on the Numerics MLCP,

Return
SP::MixedLinearComplementarityProblem

void initialize(SP::Simulation sim)

initialize

Parameters

virtual bool preCompute(double time)

Pre compute.

Return
bool
Parameters
  • time: current time

virtual void reset()

Reninitialize numerics driver.

virtual void updateInteractionBlocks()

Update blocks used to compute M matrix.