16 #ifndef SURGSIM_PHYSICS_LINEARSPRING_H 17 #define SURGSIM_PHYSICS_LINEARSPRING_H 64 double scale = 1.0)
override;
72 double scale = 1.0)
override;
80 double scale = 1.0)
override;
128 #endif // SURGSIM_PHYSICS_LINEARSPRING_H Definition: DriveElementFromInputBehavior.cpp:27
double m_damping
Damping parameters (in N.s.m-1)
Definition: LinearSpring.h:121
virtual void addStiffness(const SurgSim::Math::OdeState &state, SurgSim::Math::Matrix *K, double scale=1.0) override
Adds the spring stiffness matrix K (= -df/dx) (computed for a given state) to a complete system stiff...
Definition: LinearSpring.cpp:119
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dynamic size matrix.
Definition: Matrix.h:65
void setRestLength(double restLength)
Sets the rest length of the spring.
Definition: LinearSpring.cpp:61
virtual void addForce(const SurgSim::Math::OdeState &state, SurgSim::Math::Vector *F, double scale=1.0) override
Adds the spring force (computed for a given state) to a complete system force vector F (assembly) ...
Definition: LinearSpring.cpp:71
LinearSpring(size_t nodeId0, size_t nodeId1)
Constructor.
Definition: LinearSpring.cpp:34
OdeState defines the state y of an ode of 2nd order of the form M(x,v).a = F(x, v) with boundary cond...
Definition: OdeState.h:34
double m_stiffness
Stiffness parameters (in N.m-1)
Definition: LinearSpring.h:118
bool operator==(const Spring &spring) const
Comparison operator (equality)
Definition: LinearSpring.cpp:250
virtual void addDamping(const SurgSim::Math::OdeState &state, SurgSim::Math::Matrix *D, double scale=1.0) override
Adds the spring damping matrix D (= -df/dv) (computed for a given state) to a complete system damping...
Definition: LinearSpring.cpp:98
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
A dynamic size column vector.
Definition: Vector.h:67
Base class for all springs It handles the node ids to which it is connected and requires all derived ...
Definition: Spring.h:41
double getStiffness() const
Gets the spring stiffness parameter.
Definition: LinearSpring.cpp:46
double m_restLength
Rest length (in m)
Definition: LinearSpring.h:115
bool operator!=(const Spring &spring) const
Comparison operator (inequality)
Definition: LinearSpring.cpp:261
Linear spring connecting 2 nodes with a viscous term.
Definition: LinearSpring.h:28
double getDamping() const
Gets the spring damping parameter.
Definition: LinearSpring.cpp:56
void setStiffness(double stiffness)
Sets the spring stiffness parameter.
Definition: LinearSpring.cpp:41
virtual void addFDK(const SurgSim::Math::OdeState &state, SurgSim::Math::Vector *F, SurgSim::Math::Matrix *D, SurgSim::Math::Matrix *K) override
Adds the spring force vector, mass, stiffness and damping matrices (computed for a given state) into ...
Definition: LinearSpring.cpp:151
void setDamping(double damping)
Sets the spring damping parameter.
Definition: LinearSpring.cpp:51
double getRestLength() const
Gets the rest length of the spring.
Definition: LinearSpring.cpp:66
virtual void addMatVec(const SurgSim::Math::OdeState &state, double alphaD, double alphaK, const SurgSim::Math::Vector &vector, SurgSim::Math::Vector *F) override
Adds the spring matrix-vector contribution F += (alphaD.D + alphaK.K).x (computed for a given state) ...
Definition: LinearSpring.cpp:193