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

Kynema API: /home/runner/work/kynema/kynema/kynema/src/interfaces/components/beam_input.hpp Source File
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
beam_input.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <array>
4#include <cstdint>
5#include <stdexcept>
6#include <vector>
7
9
17 std::vector<double> coordinate_grid;
18
20 std::vector<std::array<double, 3>> coordinates;
21
23 std::vector<double> twist_grid;
24
26 std::vector<double> twist;
27};
28
34struct Section {
36 double location;
37
39 std::array<std::array<double, 6>, 6> mass_matrix;
40
42 std::array<std::array<double, 6>, 6> stiffness_matrix;
43
51 double loc, std::array<std::array<double, 6>, 6> m, std::array<std::array<double, 6>, 6> k
52 )
54 // Check that the section location is in range [0,1]
55 if (loc < 0. || loc > 1.) {
56 throw std::invalid_argument("Section location must be in range [0, 1]");
57 }
58 }
59};
60
66struct Root {
69
71 std::array<double, 7> position{0., 0., 0., 1., 0., 0., 0.};
72
74 std::array<double, 6> velocity{0., 0., 0., 0., 0., 0.};
75
77 std::array<double, 6> acceleration{0., 0., 0., 0., 0., 0.};
78};
79
117
118} // namespace kynema::interfaces::components
Definition aerodynamics.cpp:5
Complete input specification for a beam.
Definition beam_input.hpp:85
QuadratureRule
Definition beam_input.hpp:86
QuadratureStyle quadrature_style
Quadrature stype.
Definition beam_input.hpp:103
size_t section_refinement
Quadrature point refinement.
Definition beam_input.hpp:106
std::vector< Section > sections
Section properties.
Definition beam_input.hpp:115
Root root
Blade root.
Definition beam_input.hpp:112
QuadratureRule quadrature_rule
Quadrature Rule.
Definition beam_input.hpp:100
size_t element_order
Spectral element order (num nodes - 1)
Definition beam_input.hpp:97
QuadratureStyle
Definition beam_input.hpp:91
ReferenceAxis ref_axis
Structural reference axis data.
Definition beam_input.hpp:109
Reference axis definition for a beam.
Definition beam_input.hpp:15
std::vector< std::array< double, 3 > > coordinates
X,Y,Z coordinates of reference axis points.
Definition beam_input.hpp:20
std::vector< double > twist
Structural twist values (in radians)
Definition beam_input.hpp:26
std::vector< double > coordinate_grid
Normalized coordinate locations [0, 1] along the beam.
Definition beam_input.hpp:17
std::vector< double > twist_grid
Normalized twist locations [0, 1] along the beam.
Definition beam_input.hpp:23
Root definition for a turbine beam.
Definition beam_input.hpp:66
std::array< double, 6 > velocity
Initial translation/rotational velocity [vx, vy, vz, wx, wy, wz].
Definition beam_input.hpp:74
std::array< double, 7 > position
Inital position/orientation [x, y, z, qw, qx, qy, qz].
Definition beam_input.hpp:71
bool prescribe_root_motion
Flag to use root motion as an input to the model.
Definition beam_input.hpp:68
std::array< double, 6 > acceleration
Initial translation/rotational acceleration [ax, ay, az, αx, αy, αz].
Definition beam_input.hpp:77
Sectional structural properties of the beam.
Definition beam_input.hpp:34
Section(double loc, std::array< std::array< double, 6 >, 6 > m, std::array< std::array< double, 6 >, 6 > k)
Construct a new Section.
Definition beam_input.hpp:50
std::array< std::array< double, 6 >, 6 > stiffness_matrix
Stiffness matrix (6x6) at the section.
Definition beam_input.hpp:42
double location
Normalized section location [0, 1] along the beam.
Definition beam_input.hpp:36
std::array< std::array< double, 6 >, 6 > mass_matrix
Mass matrix (6x6) at the section.
Definition beam_input.hpp:39