Source code for foxes.core.wake_deflection

from abc import abstractmethod

from foxes.utils import new_instance
from .model import Model


[docs] class WakeDeflection(Model): """ Abstract base class for wake deflection models. :group: core """ @property def has_uv(self): """ This model uses wind vector data Returns ------- hasuv: bool Flag for wind vector data """ return False
[docs] @abstractmethod def calc_deflection( self, algo, mdata, fdata, tdata, downwind_index, coos, ): """ Calculates the wake deflection. This function optionally adds FC.WDEFL_ROT_ANGLE or FC.WDEFL_DWS_FACTOR to the tdata. Parameters ---------- algo: foxes.core.Algorithm The calculation algorithm mdata: foxes.core.MData The model data fdata: foxes.core.FData The farm data tdata: foxes.core.TData The target point data downwind_index: int The index of the wake causing turbine in the downwind order coos: numpy.ndarray The wake frame coordinates of the evaluation points, shape: (n_states, n_targets, n_tpoints, 3) Returns ------- coos: numpy.ndarray The wake frame coordinates of the evaluation points, shape: (n_states, n_targets, n_tpoints, 3) """ pass
[docs] def get_yaw_alpha_seq( self, algo, mdata, fdata, tdata, downwind_index, x, ): """ Computes sequential wind vector rotation angles. Wind vector rotation angles are computed at the current trace points due to a yawed rotor for sequential runs. Parameters ---------- algo: foxes.core.Algorithm The calculation algorithm mdata: foxes.core.MData The model data fdata: foxes.core.FData The farm data tdata: foxes.core.TData The target point data downwind_index: int The index of the wake causing turbine in the downwind order x: numpy.ndarray The distance from the wake causing rotor for the first n_times subsequent time steps, shape: (n_times,) Returns ------- alpha: numpy.ndarray The delta WD result at the x locations, shape: (n_times,) """ raise NotImplementedError( f"Wake deflection '{self.name}' not implemented for sequential runs" )
[docs] @classmethod def new(cls, wframe_type, *args, **kwargs): """ Run-time wake deflection model factory. Parameters ---------- wframe_type: str The selected derived class name args: tuple, optional Additional parameters for constructor kwargs: dict, optional Additional parameters for constructor """ return new_instance(cls, wframe_type, *args, **kwargs)