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()#
-
NormalConeNSL(unsigned size, SP::SimpleMatrix H, SP::SiconosVector K)