← All posts

Wake Deficit Analysis with PyWake

python
wake-modelling
How to quantify turbine wake losses using PyWake on a simple offshore layout.
Author

Sebastian Sanchez

Published

April 10, 2026

Introduction

Wake losses are one of the largest sources of uncertainty in offshore wind yield assessments. In this post we set up a simple PyWake simulation on a 3×3 grid layout and inspect the per-turbine power deficit.

Code
import numpy as np
import matplotlib.pyplot as plt
from py_wake.examples.data.hornsrev1 import HornsRev1Site, V80
from py_wake import NOJ

Define site and turbine

We use the built-in Horns Rev 1 site and the Vestas V80 power curve.

Code
site = HornsRev1Site()
turbine = V80()

# 3x3 grid, 5D spacing
D = turbine.diameter()
x = np.repeat([0, 5*D, 10*D], 3)
y = np.tile([0, 5*D, 10*D], 3)

Run the NOJ wake model

Code
wf_model = NOJ(site, turbine)
sim = wf_model(x, y, ws=10, wd=270)
print(sim.Power.values / 1e6)  # MW per turbine

Conclusion

Turbines in the second and third rows show clear power deficits. Rows aligned with the prevailing westerly wind lose up to 20% of free-stream power.