|
| Node (size_t node_id) |
| Construct a node with an ID.
|
|
| Node (size_t node_id, std::array< double, 7 > position, std::array< double, 7 > displacement=std::array< double, 7 >{0., 0., 0., 1., 0., 0., 0.}, std::array< double, 6 > velocity=std::array< double, 6 >{0., 0., 0., 0., 0., 0.}, std::array< double, 6 > acceleration=std::array< double, 6 >{0., 0., 0., 0., 0., 0.}) |
| Construct a node with an ID, position, displacement, velocity, and acceleration vectors.
|
|
std::array< double, 7 > | DisplacedPosition () const |
|
Node & | Translate (const std::array< double, 3 > &displacement) |
| Translate node by a displacement vector.
|
|
Node & | RotateAboutPoint (const std::array< double, 4 > &q, const std::array< double, 3 > &point) |
| Rotate node by a quaternion about the given point.
|
|
Node & | RotateAboutPoint (const std::array< double, 3 > &rv, const std::array< double, 3 > &point) |
| Rotate node by a rotation vector about the given point.
|
|
Node & | TranslateDisplacement (const std::array< double, 3 > &displacement) |
| Add translational displacement to node displacement vector.
|
|
Node & | RotateDisplacementAboutPoint (const std::array< double, 4 > &q, const std::array< double, 3 > &point) |
| Rotate node displacement by a quaternion about the given point.
|
|
Node & | RotateDisplacementAboutPoint (const std::array< double, 3 > &rv, const std::array< double, 3 > &point) |
| Rotate node displacement by a rotation vector about the given point.
|
|
void | SetVelocityAboutPoint (const std::array< double, 6 > &velocity, const std::array< double, 3 > &point) |
| Set node velocity based on rigid body motion about a reference point.
|
|
void | SetAccelerationAboutPoint (const std::array< double, 6 > &acceleration, const std::array< double, 3 > &omega, const std::array< double, 3 > &point) |
| Set node acceleration based on rigid body motion about a reference point.
|
|
Represents a node in the finite element model.
A node is a point in 3D space that can have position, orientation, displacement, velocity, and acceleration. Nodes are the fundamental building blocks that connect elements in the structural model. Each node has:
- Unique identifier (id) -> used to reference the node in elements and constraints
- Initial position and orientation (x0) -> 7 x 1 vector
- Displacement from initial position (u) -> 7 x 1 vector
- Velocity (v) -> 6 x 1 vector
- Acceleration (vd) -> 6 x 1 vector
- Parametric position within an element (s) -> scalar
The position and displacement vectors contain 7 components: [x, y, z, qw, qx, qy, qz] where the first 3 are translational and the last 4 represent orientation as a quaternion.
The velocity and acceleration vectors contain 6 components: [vx, vy, vz, wx, wy, wz] where the first 3 are translational and the last 3 are rotational components.