Connections / Contact / Joints
Module containing joint classes to connect multiple rods together.
Description
Available Connection/Contact/Joints
This free joint class is the base class for all joints. |
|
Assumes that the second entity is a rigid body for now, can be changed at a later time |
|
The fixed joint class restricts the relative movement and rotation between two nodes and elements by applying restoring forces and torques. |
|
This hinge joint class constrains the relative movement and rotation (only one axis defined by the user) between two nodes and elements (chosen by the user) by applying restoring forces and torques. |
|
This class is modeling self contact of rod. |
Compatibility
Connection / Contact / Joints |
Rod |
Rigid Body |
---|---|---|
FreeJoint |
✅ |
✅ |
ExternalContact |
✅ |
❌ |
FixedJoint |
✅ |
✅ |
HingeJoint |
✅ |
❌ |
SelfContact |
✅ |
❌ |
Built-in Connection / Contact / Joint
- class elastica.joint.FreeJoint(k, nu)[source]
This free joint class is the base class for all joints. Free or spherical joints constrains the relative movement between two nodes (chosen by the user) by applying restoring forces. For implementation details, refer to Zhang et al. Nature Communications (2019).
Notes
Every new joint class must be derived from the FreeJoint class.
- Attributes
- k: float
Stiffness coefficient of the joint.
- nu: float
Damping coefficient of the joint.
- class elastica.joint.ExternalContact(k, nu)[source]
Assumes that the second entity is a rigid body for now, can be changed at a later time
Most of the cylinder-cylinder contact SHOULD be implemented as given in this paper.
but, it isn’t (the elastica-cpp kernels are implented)! This is maybe to speed-up the kernel, but it’s potentially dangerous as it does not deal with “end” conditions correctly.
- class elastica.joint.FixedJoint(k, nu, kt)[source]
The fixed joint class restricts the relative movement and rotation between two nodes and elements by applying restoring forces and torques. For implementation details, refer to Zhang et al. Nature Communications (2019).
- Attributes
- k: float
Stiffness coefficient of the joint.
- nu: float
Damping coefficient of the joint.
- kt: float
Rotational stiffness coefficient of the joint.
- class elastica.joint.HingeJoint(k, nu, kt, normal_direction)[source]
This hinge joint class constrains the relative movement and rotation (only one axis defined by the user) between two nodes and elements (chosen by the user) by applying restoring forces and torques. For implementation details, refer to Zhang et. al. Nature Communications (2019).
- Attributes
- k: float
Stiffness coefficient of the joint.
- nu: float
Damping coefficient of the joint.
- kt: float
Rotational stiffness coefficient of the joint.
- normal_direction: numpy.ndarray
2D (dim, 1) array containing data with ‘float’ type. Constraint rotation direction.
- __init__(k, nu, kt, normal_direction)[source]
- Parameters
- k: float
Stiffness coefficient of the joint.
- nu: float
Damping coefficient of the joint.
- kt: float
Rotational stiffness coefficient of the joint.
- normal_direction: numpy.ndarray
2D (dim, 1) array containing data with ‘float’ type. Constraint rotation direction.