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()¶