File kernel/src/simulationTools/Equality.hpp

Go to the source code of this file

Linear Complementarity Problem formulation and solving.

class Equality : public LinearOSNS
#include <>

Formalization and Resolution of a Linear Complementarity Problem (Equality)

Aim of the Equality class

This class is devoted to the formalization and the resolution of the Linear system (Equality) defined by : \( 0 = w = q + M z \) where

  • \( w \in R^{n} \) and \(z \in R^{n} \) are the unknowns,

  • \( M \in R^{n \times n } \) and \(q \in R^{n} \)

The Equality main components are:

  • a problem (variables M,q and size of the problem), which directly corresponds to the LinearComplementarityProblem structure of Numerics

  • the unknowns z and w

Public Functions

Equality(int numericsSolverId = 0)

constructor from data


numericsSolverId – id of numerics solver, default = 0

Equality(SP::SolverOptions options)

constructor from a pre-defined solver options set.


options, the – options set,

see Nonsmooth problems formulations and available solvers for details.

inline ~Equality()


virtual void initialize(SP::Simulation sim)



sim – the simulation

virtual int compute(double time)

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


time – double : current time


int information about the solver convergence.

virtual void updateM()

Build or reinit M and the NumericsProblem.

virtual bool checkCompatibleNSLaw(NonSmoothLaw &nslaw)
virtual void display() const

print the data to the screen

Private Functions