/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
23 operator()(const amrex::Real aoa, amrex::Real& cl, amrex::Real& cd) const;
24
25 void operator()(
26 const amrex::Real aoa,
27 amrex::Real& cl,
28 amrex::Real& cd,
29 amrex::Real& cm) const;
30
31 int num_entries() const { return static_cast<int>(m_aoa.size()); }
32
33 const RealList& aoa() const { return m_aoa; }
34
35 const VecList& polars() const { return m_polar; }
36
37protected:
38 explicit AirfoilTable(const int num_entries);
39
41
44
47};
48
50{
51public:
52 void
53 operator()(const amrex::Real aoa, amrex::Real& cl, amrex::Real& cd) const;
54
55 amrex::Real& cd_factor() { return m_cd_factor; }
56
57private:
58 amrex::Real m_cd_factor{0.0_rt};
59};
60
62{
63public:
64 static std::unique_ptr<AirfoilTable>
65 load_airfoil(const std::string& af_file, const std::string& type);
66
67 static std::unique_ptr<AirfoilTable>
68 load_text_file(const std::string& af_file);
69
70 template <typename IStream>
71 static std::unique_ptr<AirfoilTable> load_text_file(IStream& affile);
72
73 static std::unique_ptr<AirfoilTable>
74 load_openfast_airfoil(const std::string& af_file);
75
76 template <typename IStream>
77 static std::unique_ptr<AirfoilTable> load_openfast_airfoil(IStream& affile);
78};
79
80template <typename T>
85
86} // namespace amr_wind::actuator
87
89
90#endif /* AIRFOILTABLE_H */
Definition AirfoilTable.H:62
static std::unique_ptr< AirfoilTable > load_openfast_airfoil(const std::string &af_file)
Definition AirfoilTable.cpp:63
static std::unique_ptr< AirfoilTable > load_airfoil(const std::string &af_file, const std::string &type)
Definition AirfoilTable.cpp:74
static std::unique_ptr< AirfoilTable > load_text_file(const std::string &af_file)
Definition AirfoilTable.cpp:52
Definition AirfoilTable.H:16
const RealList & aoa() const
Definition AirfoilTable.H:33
AirfoilTable(const int num_entries)
Definition AirfoilTable.cpp:9
friend class AirfoilLoader
Definition AirfoilTable.H:18
const VecList & polars() const
Definition AirfoilTable.H:35
void convert_aoa_to_radians()
Definition AirfoilTable.cpp:44
int num_entries() const
Definition AirfoilTable.H:31
VecList m_polar
Airfoil polars (Cl, Cd, Cm)
Definition AirfoilTable.H:46
RealList m_aoa
Angle of attack.
Definition AirfoilTable.H:43
void operator()(const amrex::Real aoa, amrex::Real &cl, amrex::Real &cd) const
Definition AirfoilTable.cpp:15
Definition AirfoilTable.H:50
amrex::Real & cd_factor()
Definition AirfoilTable.H:55
amrex::Real m_cd_factor
Definition AirfoilTable.H:58
void operator()(const amrex::Real aoa, amrex::Real &cl, amrex::Real &cd) const
Definition AirfoilTable.cpp:37
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:82
AirfoilTable AirfoilLookup
Definition AirfoilTable.H:83