/home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/actuator/motion/TimeTable.H Source File

Kynema-SGF API: /home/runner/work/kynema-sgf/kynema-sgf/src/wind_energy/actuator/motion/TimeTable.H Source File
Kynema-SGF API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
TimeTable.H
Go to the documentation of this file.
1#ifndef ACTUATOR_MOTION_TIME_TABLE_H
2#define ACTUATOR_MOTION_TIME_TABLE_H
3
5
6#include <string>
7
9
16{
17public:
18 void read(
19 const std::string& filename,
20 int num_values,
21 const std::string& extrapolation = "hold");
22
23 [[nodiscard]] bool empty() const { return m_time.empty(); }
24 [[nodiscard]] int num_values() const { return m_num_values; }
25 [[nodiscard]] const RealList& times() const { return m_time; }
26 [[nodiscard]] RealList row(int index) const;
27
28 [[nodiscard]] RealList value(amrex::Real time) const;
29 [[nodiscard]] RealList derivative(amrex::Real time) const;
30 [[nodiscard]] RealList integral(amrex::Real time) const;
31
32private:
33 [[nodiscard]] int interval(amrex::Real time) const;
34 void warn_hold(amrex::Real time) const;
35
36 std::string m_filename;
42 amrex::Vector<RealList> m_prefix_integral;
43 mutable bool m_warned_below{false};
44 mutable bool m_warned_above{false};
46};
47
48} // namespace kynema_sgf::actuator::motion
49
50#endif
const RealList & times() const
Definition TimeTable.H:25
RealList m_values
Row-major values used directly by interp::linear's ncomp interface.
Definition TimeTable.H:40
RealList row(int index) const
Definition TimeTable.cpp:73
RealList derivative(amrex::Real time) const
Definition TimeTable.cpp:132
amrex::Vector< RealList > m_prefix_integral
Exact trapezoidal integral of each completed interpolation interval.
Definition TimeTable.H:42
void read(const std::string &filename, int num_values, const std::string &extrapolation="hold")
Definition TimeTable.cpp:15
RealList value(amrex::Real time) const
Definition TimeTable.cpp:121
int num_values() const
Definition TimeTable.H:24
bool m_error_on_extrapolation
Definition TimeTable.H:45
RealList m_time
Definition TimeTable.H:38
RealList integral(amrex::Real time) const
Definition TimeTable.cpp:149
bool m_warned_above
Definition TimeTable.H:44
int interval(amrex::Real time) const
Definition TimeTable.cpp:108
bool m_warned_below
Definition TimeTable.H:43
std::string m_filename
Definition TimeTable.H:36
int m_num_values
Definition TimeTable.H:37
void warn_hold(amrex::Real time) const
Definition TimeTable.cpp:84
bool empty() const
Definition TimeTable.H:23
Definition RigidBodyMotion.cpp:15
amrex::Vector< amrex::Real > RealList
Definition actuator_types.H:91