/home/runner/work/kynema/kynema/kynema/src/interfaces/components/beam_builder.hpp Source File

Kynema API: /home/runner/work/kynema/kynema/kynema/src/interfaces/components/beam_builder.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
beam_builder.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstdint>
4
5#include "beam_input.hpp"
6
7namespace kynema {
8class Model;
9}
10
12
13class Beam;
14
18enum class ReferenceAxisOrientation : std::uint8_t {
19 X, // X-axis
20 Z // Z-axis
21};
22
30public:
36 BeamBuilder& SetElementOrder(size_t element_order);
37
47
63
72 BeamBuilder& SetSectionRefinement(size_t section_refinement);
73
80
89 double grid_location, const std::array<double, 3>& coordinates,
91 );
92
103 BeamBuilder& AddRefAxisTwist(double grid_location, double twist);
104
111 BeamBuilder& PrescribedRootMotion(bool enable);
112
119 BeamBuilder& SetRootPosition(const std::array<double, 7>& p);
120
127 BeamBuilder& SetRootVelocity(const std::array<double, 6>& v);
128
135 BeamBuilder& SetRootAcceleration(const std::array<double, 6>& a);
136
142
151 double grid_location, const std::array<std::array<double, 6>, 6>& mass_matrix,
152 const std::array<std::array<double, 6>, 6>& stiffness_matrix,
154 );
155
160 [[nodiscard]] const BeamInput& Input() const;
161
167 [[nodiscard]] Beam Build(Model& model) const;
168
169private:
170 BeamInput input;
171};
172
173} // namespace kynema::interfaces::components
Struct to define the connectivity structure of elements, nodes, and constraints defining an Kynema pr...
Definition model.hpp:74
Builder class for creating Blade objects.
Definition beam_builder.hpp:29
BeamBuilder & SetQuadratureStyle(BeamInput::QuadratureStyle style)
Sets the Quadrature style to use for this beam.
Definition beam_builder.cpp:19
BeamBuilder & SetQuadratureRule(BeamInput::QuadratureRule rule)
Sets the Quadrature rule to use for this beam.
Definition beam_builder.cpp:14
BeamBuilder & SetRootPosition(const std::array< double, 7 > &p)
Sets the position of this beam's root node.
Definition beam_builder.cpp:66
Beam Build(Model &model) const
Build a Blade object from the current configuration.
Definition beam_builder.cpp:114
BeamBuilder & PrescribedRootMotion(bool enable)
sets if this beam will have prescribed root motion or not
Definition beam_builder.cpp:61
BeamBuilder & ClearReferenceAxisPoints()
Deletes all currently set reference axis points.
Definition beam_builder.cpp:29
BeamBuilder & AddRefAxisTwist(double grid_location, double twist)
Adds a twist about the reference axis at a certain point.
Definition beam_builder.cpp:55
BeamBuilder & SetSectionRefinement(size_t section_refinement)
Sets the number of section refinements to perform.
Definition beam_builder.cpp:24
BeamBuilder & SetRootAcceleration(const std::array< double, 6 > &a)
Sets the acceleration of this beam's root node.
Definition beam_builder.cpp:76
BeamBuilder & SetRootVelocity(const std::array< double, 6 > &v)
Sets the velocity of this beam's root node.
Definition beam_builder.cpp:71
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.
Definition beam_builder.cpp:87
const BeamInput & Input() const
Get the current blade input configuration.
Definition beam_builder.cpp:110
BeamBuilder & AddRefAxisPoint(double grid_location, const std::array< double, 3 > &coordinates, ReferenceAxisOrientation ref_axis)
Adds a reference axis point with specified orientation.
Definition beam_builder.cpp:35
BeamBuilder & ClearSections()
Deletes all sections that have been added to the BeamBuilder.
Definition beam_builder.cpp:81
BeamBuilder & SetElementOrder(size_t element_order)
Sets the prder of the beam elements.
Definition beam_builder.cpp:9
Represents a turbine blade with nodes, elements, and constraints.
Definition beam.hpp:24
Definition aerodynamics.cpp:5
ReferenceAxisOrientation
Enum to represent reference axis orientation.
Definition beam_builder.hpp:18
Definition calculate_constraint_output.hpp:8
Complete input specification for a beam.
Definition beam_input.hpp:85
QuadratureRule
Definition beam_input.hpp:86
QuadratureStyle
Definition beam_input.hpp:91