File kernel/src/modelingTools/NormalConeNSL.hpp#

Go to the source code of this file

formalization of the NormalCone nonsmooth law

class NormalConeNSL : public NonSmoothLaw
#include <NormalConeNSL.hpp>

NormalCone NonSmoothLaw.

This class formalizes a nonsmooth law in the form of a normal cone inclusion i.e.

\[ 0 \in y + \mathcal{N}_{P}(\lambda), \]

where \( P \) is a polyhedral set. This is a generalization of the RelayNSL law, where the set \( P \) is a scaled box. Note that there exists an inverse of the previous relation in the form

\[ \lambda \in \partial \sigma_{P} (-y), \]

with \( \sigma_{P} \) the support function of \( P \) and \( \partial \sigma_{P} \) the subdifferential of this support function.

Note that the polyhedral set \( P \) is described as \( \{\lambda\mid H \lambda \geq K\} \), where \( H \) is a matrix and \( K \) a vector.

Public Functions

NormalConeNSL(unsigned size, SP::SimpleMatrix H, SP::SiconosVector K)

Constructor with the polyhedral representation of P as Hx >= K.

Parameters:
  • size – size of the NonSmoothLaw

  • H – matrix in the (H-K)-representation of the polytope P

  • K – vector in the (H-K)-representation of the polytope P

virtual ~NormalConeNSL()#
inline SimpleMatrix &H()

get H

Returns:

a reference to the H matrix

inline SiconosVector &K()

get K

Returns:

a reference to the K vector

virtual bool isVerified() const override

check the ns law to see if it is verified

Returns:

true if the NS Law is verified, false otherwise

virtual void display() const override

print the data to the screen

ACCEPT_STD_VISITORS()#

Private Functions

ACCEPT_SERIALIZATION(NormalConeNSL)#
NormalConeNSL()#

default constructor

Private Members

SP::SimpleMatrix _H#

matrix in the (H-K)-representation of the polytope

SP::SiconosVector _K#

vector in the (H-K)-representation of polytope