|
| | 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 (std::span< const double, 3 > displacement) |
| | Translate node by a displacement vector.
|
| |
| Node & | RotateAboutPoint (std::span< const double, 4 > q, std::span< const double, 3 > point) |
| | Rotate node by a quaternion about the given point.
|
| |
| Node & | TranslateDisplacement (std::span< const double, 3 > displacement) |
| | Add translational displacement to node displacement vector.
|
| |
| Node & | RotateDisplacementAboutPoint (std::span< const double, 4 > q, std::span< const double, 3 > point) |
| | Rotate node displacement by a quaternion about the given point.
|
| |
| void | SetVelocityAboutPoint (std::span< const double, 6 > velocity, std::span< const double, 3 > point) |
| | Set node velocity based on rigid body motion about a reference point.
|
| |
| void | SetAccelerationAboutPoint (std::span< const double, 6 > acceleration, std::span< const double, 3 > omega, std::span< const 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.