ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_SimpleAD.H
Go to the documentation of this file.
1 #ifndef ERF_SIMPLEAD_H
2 #define ERF_SIMPLEAD_H
3 
4 #include <AMReX_Geometry.H>
5 #include <AMReX_MultiFab.H>
6 #include "ERF_NullWindFarm.H"
7 
8 class SimpleAD : public NullWindFarm {
9 
10 public:
11 
12  SimpleAD() {}
13 
14  virtual ~SimpleAD() = default;
15 
16  void advance (const amrex::Geometry& geom,
17  const amrex::Real& dt_advance,
18  amrex::MultiFab& cons_in,
19  amrex::MultiFab& mf_vars_windfarm,
20  amrex::MultiFab& U_old,
21  amrex::MultiFab& V_old,
22  amrex::MultiFab& W_old,
23  const amrex::MultiFab& mf_Nturb,
24  const amrex::MultiFab& mf_SMark,
25  const amrex::Real& time) override;
26 
27  void compute_freestream_velocity(const amrex::MultiFab& cons_in,
28  const amrex::MultiFab& U_old,
29  const amrex::MultiFab& V_old,
30  const amrex::MultiFab& mf_SMark);
31 
32  void source_terms_cellcentered (const amrex::Geometry& geom,
33  const amrex::MultiFab& cons_in,
34  const amrex::MultiFab& mf_Smark,
35  amrex::MultiFab& mf_vars_simpleAD);
36 
37  void update (const amrex::Real& dt_advance,
38  amrex::MultiFab& cons_in,
39  amrex::MultiFab& U_old,
40  amrex::MultiFab& V_old,
41  const amrex::MultiFab& mf_vars);
42 
43  void compute_power_output(const amrex::Real& time);
44 
45 protected:
46  amrex::Vector<amrex::Real> xloc, yloc;
47  amrex::Real turb_disk_angle;
49  amrex::Vector<amrex::Real> wind_speed, thrust_coeff, power;
50  amrex::Vector<amrex::Real> freestream_velocity, freestream_phi, disk_cell_count;
51 };
52 
53 #endif
54 
Definition: ERF_NullWindFarm.H:9
Definition: ERF_SimpleAD.H:8
amrex::Real rotor_rad
Definition: ERF_SimpleAD.H:48
amrex::Vector< amrex::Real > thrust_coeff
Definition: ERF_SimpleAD.H:49
void compute_freestream_velocity(const amrex::MultiFab &cons_in, const amrex::MultiFab &U_old, const amrex::MultiFab &V_old, const amrex::MultiFab &mf_SMark)
Definition: ERF_AdvanceSimpleAD.cpp:84
amrex::Real thrust_coeff_standing
Definition: ERF_SimpleAD.H:48
amrex::Vector< amrex::Real > wind_speed
Definition: ERF_SimpleAD.H:49
void update(const amrex::Real &dt_advance, amrex::MultiFab &cons_in, amrex::MultiFab &U_old, amrex::MultiFab &V_old, const amrex::MultiFab &mf_vars)
Definition: ERF_AdvanceSimpleAD.cpp:57
amrex::Vector< amrex::Real > disk_cell_count
Definition: ERF_SimpleAD.H:50
amrex::Vector< amrex::Real > power
Definition: ERF_SimpleAD.H:49
amrex::Real hub_height
Definition: ERF_SimpleAD.H:48
amrex::Vector< amrex::Real > freestream_velocity
Definition: ERF_SimpleAD.H:50
amrex::Vector< amrex::Real > xloc
Definition: ERF_SimpleAD.H:46
SimpleAD()
Definition: ERF_SimpleAD.H:12
amrex::Vector< amrex::Real > yloc
Definition: ERF_SimpleAD.H:46
void compute_power_output(const amrex::Real &time)
Definition: ERF_AdvanceSimpleAD.cpp:28
amrex::Vector< amrex::Real > freestream_phi
Definition: ERF_SimpleAD.H:50
void source_terms_cellcentered(const amrex::Geometry &geom, const amrex::MultiFab &cons_in, const amrex::MultiFab &mf_Smark, amrex::MultiFab &mf_vars_simpleAD)
Definition: ERF_AdvanceSimpleAD.cpp:160
void advance(const amrex::Geometry &geom, const amrex::Real &dt_advance, amrex::MultiFab &cons_in, amrex::MultiFab &mf_vars_windfarm, amrex::MultiFab &U_old, amrex::MultiFab &V_old, amrex::MultiFab &W_old, const amrex::MultiFab &mf_Nturb, const amrex::MultiFab &mf_SMark, const amrex::Real &time) override
Definition: ERF_AdvanceSimpleAD.cpp:8
amrex::Real turb_disk_angle
Definition: ERF_SimpleAD.H:47
amrex::Real nominal_power
Definition: ERF_SimpleAD.H:48
virtual ~SimpleAD()=default