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

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

visitors hook

virtual void display() const

print the data to the screen

SimpleMatrix &H()

get H


a reference to the H matrix

virtual bool isVerified() const

check the ns law to see if it is verified


true if the NS Law is verified, false otherwise

SiconosVector &K()

get K


a reference to the K vector

Private Functions


default constructor


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