Class MLCPProjectOnConstraints#

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

class MLCPProjectOnConstraints : public MLCP#

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

This class is devoted to the formalization and the resolution of the Mixed Linear Complementarity Problem (MLCP) for the specific problem of the projection onto the constraints in Mechanics

Public Functions

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

compute the number of inequality and equality for a given tuple of Interactions update the global number of equality(_n) and inequality (_m) set up _numerics_problem parameters (blocksRows and blocksIsComp )

Parameters:
  • inter1 – first interaction considered

  • inter2 – second interaction

MLCPProjectOnConstraints(int numericsSolverId = SICONOS_MLCP_ENUM, double alpha = 1.0)#

constructor from data

Parameters:
  • numericsSolverId – solver id

  • alpha – alpha parameter value

MLCPProjectOnConstraints(SP::SolverOptions options, double alpha = 1.0)#

constructor from a pre-defined solver options set.

Parameters:
  • options – the options set,

  • alpha – alpha parameter value

inline ~MLCPProjectOnConstraints()#

destructor

inline double alpha()#
Returns:

alpha value

inline void setAlpha(double newval)#

setter for alpha

Parameters:

newval[in] new value for alpha parameter

virtual void displayBlocks(SP::InteractionsGraph indexSet) override#

Display the set of blocks for a given indexSet.

Parameters:

indexSet – the graph of interactions

virtual void display() const override#

print the data to the screen

virtual void initOSNSMatrix() override#

initialize the _M matrix

virtual void updateInteractionBlocks() override#

compute interactionBlocks if necessary (this depends on the type of OSNS, on the indexSets …)

virtual void updateInteractionBlocksOLD()#

compute interactionBlocks if necessary (this depends on the type of OSNS, on the indexSets …)

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

compute diagonal Interaction block

Parameters:

vd – a vertex (interaction) descriptor

virtual void computeInteractionBlock(const InteractionsGraph::EDescriptor &vd) override#

compute diagonal Interaction block

Parameters:

vd – a vertex (interaction) descriptor

virtual void computeqBlock(InteractionsGraph::VDescriptor &vd, unsigned int pos) override#

To compute a part of the “q” vector of the OSNS.

Parameters:
  • vd – vertex (interaction) which corresponds to the considered block

  • pos – the position of the first element of yOut to be set

virtual void computeq(double time) override#

compute vector q

Parameters:

time – the current time

virtual void postCompute() override#

post-treatment for MLCPProjectOnConstraints

virtual void postComputeLagrangianR(SP::Interaction inter, unsigned int pos)#

post-treatment for MLCPProjectOnConstraints for LagrangianR

Parameters:
  • inter – the considered interaction

  • pos – interaction position in the global vector

virtual void postComputeNewtonEulerR(SP::Interaction inter, unsigned int pos)#

post-treatment for MLCPProjectOnConstraints for NewtonEulerR

Parameters:
  • inter – the considered interaction

  • pos – interaction position in the global vector