BeamBuilder Class Reference

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

Builder class for creating Blade objects. More...

#include <beam_builder.hpp>

Public Member Functions

BeamBuilderSetElementOrder (size_t element_order)
 Sets the prder of the beam elements.
 
BeamBuilderSetSectionRefinement (size_t section_refinement)
 Sets the number of section refinements to perform.
 
BeamBuilderClearReferenceAxisPoints ()
 Deletes all currently set reference axis points.
 
BeamBuilderAddRefAxisPoint (double grid_location, const std::array< double, 3 > &coordinates, ReferenceAxisOrientation ref_axis)
 Adds a reference axis point with specified orientation.
 
BeamBuilderAddRefAxisTwist (double grid_location, double twist)
 Adds a twist about the reference axis at a certain point.
 
BeamBuilderPrescribedRootMotion (bool enable)
 sets if this beam will have prescribed root motion or not
 
BeamBuilderSetRootPosition (const std::array< double, 7 > &p)
 Sets the position of this beam's root node.
 
BeamBuilderSetRootVelocity (const std::array< double, 6 > &v)
 Sets the velocity of this beam's root node.
 
BeamBuilderSetRootAcceleration (const std::array< double, 6 > &a)
 Sets the acceleration of this beam's root node.
 
BeamBuilderClearSections ()
 Deletes all sections that have been added to the BeamBuilder.
 
BeamBuilderAddSection (double grid_location, const std::array< std::array< double, 6 >, 6 > &mass_matrix, const std::array< std::array< double, 6 >, 6 > &stiffness_matrix, ReferenceAxisOrientation ref_axis)
 Adds sectional location, mass matrix, and stiffness matrix. Can handle reference axis along X or Z.
 
const BeamInputInput () const
 Get the current blade input configuration.
 
Beam Build (Model &model) const
 Build a Blade object from the current configuration.
 

Detailed Description

Builder class for creating Blade objects.

Each of the methods for setting options returns a reference to this BeamBuilder object to allow chaining calls together in a single statement.

Member Function Documentation

◆ AddRefAxisPoint()

BeamBuilder & kynema::interfaces::components::BeamBuilder::AddRefAxisPoint ( double  grid_location,
const std::array< double, 3 > &  coordinates,
ReferenceAxisOrientation  ref_axis 
)

Adds a reference axis point with specified orientation.

Parameters
grid_locationLocation [0,1] along the blade
coordinatesCoordinates (x,y,z) of the reference axis point
ref_axisReference axis orientation ('X' or 'Z')
Returns
Reference to this builder for method chaining

◆ AddRefAxisTwist()

BeamBuilder & kynema::interfaces::components::BeamBuilder::AddRefAxisTwist ( double  grid_location,
double  twist 
)

Adds a twist about the reference axis at a certain point.

This value will be linearly interpolated to the required locations along the actual beam element

Parameters
grid_locationThe location where the twist is specified
twistThe twist about the reference axis in degrees
Returns
A reference to this BeamBuilder

◆ AddSection()

BeamBuilder & kynema::interfaces::components::BeamBuilder::AddSection ( double  grid_location,
const std::array< std::array< double, 6 >, 6 > &  mass_matrix,
const std::array< std::array< double, 6 >, 6 > &  stiffness_matrix,
ReferenceAxisOrientation  ref_axis 
)

Adds sectional location, mass matrix, and stiffness matrix. Can handle reference axis along X or Z.

Parameters
grid_locationsection location [0,1] along blade
mass_matrixsectional mass matrix
stiffness_matrixsectional stiffness matrix
ref_axisReference axis ('X' or 'Z')
Returns
Reference to this builder for method chaining

◆ Build()

Beam kynema::interfaces::components::BeamBuilder::Build ( Model model) const

Build a Blade object from the current configuration.

Parameters
modelThe model to associate with this blade
Returns
A new Blade object

◆ ClearReferenceAxisPoints()

BeamBuilder & kynema::interfaces::components::BeamBuilder::ClearReferenceAxisPoints ( )

Deletes all currently set reference axis points.

Returns
A reference to this BeamBuilder

◆ ClearSections()

BeamBuilder & kynema::interfaces::components::BeamBuilder::ClearSections ( )

Deletes all sections that have been added to the BeamBuilder.

Returns
A reference to this BeamBuilder

◆ Input()

const BeamInput & kynema::interfaces::components::BeamBuilder::Input ( ) const

Get the current blade input configuration.

Returns
Reference to the current blade input

◆ PrescribedRootMotion()

BeamBuilder & kynema::interfaces::components::BeamBuilder::PrescribedRootMotion ( bool  enable)

sets if this beam will have prescribed root motion or not

Parameters
enableIf prescirbed root motion is enabled
Returns
A reference to this BeamBuilder

◆ SetElementOrder()

BeamBuilder & kynema::interfaces::components::BeamBuilder::SetElementOrder ( size_t  element_order)

Sets the prder of the beam elements.

Returns
A reference to this BeamBuilder

◆ SetRootAcceleration()

BeamBuilder & kynema::interfaces::components::BeamBuilder::SetRootAcceleration ( const std::array< double, 6 > &  a)

Sets the acceleration of this beam's root node.

Parameters
aThe root node acceleration/angular acceleration
Returns
A reference to this BeamBuilder

◆ SetRootPosition()

BeamBuilder & kynema::interfaces::components::BeamBuilder::SetRootPosition ( const std::array< double, 7 > &  p)

Sets the position of this beam's root node.

Parameters
pThe root node position/orientation as a quaternion
Returns
A reference to this BeamBuilder

◆ SetRootVelocity()

BeamBuilder & kynema::interfaces::components::BeamBuilder::SetRootVelocity ( const std::array< double, 6 > &  v)

Sets the velocity of this beam's root node.

Parameters
vThe root node velocity/angular velcoity
Returns
A reference to this BeamBuilder

◆ SetSectionRefinement()

BeamBuilder & kynema::interfaces::components::BeamBuilder::SetSectionRefinement ( size_t  section_refinement)

Sets the number of section refinements to perform.

This adds additional quadrature points between the supplied sections and sets their physical properties using linear interpolation. This is used to achieve sufficiently accurate quadrature for high order elements even when the physical properties have a relatively simple distribution.

Returns
A reference to this BeamBuilder

The documentation for this class was generated from the following files:
  • /home/runner/work/kynema/kynema/kynema/src/interfaces/components/beam_builder.hpp
  • /home/runner/work/kynema/kynema/kynema/src/interfaces/components/beam_builder.cpp