ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <ERF_WindFarm.H>
Public Member Functions | |
WindFarm () | |
virtual | ~WindFarm ()=default |
WindFarm (int nlev, const WindFarmType &a_windfarm_type) | |
void | read_tables (std::string windfarm_loc_table, std::string windfarm_spec_table, bool x_y, bool lat_lon, const amrex::Real windfarm_x_shift=0.0, const amrex::Real windfarm_y_shift=0.0) |
void | init_windfarm_lat_lon (const std::string windfarm_loc_table, const amrex::Real windfarm_x_shift, const amrex::Real windfarm_y_shift) |
void | init_windfarm_x_y (const std::string windfarm_loc_table) |
void | read_windfarm_locations_table (const std::string windfarm_loc_table, bool x_y, bool lat_lon, const amrex::Real windfarm_x_shift=0.0, const amrex::Real windfarm_y_shift=0.0) |
void | read_windfarm_spec_table (const std::string windfarm_spec_table) |
void | read_windfarm_blade_table (const std::string windfarm_blade_table) |
void | read_windfarm_airfoil_tables (const std::string windfarm_airfoil_tables, const std::string windfarm_blade_table) |
void | read_windfarm_spec_table_extra (const std::string windfarm_spec_table_extra) |
void | fill_Nturb_multifab (const amrex::Geometry &geom, amrex::MultiFab &mf_Nturb, std::unique_ptr< amrex::MultiFab > &z_phys_nd) |
void | fill_SMark_multifab (const amrex::Geometry &geom, amrex::MultiFab &mf_SMark, const amrex::Real &sampling_distance_by_D, const amrex::Real &turb_disk_angle, std::unique_ptr< amrex::MultiFab > &z_phys_cc) |
void | fill_SMark_multifab_mesoscale_models (const amrex::Geometry &geom, amrex::MultiFab &mf_SMark, const amrex::MultiFab &mf_Nturb, std::unique_ptr< amrex::MultiFab > &z_phys_cc) |
void | write_turbine_locations_vtk () |
void | write_actuator_disks_vtk (const amrex::Geometry &geom, const amrex::Real &sampling_distance_by_D) |
void | advance (const amrex::Geometry &a_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 |
void | set_turb_spec (const amrex::Real &a_rotor_rad, const amrex::Real &a_hub_height, const amrex::Real &a_thrust_coeff_standing, const amrex::Vector< amrex::Real > &a_wind_speed, const amrex::Vector< amrex::Real > &a_thrust_coeff, const amrex::Vector< amrex::Real > &a_power) override |
void | set_turb_loc (const amrex::Vector< amrex::Real > &a_xloc, const amrex::Vector< amrex::Real > &a_yloc) override |
void | set_turb_disk_angle (const amrex::Real &a_turb_disk_angle) override |
void | set_blade_spec (const amrex::Vector< amrex::Real > &a_bld_rad_loc, const amrex::Vector< amrex::Real > &a_bld_twist, const amrex::Vector< amrex::Real > &a_bld_chord) override |
void | set_blade_airfoil_spec (const amrex::Vector< amrex::Vector< amrex::Real >> &a_bld_airfoil_aoa, const amrex::Vector< amrex::Vector< amrex::Real >> &a_bld_airfoil_Cl, const amrex::Vector< amrex::Vector< amrex::Real >> &a_bld_airfoil_Cd) override |
void | set_turb_spec_extra (const amrex::Vector< amrex::Real > &a_velocity, const amrex::Vector< amrex::Real > &a_C_P, const amrex::Vector< amrex::Real > &a_C_T, const amrex::Vector< amrex::Real > &a_rotor_RPM, const amrex::Vector< amrex::Real > &a_blade_pitch) override |
Public Member Functions inherited from NullWindFarm | |
NullWindFarm () | |
virtual | ~NullWindFarm ()=default |
void | get_turb_spec (amrex::Real &rotor_rad, amrex::Real &hub_height, amrex::Real &thrust_coeff_standing, amrex::Vector< amrex::Real > &wind_speed, amrex::Vector< amrex::Real > &thrust_coeff, amrex::Vector< amrex::Real > &power) |
void | get_turb_loc (amrex::Vector< amrex::Real > &xloc, amrex::Vector< amrex::Real > &yloc) |
void | get_turb_disk_angle (amrex::Real &turb_disk_angle) |
void | get_blade_spec (amrex::Vector< amrex::Real > &bld_rad_loc, amrex::Vector< amrex::Real > &bld_twist, amrex::Vector< amrex::Real > &bld_chord) |
void | get_blade_airfoil_spec (amrex::Vector< amrex::Vector< amrex::Real >> &bld_airfoil_aoa, amrex::Vector< amrex::Vector< amrex::Real >> &bld_airfoil_Cl, amrex::Vector< amrex::Vector< amrex::Real >> &bld_airfoil_Cd) |
void | get_turb_spec_extra (amrex::Vector< amrex::Real > &velocity, amrex::Vector< amrex::Real > &C_P, amrex::Vector< amrex::Real > &C_T, amrex::Vector< amrex::Real > &rotor_RPM, amrex::Vector< amrex::Real > &blade_pitch) |
Protected Member Functions | |
template<class NewWindFarmModel > | |
void | SetModel () |
Create and set the specified windfarm model. More... | |
Protected Attributes | |
amrex::Vector< amrex::Real > | xloc |
amrex::Vector< amrex::Real > | yloc |
amrex::Vector< amrex::Real > | zloc |
amrex::Real | my_turb_disk_angle |
amrex::Real | hub_height |
amrex::Real | rotor_rad |
amrex::Real | thrust_coeff_standing |
amrex::Real | nominal_power |
amrex::Vector< amrex::Real > | wind_speed |
amrex::Vector< amrex::Real > | thrust_coeff |
amrex::Vector< amrex::Real > | power |
amrex::Vector< amrex::Real > | bld_rad_loc |
amrex::Vector< amrex::Real > | bld_twist |
amrex::Vector< amrex::Real > | bld_chord |
amrex::Vector< amrex::Vector< amrex::Real > > | bld_airfoil_aoa |
amrex::Vector< amrex::Vector< amrex::Real > > | bld_airfoil_Cl |
amrex::Vector< amrex::Vector< amrex::Real > > | bld_airfoil_Cd |
int | n_bld_sections |
amrex::Vector< amrex::Real > | velocity |
amrex::Vector< amrex::Real > | C_P |
amrex::Vector< amrex::Real > | C_T |
amrex::Vector< amrex::Real > | rotor_RPM |
amrex::Vector< amrex::Real > | blade_pitch |
Protected Attributes inherited from NullWindFarm | |
amrex::Vector< amrex::Real > | m_xloc |
amrex::Vector< amrex::Real > | m_yloc |
amrex::Real | m_turb_disk_angle |
amrex::Real | m_hub_height |
amrex::Real | m_rotor_rad |
amrex::Real | m_thrust_coeff_standing |
amrex::Real | m_nominal_power |
amrex::Vector< amrex::Real > | m_wind_speed |
amrex::Vector< amrex::Real > | m_thrust_coeff |
amrex::Vector< amrex::Real > | m_power |
amrex::Vector< amrex::Real > | m_bld_rad_loc |
amrex::Vector< amrex::Real > | m_bld_twist |
amrex::Vector< amrex::Real > | m_bld_chord |
amrex::Vector< amrex::Vector< amrex::Real > > | m_bld_airfoil_aoa |
amrex::Vector< amrex::Vector< amrex::Real > > | m_bld_airfoil_Cl |
amrex::Vector< amrex::Vector< amrex::Real > > | m_bld_airfoil_Cd |
amrex::Vector< amrex::Real > | m_velocity |
amrex::Vector< amrex::Real > | m_C_P |
amrex::Vector< amrex::Real > | m_C_T |
amrex::Vector< amrex::Real > | m_rotor_RPM |
amrex::Vector< amrex::Real > | m_blade_pitch |
Private Attributes | |
amrex::Vector< std::unique_ptr< NullWindFarm > > | m_windfarm_model |
Additional Inherited Members | |
Static Public Member Functions inherited from NullWindFarm | |
static AMREX_GPU_DEVICE bool | find_if_marked (amrex::Real x1, amrex::Real x2, amrex::Real y1, amrex::Real y2, amrex::Real x0, amrex::Real y0, amrex::Real nx, amrex::Real ny, amrex::Real d_hub_height, amrex::Real d_rotor_rad, amrex::Real z) |
|
virtualdefault |
|
inline |
|
inlineoverridevirtual |
Implements NullWindFarm.
void WindFarm::fill_Nturb_multifab | ( | const amrex::Geometry & | geom, |
amrex::MultiFab & | mf_Nturb, | ||
std::unique_ptr< amrex::MultiFab > & | z_phys_nd | ||
) |
void WindFarm::fill_SMark_multifab | ( | const amrex::Geometry & | geom, |
amrex::MultiFab & | mf_SMark, | ||
const amrex::Real & | sampling_distance_by_D, | ||
const amrex::Real & | turb_disk_angle, | ||
std::unique_ptr< amrex::MultiFab > & | z_phys_cc | ||
) |
void WindFarm::fill_SMark_multifab_mesoscale_models | ( | const amrex::Geometry & | geom, |
amrex::MultiFab & | mf_SMark, | ||
const amrex::MultiFab & | mf_Nturb, | ||
std::unique_ptr< amrex::MultiFab > & | z_phys_cc | ||
) |
void WindFarm::init_windfarm_lat_lon | ( | const std::string | windfarm_loc_table, |
const amrex::Real | windfarm_x_shift, | ||
const amrex::Real | windfarm_y_shift | ||
) |
void WindFarm::init_windfarm_x_y | ( | const std::string | windfarm_loc_table | ) |
void WindFarm::read_tables | ( | std::string | windfarm_loc_table, |
std::string | windfarm_spec_table, | ||
bool | x_y, | ||
bool | lat_lon, | ||
const amrex::Real | windfarm_x_shift = 0.0 , |
||
const amrex::Real | windfarm_y_shift = 0.0 |
||
) |
Read in the turbine locations in latitude-longitude from windturbines.txt and convert it into x and y coordinates in metres
lev | Integer specifying the current level |
void WindFarm::read_windfarm_airfoil_tables | ( | const std::string | windfarm_airfoil_tables, |
const std::string | windfarm_blade_table | ||
) |
void WindFarm::read_windfarm_blade_table | ( | const std::string | windfarm_blade_table | ) |
void WindFarm::read_windfarm_locations_table | ( | const std::string | windfarm_loc_table, |
bool | x_y, | ||
bool | lat_lon, | ||
const amrex::Real | windfarm_x_shift = 0.0 , |
||
const amrex::Real | windfarm_y_shift = 0.0 |
||
) |
void WindFarm::read_windfarm_spec_table | ( | const std::string | windfarm_spec_table | ) |
void WindFarm::read_windfarm_spec_table_extra | ( | const std::string | windfarm_spec_table_extra | ) |
|
inlineoverridevirtual |
Reimplemented from NullWindFarm.
|
inlineoverridevirtual |
Reimplemented from NullWindFarm.
|
inlineoverridevirtual |
Reimplemented from NullWindFarm.
|
inlineoverridevirtual |
Reimplemented from NullWindFarm.
|
inlineoverridevirtual |
Reimplemented from NullWindFarm.
|
inlineoverridevirtual |
Reimplemented from NullWindFarm.
|
inlineprotected |
Create and set the specified windfarm model.
void WindFarm::write_actuator_disks_vtk | ( | const amrex::Geometry & | geom, |
const amrex::Real & | sampling_distance_by_D | ||
) |
void WindFarm::write_turbine_locations_vtk | ( | ) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
private |
windfarm model
Referenced by advance(), set_blade_airfoil_spec(), set_blade_spec(), set_turb_disk_angle(), set_turb_loc(), set_turb_spec(), set_turb_spec_extra(), SetModel(), and WindFarm().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |