Beam Class Reference

Kynema API: kynema::interfaces::components::Beam Class Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
kynema::interfaces::components::Beam Class Reference

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< NodeDatanodes
 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]

kynema::interfaces::components::Beam::Beam ( )
default

◆ Beam() [2/2]

kynema::interfaces::components::Beam::Beam ( const BeamInput input,
Model model 
)

Construct a new Blade using the provided input and model.

Parameters
inputConfiguration for the blade
modelModel to which the blade elements and nodes will be added
Exceptions
std::invalid_argumentIf 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
sPosition [0,1] along the blade material axis
loadsForces and moments (Fx, Fy, Fz, Mx, My, Mz)
Exceptions
std::invalid_argumentIf 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_stateHost 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
sPosition [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_stateHost 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

constexpr size_t kynema::interfaces::components::Beam::invalid_id {9999999}
staticconstexpr

Placeholder node ID value for uninitialized components.

◆ kMaxGeometryPoints

constexpr size_t kynema::interfaces::components::Beam::kMaxGeometryPoints {10}
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:
  • /home/runner/work/kynema/kynema/kynema/src/interfaces/components/beam.hpp
  • /home/runner/work/kynema/kynema/kynema/src/interfaces/components/beam.cpp