# 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