Beam Class Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
|
Represents a turbine blade with nodes, elements, and constraints. More...
#include <beam.hpp>
Public Types | |
using | DeviceType = Kokkos::Device< Kokkos::DefaultExecutionSpace, Kokkos::DefaultExecutionSpace::memory_space > |
Public Member Functions | |
Beam ()=default | |
Beam (const BeamInput &input, Model &model) | |
Construct a new Blade using the provided input and model. | |
std::vector< double > | GetNodeWeights (double s) const |
Returns a vector of weights for distributing a point load to the nodes. | |
void | AddPointLoad (double s, std::array< double, 6 > loads) |
Adds a point load (Fx, Fy, Fz, Mx, My, Mz) to the blade at location 's' [0, 1] along the material axis. | |
void | ClearLoads () |
Sets blade point loads to zero. | |
void | GetMotion (const HostState< DeviceType > &host_state) |
Populate node motion based on host state. | |
void | SetLoads (HostState< DeviceType > &host_state) const |
Update the host state with current node forces and moments. | |
Public Attributes | |
size_t | beam_element_id {invalid_id} |
Beam element ID. | |
std::vector< NodeData > | nodes |
Blade node data. | |
size_t | prescribed_root_constraint_id {invalid_id} |
Constraint ID of prescribed root displacement. | |
std::vector< double > | node_xi |
Location of nodes in blade element [-1, 1]. | |
Static Public Attributes | |
static constexpr size_t | invalid_id {9999999} |
Placeholder node ID value for uninitialized components. | |
static constexpr size_t | kMaxGeometryPoints {10} |
Maximum number of points allowed in blade geometry definition. | |
Detailed Description
Represents a turbine blade with nodes, elements, and constraints.
This class is responsible for creating and managing a blade based on input specifications. It handles the creation of nodes, beam elements, and constraints within the provided model.
Member Typedef Documentation
◆ DeviceType
using kynema::interfaces::components::Beam::DeviceType = Kokkos::Device<Kokkos::DefaultExecutionSpace, Kokkos::DefaultExecutionSpace::memory_space> |
Constructor & Destructor Documentation
◆ Beam() [1/2]
|
default |
◆ Beam() [2/2]
Construct a new Blade using the provided input and model.
- Parameters
-
input Configuration for the blade model Model to which the blade elements and nodes will be added
- Exceptions
-
std::invalid_argument If the input configuration is invalid
Member Function Documentation
◆ AddPointLoad()
void kynema::interfaces::components::Beam::AddPointLoad | ( | double | s, |
std::array< double, 6 > | loads | ||
) |
Adds a point load (Fx, Fy, Fz, Mx, My, Mz) to the blade at location 's' [0, 1] along the material axis.
- Parameters
-
s Position [0,1] along the blade material axis loads Forces and moments (Fx, Fy, Fz, Mx, My, Mz)
- Exceptions
-
std::invalid_argument If position is outside valid range
◆ ClearLoads()
void kynema::interfaces::components::Beam::ClearLoads | ( | ) |
Sets blade point loads to zero.
◆ GetMotion()
void kynema::interfaces::components::Beam::GetMotion | ( | const HostState< DeviceType > & | host_state | ) |
Populate node motion based on host state.
- Parameters
-
host_state Host state containing position, displacement, velocity, and acceleration
◆ GetNodeWeights()
std::vector< double > kynema::interfaces::components::Beam::GetNodeWeights | ( | double | s | ) | const |
Returns a vector of weights for distributing a point load to the nodes.
- Parameters
-
s Position [0,1] along the blade
- Returns
- Vector of weights for each node
◆ SetLoads()
void kynema::interfaces::components::Beam::SetLoads | ( | HostState< DeviceType > & | host_state | ) | const |
Update the host state with current node forces and moments.
- Parameters
-
host_state Host state to update
Member Data Documentation
◆ beam_element_id
size_t kynema::interfaces::components::Beam::beam_element_id {invalid_id} |
Beam element ID.
◆ invalid_id
|
staticconstexpr |
Placeholder node ID value for uninitialized components.
◆ kMaxGeometryPoints
|
staticconstexpr |
Maximum number of points allowed in blade geometry definition.
◆ node_xi
std::vector<double> kynema::interfaces::components::Beam::node_xi |
Location of nodes in blade element [-1, 1].
◆ nodes
std::vector<NodeData> kynema::interfaces::components::Beam::nodes |
Blade node data.
◆ prescribed_root_constraint_id
size_t kynema::interfaces::components::Beam::prescribed_root_constraint_id {invalid_id} |
Constraint ID of prescribed root displacement.
The documentation for this class was generated from the following files:
Generated by