Class FirstOrderLinearR#
Defined in Program listing for file kernel/src/modelingTools/FirstOrderLinearR.hpp
-
class FirstOrderLinearR : public FirstOrderR#
First Order Linear Relation.
Linear Relation for First Order Dynamical Systems:
\[\begin{split} y &=& C(t,z)x(t) + F(t,z)z + D(t,z)\lambda + e(t,z) \\ R &=& B(t,z) \lambda \end{split}\]The following operators can be plugged: B(t,z), C(t,z), D(t,z), e(t,z), F(t,z)
Public Functions
-
inline FirstOrderLinearR()#
default constructor
-
FirstOrderLinearR(const std::string &Cname, const std::string &Bname)#
Constructor with C and B plugin names.
- Parameters:
Cname – the plugin name for computing the C matrix
Bname – the plugin name for computing the B matrix
-
FirstOrderLinearR(const std::string &Cname, const std::string &Dname, const std::string &Fname, const std::string &Ename, const std::string &Bname)#
Constructor with all plugin names.
- Parameters:
Cname – the plugin name for computing the C matrix
Dname – the plugin name for computing the D matrix
Fname – the plugin name for computing the F matrix
Ename – the plugin name for computing the e vector
Bname – the plugin name for computing the B matrix
-
FirstOrderLinearR(SP::SimpleMatrix C, SP::SimpleMatrix B)#
create the Relation from constant matrices (only B and C operators)
- Parameters:
C – the C matrix
B – the B matrix
-
FirstOrderLinearR(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 ~FirstOrderLinearR() noexcept = default#
destructor
-
inline void setComputeCFunction(const std::string &pluginPath, const std::string &functionName)#
set a specified function to compute the matrix C
- Parameters:
pluginPath – the complete path to the plugin
functionName – the function name to use in this plugin
-
inline void setComputeDFunction(const std::string &pluginPath, const std::string &functionName)#
set a specified function to compute the matrix D
- Parameters:
pluginPath – the complete path to the plugin
functionName – the function name to use in this plugin
-
inline void setComputeBFunction(const std::string &pluginPath, const std::string &functionName)#
set a specified function to compute the matrix B
- Parameters:
pluginPath – the complete path to the plugin
functionName – the function name to use in this plugin
-
virtual void computeC(double time, BlockVector &z, SimpleMatrix &C)#
Function to compute the matrix C.
- Parameters:
time – the current time
z – the auxiliary input vector
C – the C matrix
-
virtual void computeD(double time, BlockVector &z, SimpleMatrix &D)#
Function to compute the matrix D.
- Parameters:
time – the current time
z – the auxiliary input vector
D – the D matrix
-
virtual void computeF(double time, BlockVector &z, SimpleMatrix &F)#
Function to compute the matrix F.
- Parameters:
time – the current time
z – the auxiliary input vector
F – the F matrix
-
virtual void computee(double time, BlockVector &z, SiconosVector &e)#
Function to compute the vector e.
- Parameters:
time – the current time
z – the auxiliary input vector
e – the e vector
-
virtual void computeB(double time, BlockVector &z, SimpleMatrix &B)#
Function to compute the matrix B.
- Parameters:
time – the current time
z – the auxiliary input vector
B – the B matrix
-
virtual void computeh(double time, const BlockVector &x, const SiconosVector &lambda, BlockVector &z, SiconosVector &y)#
to compute the output y = h(t,x,…) of the Relation
- Parameters:
time – current time value
x – coordinates of the dynamical systems involved in the relation
lambda – interaction \(\lambda\) vector
z – user defined parameters (optional)
y – the resulting vector
-
virtual void computeg(double time, const SiconosVector &lambda, BlockVector &z, BlockVector &r)#
to compute the nonsmooth input r = g(t,x,…) of the Relation
- Parameters:
time – current time value
lambda – interaction \(\lambda\) vector
z – user defined parameters (optional)
r – the resulting vector
-
virtual void computeOutput(double time, Interaction &inter, unsigned int level = 0) override#
default function to compute y
- Parameters:
time – current time
inter – Interaction using this Relation
level – not used
-
virtual void computeInput(double time, Interaction &inter, unsigned int level = 0) override#
default function to compute r
- Parameters:
time – current time
inter – Interaction using this Relation
level – not used
-
virtual void display() const override#
print the data to the screen
-
inline virtual bool isLinear() override#
determines 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 –
-
inline FirstOrderLinearR()#