/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
48 BeamBuilder& SetSectionRefinement(size_t section_refinement);
49
56
65 double grid_location, const std::array<double, 3>& coordinates,
67 );
68
79 BeamBuilder& AddRefAxisTwist(double grid_location, double twist);
80
88
95 BeamBuilder& SetRootPosition(const std::array<double, 7>& p);
96
103 BeamBuilder& SetRootVelocity(const std::array<double, 6>& v);
104
111 BeamBuilder& SetRootAcceleration(const std::array<double, 6>& a);
112
118
127 double grid_location, const std::array<std::array<double, 6>, 6>& mass_matrix,
128 const std::array<std::array<double, 6>, 6>& stiffness_matrix,
130 );
131
136 [[nodiscard]] const BeamInput& Input() const;
137
143 [[nodiscard]] Beam Build(Model& model) const;
144
145private:
146 BeamInput input;
147};
148
149} // 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 & SetRootPosition(const std::array< double, 7 > &p)
Sets the position of this beam's root node.
Definition beam_builder.cpp:54
Beam Build(Model &model) const
Build a Blade object from the current configuration.
Definition beam_builder.cpp:98
BeamBuilder & PrescribedRootMotion(bool enable)
sets if this beam will have prescribed root motion or not
Definition beam_builder.cpp:49
BeamBuilder & ClearReferenceAxisPoints()
Deletes all currently set reference axis points.
Definition beam_builder.cpp:20
BeamBuilder & AddRefAxisTwist(double grid_location, double twist)
Adds a twist about the reference axis at a certain point.
Definition beam_builder.cpp:43
BeamBuilder & SetSectionRefinement(size_t section_refinement)
Sets the number of section refinements to perform.
Definition beam_builder.cpp:15
BeamBuilder & SetRootAcceleration(const std::array< double, 6 > &a)
Sets the acceleration of this beam's root node.
Definition beam_builder.cpp:64
BeamBuilder & SetRootVelocity(const std::array< double, 6 > &v)
Sets the velocity of this beam's root node.
Definition beam_builder.cpp:59
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:75
const BeamInput & Input() const
Get the current blade input configuration.
Definition beam_builder.cpp:94
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:26
BeamBuilder & ClearSections()
Deletes all sections that have been added to the BeamBuilder.
Definition beam_builder.cpp:69
BeamBuilder & SetElementOrder(size_t element_order)
Sets the prder of the beam elements.
Definition beam_builder.cpp:10
Represents a turbine blade with nodes, elements, and constraints.
Definition beam.hpp:24
Definition aerodynamics.cpp:3
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:84