/home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/actuator/aero/AirfoilTable.H Source File

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/actuator/aero/AirfoilTable.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
AirfoilTable.H
Go to the documentation of this file.
1#ifndef AIRFOILTABLE_H
2#define AIRFOILTABLE_H
3
5#include <iosfwd>
6#include <memory>
7#include "AMReX_REAL.H"
8
9using namespace amrex::literals;
10
11namespace amr_wind::actuator {
12
13class AirfoilLoader;
14
16{
17public:
18 friend class AirfoilLoader;
19
21
22 void operator()(amrex::Real aoa, amrex::Real& cl, amrex::Real& cd) const;
23
24 void operator()(
25 amrex::Real aoa,
26 amrex::Real& cl,
27 amrex::Real& cd,
28 amrex::Real& cm) const;
29
30 [[nodiscard]] int num_entries() const
31 {
32 return static_cast<int>(m_aoa.size());
33 }
34
35 [[nodiscard]] const RealList& aoa() const { return m_aoa; }
36
37 [[nodiscard]] const VecList& polars() const { return m_polar; }
38
39protected:
40 explicit AirfoilTable(int num_entries);
41
43
46
49};
50
52{
53public:
54 void operator()(amrex::Real aoa, amrex::Real& cl, amrex::Real& cd) const;
55
56 amrex::Real& cd_factor() { return m_cd_factor; }
57
58private:
59 amrex::Real m_cd_factor{0.0_rt};
60};
61
63{
64public:
65 static std::unique_ptr<AirfoilTable>
66 load_airfoil(const std::string& af_file, const std::string& type);
67
68 static std::unique_ptr<AirfoilTable>
69 load_text_file(const std::string& af_file);
70
71 template <typename IStream>
72 static std::unique_ptr<AirfoilTable> load_text_file(IStream& affile);
73
74 static std::unique_ptr<AirfoilTable>
75 load_openfast_airfoil(const std::string& af_file);
76
77 template <typename IStream>
78 static std::unique_ptr<AirfoilTable> load_openfast_airfoil(IStream& affile);
79};
80
81template <typename T>
86
87} // namespace amr_wind::actuator
88
90
91#endif /* AIRFOILTABLE_H */
Definition AirfoilTable.H:63
static std::unique_ptr< AirfoilTable > load_openfast_airfoil(const std::string &af_file)
Definition AirfoilTable.cpp:62
static std::unique_ptr< AirfoilTable > load_airfoil(const std::string &af_file, const std::string &type)
Definition AirfoilTable.cpp:73
static std::unique_ptr< AirfoilTable > load_text_file(const std::string &af_file)
Definition AirfoilTable.cpp:51
Definition AirfoilTable.H:16
const RealList & aoa() const
Definition AirfoilTable.H:35
friend class AirfoilLoader
Definition AirfoilTable.H:18
const VecList & polars() const
Definition AirfoilTable.H:37
void convert_aoa_to_radians()
Definition AirfoilTable.cpp:43
int num_entries() const
Definition AirfoilTable.H:30
VecList m_polar
Airfoil polars (Cl, Cd, Cm)
Definition AirfoilTable.H:48
void operator()(amrex::Real aoa, amrex::Real &cl, amrex::Real &cd) const
Definition AirfoilTable.cpp:14
RealList m_aoa
Angle of attack.
Definition AirfoilTable.H:45
AirfoilTable(int num_entries)
Definition AirfoilTable.cpp:8
Definition AirfoilTable.H:52
amrex::Real & cd_factor()
Definition AirfoilTable.H:56
amrex::Real m_cd_factor
Definition AirfoilTable.H:59
void operator()(amrex::Real aoa, amrex::Real &cl, amrex::Real &cd) const
Definition AirfoilTable.cpp:36
Definition ActParser.H:6
amrex::Vector< amrex::Real > RealList
Definition actuator_types.H:63
amrex::Vector< amr_wind::vs::Vector > VecList
Definition actuator_types.H:65
Definition AirfoilTable.H:83
AirfoilTable AirfoilLookup
Definition AirfoilTable.H:84