Class NormalConeNSL#

Defined in Program listing for file kernel/src/modelingTools/NormalConeNSL.hpp

class NormalConeNSL : public NonSmoothLaw#

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

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