Relations are used to link local variables of the Interaction and global variables of the DynamicalSystems, and thus define constraints in the systems.
Relation is an abstract class which provides a generic interface for all types of relations.
Each relation has a type which correspond to the types of dynamical systems they fit with (FirstOrder or Lagrangian), a sub-type, (linear, non linear, scleronomous…).
Usually, “type+subtype” corresponds more or less to the name of the derived class.
Then, depending on the sub-class, each relation holds some plug-in functions or operators used to define the constraints. They are listed below for each available type of relation.
First Order Relations¶
\(h\), \(g\) (and their jacobian according to \(X\) and \(\lambda\)) are defined with some plug-in functions. n
See the doxygen documentation of the class
FirstOrderR to have a list of the set/get/compute functions.
Note: for the signification of \(X\), \(Z\), \(R\) see Interactions between dynamical systems
Plug-in functions are available for all operators.
Lagrangian (second order) Relations¶
The constraints depend only on the state,
The constraints depend on time and state,
The constraints depends on state and \(\lambda\), with a function of time for which \(\dot\lambda(t)\) makes sense.
Linear and Time Invariant Coefficients¶
Lagrangian linear relations with time-invariant coefficients.
Relations plug-in functions¶
FirstOrderR: \(h(X,t,\lambda,Z), \ \ g(\lambda,t,Z)\)
FirstOrderLinearR: \(C(t,Z), \ \ F(t,Z), \ \ , D(t,Z), \ \ e(t,Z), B(t,Z)\)
LagrangianScleronomousR: \(h(Q,Z), \ \ G_0(Q,Z)\)
LagrangianRheonomousR: \(h(Q,t,Z), \ \ G_0(Q,t,Z), \ \ hdot(Q,t,Z)\)
LagrangianCompliantR: \(h(Q,\lambda,Z), \ \ G_0(Q,\lambda,Z), \ \ G_1(Q,\lambda,Z)\)