Newer
Older

Mads M. Pedersen
committed
from abc import ABC, abstractmethod
class DeficitModel(ABC):
deficit_initalized = False
args4deficit = ['WS_ilk', 'dw_ijlk']
def _calc_layout_terms(self, **_):
pass
@abstractmethod
def calc_deficit(self):
"""Calculate wake deficit caused by the x'th most upstream wind turbines
for all wind directions(l) and wind speeds(k) on a set of points(j)
This method must be overridden by subclass
Arguments required by this method must be added to the class list
args4deficit
See documentation of EngineeringWindFarmModel for a list of available input arguments
Returns
-------
deficit_jlk : array_like
"""

Mads M. Pedersen
committed
def wake_radius(self, dw_ijlk, **_):
"""Calculates the radius of the wake of the i'th turbine
for all wind directions(l) and wind speeds(k) at a set of points(j)
This method must be overridden by subclass
Arguments required by this method must be added to the class list
args4deficit
Returns
-------
wake_radius_ijlk : array_like
"""
raise NotImplementedError("wake_radius not implemented for %s" % self.__class__.__name__)