Engineering wind farm model classes

Inheritance diagram of py_wake.wind_farm_models.PropagateDownwind, py_wake.wind_farm_models.All2AllIterative

PropagateDownwind

class py_wake.wind_farm_models.PropagateDownwind(site, windTurbines, wake_deficitModel, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=None, rotorAvgModel=None, inputModifierModels=[])[source]

Downstream wake deficits calculated and propagated in downstream direction. Very fast, but ignoring blockage effects

__init__(site, windTurbines, wake_deficitModel, superpositionModel=<py_wake.superposition_models.LinearSum object>, deflectionModel=None, turbulenceModel=None, rotorAvgModel=None, inputModifierModels=[])[source]

Initialize flow model

Parameters:
  • site (Site) – Site object

  • windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines

  • wake_deficitModel (DeficitModel) – Model describing the wake(downstream) deficit

  • rotorAvgModel (RotorAvgModel, optional) –

    Model defining one or more points at the down stream rotors to calculate the rotor average wind speeds from.

    if None, default, the wind speed at the rotor center is used

  • superpositionModel (SuperpositionModel) – Model defining how deficits sum up

  • deflectionModel (DeflectionModel) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.

  • turbulenceModel (TurbulenceModel) – Model describing the amount of added turbulence in the wake

All2AllIterative

class py_wake.wind_farm_models.All2AllIterative(site, windTurbines, wake_deficitModel, superpositionModel=<py_wake.superposition_models.LinearSum object>, blockage_deficitModel=None, deflectionModel=None, turbulenceModel=None, convergence_tolerance=1e-06, rotorAvgModel=None, inputModifierModels=[])[source]

Wake and blockage deficits calculated from all wt to all points of interest (wt/map points). The calculations are iteratively repeated until convergence (change of effective wind speed < convergence_tolerance)

__init__(site, windTurbines, wake_deficitModel, superpositionModel=<py_wake.superposition_models.LinearSum object>, blockage_deficitModel=None, deflectionModel=None, turbulenceModel=None, convergence_tolerance=1e-06, rotorAvgModel=None, inputModifierModels=[])[source]

Initialize flow model

Parameters:
  • site (Site) – Site object

  • windTurbines (WindTurbines) – WindTurbines object representing the wake generating wind turbines

  • wake_deficitModel (DeficitModel) – Model describing the wake(downstream) deficit

  • rotorAvgModel (RotorAvgModel, optional) –

    Model defining one or more points at the down stream rotors to calculate the rotor average wind speeds from.

    if None, default, the wind speed at the rotor center is used

  • superpositionModel (SuperpositionModel) – Model defining how deficits sum up

  • blockage_deficitModel (DeficitModel) – Model describing the blockage(upstream) deficit

  • deflectionModel (DeflectionModel) – Model describing the deflection of the wake due to yaw misalignment, sheared inflow, etc.

  • turbulenceModel (TurbulenceModel) – Model describing the amount of added turbulence in the wake

  • convergence_tolerance (float or None) – if float: maximum accepted change in WS_eff_ilk [m/s] if None: return after first iteration. This only makes sense for benchmark studies where CT, wakes and blockage are independent of effective wind speed WS_eff_ilk