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)