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

AMR-Wind API: /home/runner/work/amr-wind/amr-wind/amr-wind/wind_energy/actuator/Actuator.H Source File
AMR-Wind API v0.1.0
CFD solver for wind plant simulations
Loading...
Searching...
No Matches
Actuator.H
Go to the documentation of this file.
1#ifndef ACTUATOR_H
2#define ACTUATOR_H
3
6
11
12namespace amr_wind {
13
14class Field;
15
16namespace actuator {
17
18class ActuatorModel;
20
30class Actuator : public Physics::Register<Actuator>
31{
32public:
33 static std::string identifier() { return "Actuator"; }
34
35 explicit Actuator(CFDSim& /*sim*/);
36
37 ~Actuator() override;
38
39 void
40 initialize_fields(int /*level*/, const amrex::Geometry& /*geom*/) override
41 {}
42
43 void pre_init_actions() override;
44
45 void post_init_actions() override;
46
47 void post_regrid_actions() override;
48
49 void pre_advance_work() override;
50
51 void post_advance_work() override;
52
53 [[nodiscard]] ActuatorModel& get_act(int index) const
54 {
55 return *m_actuators.at(index);
56 }
57
58 [[nodiscard]] ActuatorModel&
59 get_act_bylabel(const std::string& actlabel) const;
60
61 template <typename T>
62 T* get_actuator(std::string& key) const;
63
64protected:
66 [[nodiscard]] int num_actuators() const
67 {
68 return static_cast<int>(m_actuators.size());
69 }
70
71 virtual void prepare_outputs();
72
73private:
74 void setup_container();
75
76 void update_positions();
77
78 void update_velocities();
79
80 void compute_forces();
81
83
85
87
89
90 std::vector<std::unique_ptr<ActuatorModel>> m_actuators;
91
92 std::unique_ptr<ActuatorContainer> m_container;
93};
94
95} // namespace actuator
96} // namespace amr_wind
97
98#endif /* ACTUATOR_H */
Definition CFDSim.H:54
Definition Field.H:112
Definition ActuatorContainer.H:65
void setup_container()
Definition Actuator.cpp:201
int num_actuators() const
Total number of actuator components (e.g., turbines) in the flow field.
Definition Actuator.H:66
ActuatorModel & get_act_bylabel(const std::string &actlabel) const
Definition Actuator.cpp:345
virtual void prepare_outputs()
Definition Actuator.cpp:314
static std::string identifier()
Definition Actuator.H:33
void post_regrid_actions() override
Definition Actuator.cpp:122
std::vector< std::unique_ptr< ActuatorModel > > m_actuators
Definition Actuator.H:90
Actuator(CFDSim &)
Definition Actuator.cpp:16
void initialize_fields(int, const amrex::Geometry &) override
Definition Actuator.H:40
ActuatorModel & get_act(int index) const
Definition Actuator.H:53
void compute_forces()
Definition Actuator.cpp:277
Field & m_act_source
Definition Actuator.H:88
void update_velocities()
Definition Actuator.cpp:257
T * get_actuator(std::string &key) const
Definition Actuator.cpp:360
std::unique_ptr< ActuatorContainer > m_container
Definition Actuator.H:92
void update_positions()
Definition Actuator.cpp:234
void post_advance_work() override
Definition Actuator.cpp:333
void pre_advance_work() override
Definition Actuator.cpp:148
void communicate_turbine_io()
Definition Actuator.cpp:160
void compute_source_term()
Definition Actuator.cpp:287
void post_init_actions() override
Definition Actuator.cpp:87
CFDSim & m_sim
Definition Actuator.H:86
void pre_init_actions() override
Definition Actuator.cpp:23
Definition ActuatorModel.H:30
Definition ActParser.H:6
This test case is intended as an evaluation of the momentum advection scheme.
Definition BCInterface.cpp:10