"`WakeModel` contains a method, [`calc_wake`](https://topfarm.pages.windenergy.dtu.dk/PyWake/wake_models/WakeModel.html#py_wake.wake_model.WakeModel.calc_wake), to calculate the effective wind speed, turbulence intensity (not implemented yet), power and thrust coefficient.\n",
"\n",
"Let us try to calculate the effective wind speed for two V80 turbines separated by 200m in 10m/s and wind direction parallel to a line between the two turbines"
"Let us try to calculate the effective wind speed for two V80 turbines separated by 200m in 10m/s and wind direction parallel to a line between the two turbines\n",
The `NOJ` is a subclass of the general `WakeModel` class, see documentation [here](https://topfarm.pages.windenergy.dtu.dk/PyWake/wake_models/WakeModel.html)
It implements the wake model of Niels Otto Jensen, described in "A note on wind generator interaction." (1983)
The implementation of `WakeModel` is highly vectorized and therefore suffixes are used to indicate the dimension of variables. The suffixes used in this context are:
- i: turbines ordered by id
- k: wind speeds
- l: wind directions
This means that `WS_ilk[0,1,2]` holds the wind speed at the first turbine for the second wind direction and third wind speed
%% Cell type:markdown id: tags:
`WakeModel` contains a method, [`calc_wake`](https://topfarm.pages.windenergy.dtu.dk/PyWake/wake_models/WakeModel.html#py_wake.wake_model.WakeModel.calc_wake), to calculate the effective wind speed, turbulence intensity (not implemented yet), power and thrust coefficient.
Let us try to calculate the effective wind speed for two V80 turbines separated by 200m in 10m/s and wind direction parallel to a line between the two turbines
while `calc_effective_WS` calculates the effective wind speed by subtracting the deficits from all upstream turbines from the local wind speed. For `NOJ` it subtracts the square root of the sum of squared deficits
%% Cell type:code id: tags:
``` python
wake_model.calc_effective_WS(
WS_lk=np.array([[10]]),
deficit_jlk=deficit)
```
%% Output
array([[7.57765567]])
%% Cell type:markdown id: tags:
Finally, `WakeModel`, contains the method `wake_map` to find the effective wind speed at arbitrary positions
%% Cell type:code id: tags:
``` python
#calculate the wake 200m down stream of a V80
wake_model.wake_map(
WS_ilk=np.array([[[10]]]),# wind speed at turbine
WS_eff_ilk=np.array([[[8.92340252]]]),
dw_ijl=np.array([[[200]]]),# one point 500m down stream