File kernel/src/modelingTools/FirstOrderLinearTIR.hpp#

Go to the source code of this file

class FirstOrderLinearTIR : public FirstOrderR
#include <FirstOrderLinearTIR.hpp>

Linear Time Invariant Relation, derived from class FirstOrderR.

Linear Relation for First Order Dynamical Systems with time-independant operators

\[\begin{split} y &=& Cx(t) + Fz + D\lambda + e \\ R &=& B\lambda \end{split}\]

Public Functions

FirstOrderLinearTIR(SP::SimpleMatrix C, SP::SimpleMatrix B)

create the Relation from a set of data

Parameters:
  • C – the matrix C

  • B – the matrix B

FirstOrderLinearTIR(SP::SimpleMatrix C, SP::SimpleMatrix D, SP::SimpleMatrix F, SP::SiconosVector e, SP::SimpleMatrix B)

create the Relation from a set of data

Parameters:
  • C – the C matrix

  • D – the D matrix

  • F – the F matrix

  • e – the e matrix

  • B – the B matrix

virtual ~FirstOrderLinearTIR() noexcept = default

destructor

void computeh(const BlockVector &x, const SiconosVector &lambda, BlockVector &z, SiconosVector &y)

default function to compute h = y = Cx(t) + Fz + Dlambda + e

Parameters:
  • x

  • lambda

  • z

  • y – the resulting vector

void computeg(const SiconosVector &lambda, BlockVector &r)

default function to compute g = Blambda

Parameters:
  • lambda

  • r – non-smooth input

virtual void computeOutput(double time, Interaction &inter, unsigned int level = 0) override

default function to compute y

Parameters:
virtual void computeInput(double time, Interaction &inter, unsigned int level = 0) override

default function to compute r

Parameters:
virtual void display() const override

print the data to the screen

inline void setePtr(SP::SiconosVector newe)

set e

Parameters:

newe – the new value of e

inline SP::SiconosVector e() const

get e

Returns:

e matrix

inline virtual bool isLinear() override

determine if the Relation is linear

Returns:

true if the relation is linear.

inline virtual void computeJach(double time, Interaction &inter) override

compute all the H Jacobian

Parameters:
  • time – the current time

  • inter – the interaction using this relation

inline virtual void computeJacg(double time, Interaction &inter) override

compute all the G Jacobian

Parameters:
  • time – the current time

  • inter – the interaction using this relation

  • interProp

ACCEPT_STD_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(FirstOrderLinearTIR)#
virtual void initialize(Interaction &inter) override#

initialize the relation (check sizes, memory allocation …)

Parameters:

inter – the interaction that owns this relation

virtual void checkSize(Interaction &inter) override#

check sizes of the relation specific operators.

Parameters:

inter – an Interaction using this relation

Protected Attributes

SP::SiconosVector _e = {nullptr}#

e operator (constant vector)