/home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/actuator/sector/ActuatorSector.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/actuator/sector/ActuatorSector.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
ActuatorSector.H
Go to the documentation of this file.
1#ifndef ACTUATORSECTOR_H
2#define ACTUATORSECTOR_H
3
8
9#include <memory>
10#include <string>
11
12#include "AMReX_REAL.H"
13
14using namespace amrex::literals;
15
16namespace kynema_sgf::actuator {
17
29// Fields are grouped by purpose instead of minimizing structure padding.
30// NOLINTNEXTLINE(clang-analyzer-optin.performance.Padding)
32{
34 std::shared_ptr<motion::RigidBodyMotion> body_motion;
35
37 std::shared_ptr<motion::RotorMotion> rotor_motion;
38
41
44
46 int num_blades{2};
47
49 amrex::Real rotor_diameter{1.0_rt};
50
52 amrex::Real rotor_radius{0.5_rt};
53
55 amrex::Real root_radius_fraction{0.18_rt};
56
58 amrex::Real root_radius{0.09_rt};
59
61 amrex::Real omega{0.0_rt};
62 bool user_omega{false};
63
65 vs::Vector center0{0.0_rt, 0.0_rt, 0.0_rt};
66
68 vs::Vector center{0.0_rt, 0.0_rt, 0.0_rt};
69
71 vs::Vector translation_velocity{0.0_rt, 0.0_rt, 0.0_rt};
72
74 vs::Vector rotor_normal{1.0_rt, 0.0_rt, 0.0_rt};
75
78
80 vs::Vector rotor_angular_velocity{0.0_rt, 0.0_rt, 0.0_rt};
81
84
86 amrex::Real azimuth{0.0_rt};
87
89 amrex::Real delta_azimuth{0.0_rt};
90
92 RealList span_locs{0.0_rt, 1.0_rt};
93
95 RealList chord_inp{1.0_rt, 1.0_rt};
96
98 RealList twist_inp{0.0_rt, 0.0_rt};
99
101 std::string airfoil_file;
102
104 std::string airfoil_type{"openfast"};
105
107 std::unique_ptr<AirfoilTable> aflookup;
108
110 amrex::Real epsilon{0.0_rt};
111
113 bool user_epsilon{false};
114
116 amrex::Real epsilon_chord{0.0_rt};
117
119 amrex::Real epsilon_min{0.0_rt};
120
122 amrex::Real epsilon_dr{1.5_rt};
123
125 amrex::Real epsilon_dl{1.5_rt};
126
128 amrex::Real min_chord_dr{2.0_rt};
129
131 amrex::Real support_radius_over_epsilon{3.0_rt};
132
134 std::string radial_quadrature{"midpoint"};
135
137 std::string swept_quadrature{"midpoint"};
138
140 std::string gaussian_type{"direct"};
141
143 amrex::Real gaussian_table_error{1.0e-4_rt};
144
147
150
153
156
159
162
165
167 amrex::Vector<int> theta_counts;
168
171
175
179
183
186
189
192
194 amrex::Real thrust{0.0_rt};
195
197 amrex::Real torque{0.0_rt};
198
201 vs::Vector integrated_force{0.0_rt, 0.0_rt, 0.0_rt};
202
205 vs::Vector integrated_moment{0.0_rt, 0.0_rt, 0.0_rt};
206};
207
209{
214
215 static std::string identifier() { return "Actuator"; }
216};
217
218} // namespace kynema_sgf::actuator
219
220#endif /* ACTUATORSECTOR_H */
Definition actuator_types.H:215
Definition ActParser.H:6
amrex::Vector< amrex::Real > RealList
Definition actuator_types.H:91
amrex::Vector< kynema_sgf::vs::Vector > VecList
Definition actuator_types.H:93
VectorT< amrex::Real > Vector
Definition vector.H:145
Definition actuator_types.H:105
Definition actuator_types.H:175
Definition ActuatorSector.H:32
amrex::Real root_radius_fraction
Inboard cutoff as a fraction of rotor radius [-].
Definition ActuatorSector.H:55
bool user_rotor_angular_velocity
True when rotor_angular_velocity was explicitly supplied by the user.
Definition ActuatorSector.H:83
vs::Vector rotor_rotation_degrees_per_revolution
Rotor-frame rotation rate specified per blade revolution [deg/rev].
Definition ActuatorSector.H:77
vs::Vector body_offset
Hub offset from the rigid-body center in body coordinates [m].
Definition ActuatorSector.H:43
amrex::Real root_radius
Inboard cutoff radius [m].
Definition ActuatorSector.H:58
RealList span_locs
Non-dimensional locations for chord/twist interpolation [-].
Definition ActuatorSector.H:92
VecList blade_force
Force on fluid at midpoint blade stations in fixed-frame coordinates before multiplication by radial ...
Definition ActuatorSector.H:174
int rotor_index
Rotor index within rotor_motion.
Definition ActuatorSector.H:40
RealList epsilon_profile
Local Gaussian width at radial stations [m].
Definition ActuatorSector.H:164
std::shared_ptr< motion::RotorMotion > rotor_motion
Prescribed rotor-speed motion shared with an owning Drone when present.
Definition ActuatorSector.H:37
RealList twist
Local twist at radial stations [deg].
Definition ActuatorSector.H:161
int num_blades
Number of rotor blades [-].
Definition ActuatorSector.H:46
int gaussian_table_nintervals
Number of interpolation intervals in the Gaussian table [-].
Definition ActuatorSector.H:146
amrex::Real epsilon_chord
Gaussian width divided by local chord [-].
Definition ActuatorSector.H:116
RealList cl
Lift coefficient at midpoint blade stations [-].
Definition ActuatorSector.H:188
bool user_epsilon
True when epsilon was explicitly supplied by the user.
Definition ActuatorSector.H:113
amrex::Real epsilon_dl
Required swept arc length resolution, epsilon / dl >= epsilon_dl [-].
Definition ActuatorSector.H:125
vs::Vector integrated_moment
Integrated density-normalized moment applied to the fluid about the rotor hub [m^5/s^2].
Definition ActuatorSector.H:205
std::string airfoil_file
Airfoil table filename.
Definition ActuatorSector.H:101
RealList chord_inp
Input chord distribution at span_locs [m].
Definition ActuatorSector.H:95
RealList twist_inp
Input twist distribution at span_locs [deg].
Definition ActuatorSector.H:98
vs::Vector translation_velocity
Constant drone/body translation velocity in the CFD frame [m/s].
Definition ActuatorSector.H:71
amrex::Real min_chord_dr
Required local chord resolution, chord / dr >= min_chord_dr [-].
Definition ActuatorSector.H:128
RealList chord
Local chord at radial stations [m].
Definition ActuatorSector.H:158
RealList aoa
Angle of attack at midpoint blade stations [deg].
Definition ActuatorSector.H:185
std::string radial_quadrature
Span quadrature rule. Initial implementation supports midpoint.
Definition ActuatorSector.H:134
RealList blade_force_theta
Force on fluid along local tangential direction at blade stations before multiplication by radial qua...
Definition ActuatorSector.H:178
VecList vel_rel
Relative velocity in the local blade-section plane [m/s].
Definition ActuatorSector.H:170
amrex::Real delta_azimuth
Blade azimuth swept over the current timestep [rad].
Definition ActuatorSector.H:89
bool user_omega
Definition ActuatorSector.H:62
RealList blade_force_normal
Force on fluid along local rotor normal at blade stations before multiplication by radial quadrature ...
Definition ActuatorSector.H:182
amrex::Real thrust
Integrated force component along the rotor normal [m^4/s^2].
Definition ActuatorSector.H:194
amrex::Vector< int > theta_counts
Number of swept quadrature samples at each radial station [-].
Definition ActuatorSector.H:167
vs::Vector rotor_normal
Initial rotor normal direction in the CFD frame [-].
Definition ActuatorSector.H:74
amrex::Real rotor_radius
Rotor radius [m].
Definition ActuatorSector.H:52
amrex::Real support_radius_over_epsilon
Compact Gaussian support radius divided by epsilon [-].
Definition ActuatorSector.H:131
std::string gaussian_type
Gaussian evaluation mode: direct or table.
Definition ActuatorSector.H:140
vs::Vector integrated_force
Integrated density-normalized force applied to the fluid in the CFD frame [m^4/s^2].
Definition ActuatorSector.H:201
amrex::Real torque
Integrated torque about the rotor normal [m^5/s^2].
Definition ActuatorSector.H:197
amrex::Real omega
Rotor spin angular speed [rad/s].
Definition ActuatorSector.H:61
std::shared_ptr< motion::RigidBodyMotion > body_motion
Prescribed rigid-body motion shared with an owning Drone when present.
Definition ActuatorSector.H:34
amrex::Real gaussian_table_error
Maximum interpolation error for the Gaussian exp(-r^2) table [-].
Definition ActuatorSector.H:143
vs::Vector center
Rotor hub center at the current force-evaluation midpoint [m].
Definition ActuatorSector.H:68
vs::Vector rotor_angular_velocity
Rotor-frame angular velocity in the CFD frame [rad/s].
Definition ActuatorSector.H:80
RealList cd
Drag coefficient at midpoint blade stations [-].
Definition ActuatorSector.H:191
std::string airfoil_type
Airfoil table format, e.g., openfast.
Definition ActuatorSector.H:104
std::string swept_quadrature
Swept quadrature rule. Initial implementation supports midpoint.
Definition ActuatorSector.H:137
amrex::Real azimuth
Rotor azimuth at the current force-evaluation midpoint [rad].
Definition ActuatorSector.H:86
amrex::Real epsilon
Fixed Gaussian width [m].
Definition ActuatorSector.H:110
RealList dr
Radial quadrature weights [m].
Definition ActuatorSector.H:155
amrex::Real epsilon_min
Minimum Gaussian width when using epsilon_chord [m].
Definition ActuatorSector.H:119
amrex::Real epsilon_dr
Required local span resolution, epsilon / dr >= epsilon_dr [-].
Definition ActuatorSector.H:122
vs::Vector center0
Initial rotor hub center in the CFD frame [m].
Definition ActuatorSector.H:65
RealList gaussian_table
Host-side table for exp(-r^2), r normalized by epsilon [-].
Definition ActuatorSector.H:149
amrex::Real rotor_diameter
Rotor diameter [m].
Definition ActuatorSector.H:49
RealList radius
Radial blade station locations [m].
Definition ActuatorSector.H:152
std::unique_ptr< AirfoilTable > aflookup
Sectional airfoil lookup table, returning Cl/Cd as a function of AoA.
Definition ActuatorSector.H:107
Definition ActuatorSector.H:209
ActuatorSectorData MetaType
Definition ActuatorSector.H:212
ActGrid GridType
Definition ActuatorSector.H:211
ActInfo InfoType
Definition ActuatorSector.H:210
static std::string identifier()
Definition ActuatorSector.H:215
ActDataHolder< ActuatorSector > DataType
Definition ActuatorSector.H:213
Definition actuator_types.H:27
AMREX_GPU_HOST_DEVICE static AMREX_FORCE_INLINE constexpr VectorT< amrex::Real > zero()
Definition vector.H:45