File kernel/src/modelingTools/NewtonImpactNSL.hpp

Go to the source code of this file

class NewtonImpactNSL : public NonSmoothLaw
#include <NewtonImpactNSL.hpp>

Newton impact Non Smooth Law.

This class formalizes the Newton Impact law together with a complementarity condition. i.e.

\left\{\begin{array}{l} y \geq 0, \lambda \geq 0, y^{T} \lambda=0\\ if y \leq 0 \quad \mbox{then} \quad \dot y(t^{+}) - e \dot y(t^{-}) \geq 0, \quad \lambda \geq 0, (\dot y(t^{+}) - e \dot y(t^{-}))^{T} \lambda=0 \end{array}\right.

nsLawSize is equal to 1.

Public Functions

NewtonImpactNSL()

default constructor

NewtonImpactNSL(double e)

constructor with the value of the NewtonImpactNSL attributes

Parameters
  • e: the value of the coefficient of restitution

NewtonImpactNSL(unsigned int size, double e)

Apply multiple-axis impact.

~NewtonImpactNSL()

destructor

ACCEPT_STD_VISITORS()

Visitors hook.

void display() const

print the data to the screen

double e() const

getter of e

Return
the value of e

bool isVerified() const

check the ns law to see if it is verified

Return
a boolean value whioch determines if the NS Law is verified

void setE(double newVal)

setter of e

Parameters
  • newVal: a double to set e

Private Functions

ACCEPT_SERIALIZATION(NewtonImpactNSL)

serialization hooks

Private Members

double _e

The Newton normal coefficient of restitution.