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.

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

where \(P\) is the polytopic 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.

Public Functions

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

constructor with the value of the NormalConeNSL attributes

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()
ACCEPT_STD_VISITORS()

visitors hook

virtual void display() const

print the data to the screen

SimpleMatrix &H()

get H

Return
a reference to the H matrix

virtual bool isVerified() const

check the ns law to see if it is verified

Return
true if the NS Law is verified, false otherwise

SiconosVector &K()

get K

Return
a reference to the K vector

Private Functions

NormalConeNSL()

default constructor

ACCEPT_SERIALIZATION(NormalConeNSL)

serialization hooks

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