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 <Equality.hpp>

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

Parameters:

numericsSolverId – id of numerics solver, default = 0

Equality(SP::SolverOptions options)

constructor from a pre-defined solver options set.

Parameters:

options, the – options set,

see Nonsmooth problems formulations and available solvers for details.

inline ~Equality()

destructor

virtual void initialize(SP::Simulation sim)

initialize

Parameters:

sim – the simulation

virtual int compute(double time)

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

Parameters:

time – double : current time

Returns:

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

ACCEPT_SERIALIZATION(Equality)#