the Creative Commons Attribution 4.0 License.
the Creative Commons Attribution 4.0 License.
Comment on “A theoretical upper limit for offshore wind energy extraction” by Simão Ferreira et al. (2026)
Simon Watson
A theoretical limit for the energy extraction of offshore wind farms has been suggested by Simão Ferreira et al. (2026) based on a simple analytical model that was originally designed to provide an estimate of the turbine wake losses of an infinite wind farm. Simão Ferreira et al. (2026) validated the model with 72 offshore wind farms using an ad hoc and undocumented method to correct the model for application to finite wind farms. In this work, we discuss our concerns regarding the non-reproducibility of the finite wind farm correction and its sensitivity to the model results and validation. We conclude that the limit proposed in Simão Ferreira et al. (2026) is not a theoretical limit but rather a limit supported by model results that are strongly dependent on the non-reproducible finite wind farm correction. Therefore, the model of Simão Ferreira et al. (2026) cannot be employed to assess the feasibility of national policies.
- Article
(3144 KB) - Full-text XML
- Corresponding article
- BibTeX
- EndNote
In a recent paper, Simão Ferreira et al. (2026) suggested a theoretical limit for the energy extraction of offshore wind farms in terms of the capacity factor. Simão Ferreira et al. (2026) applied simplified analytic models of a wind turbine power curve, the wind resource, and the interaction between the atmospheric boundary layer and a wind farm of infinite size. Furthermore, a largely unspecified model correction for finite wind farms is applied that depends on the wind farm layout, wind rose, and neighboring wind farms. The model is validated against measured net capacity factors of 72 offshore wind farms situated in the Baltic, North, and Irish seas. Finally, national policies for planned offshore wind farms are investigated, and some of these are stated to assume capacity factors significantly in excess of the proposed theoretical limit, especially for the Netherlands. The latter led to a public hearing in the Dutch parliament where the authors were interviewed regarding their findings. Hence, the work of Simão Ferreira et al. (2026) has had a major political impact in the Netherlands.
Simão Ferreira et al. (2026) addresses an important issue regarding the saturation of offshore wind farms in waters with limited space leading to reduced energy yield, mainly due to wind turbine and farm wake losses. The wind industry and academia have developed a range of numerical models to calculate such losses (Fitch et al. (2012), Volker et al. (2017), and Fischereit et al. (2022)), which due to their complexity and computational cost, may not be accessible to policy makers. For this reason, Simão Ferreira et al. (2026) proposed a simplified analytical model that can potentially be applied in a simple spreadsheet, based on the work of Frandsen (1992) and Sørensen and Larsen (2021).
In this paper, we address several concerns regarding the validation and application of the model in Simão Ferreira et al. (2026). We also offer a number of clarifications, as the chosen terminology in Simão Ferreira et al. (2026) can lead to misinterpretation of their results. Our main concerns are as follows.
-
The proposed limit of the capacity factor is not a theoretical limit in the same way as, for example, the Betz limit is considered to be for the power coefficient of a single turbine. Instead, the proposed limit is based on an analytical expression that is formulated using a number of heuristic model assumptions, including unknown model parameters. A different choice in these parameters can lead to distinctly different limits.
-
The plotted limit labeled as theoretical limit (solid line) in Figs. 4, 5, and 9 in Simão Ferreira et al. (2026) represents a normalized gross annual energy production (AEP), but this is not clear from the paper.
-
The validation of the analytical model with 72 wind farm in Figs. 3, 4, and 5, is not reproducible. This is because the model is corrected by manually counting the freestream turbines for each wind farm, taking into account the wind farm layout, wind rose, and neighboring wind farms. This manual approach is only briefly described by Simão Ferreira et al. (2026), while a scientific method is not provided. In addition, the model correction is very sensitive to the outcome of the validation, which is not described in Simão Ferreira et al. (2026).
-
The model validation is performed with measurements of net wind farm capacity factors. These measurements also include losses related to grid faults, curtailment, turbine availability, etc., which makes it impossible to isolate wake losses for model validation. Simão Ferreira et al. (2026) suggested an additional loss factor of 0.9 to account for this but they do not provide compelling evidence for their chosen value.
-
The analytical model of the infinite wind farm wake loss is implicit in Simão Ferreira et al. (2026) due to the need for solving a geostrophic drag law numerically. However, for the application of the 72 wind farms, the model can be expressed as a simple explicit relation that only depends on the turbine spacing, due to the use of a constant latitude, thrust coefficient, and roughness length and due to the fact that the 72 wind farms have turbines with similar hub heights in logarithmic space. It should be noted that the turbine spacing depends on the wind farm area, but the latter is mathematically undefined for a wind farm layout with a concave shape, which can lead to model uncertainties. Furthermore, the proposed wind farm wind factor mainly depends on two parameters, the finite wind farm correction and the turbine spacing, which is not clear in the work of Simão Ferreira et al. (2026).
-
Simão Ferreira et al. (2026) calculated that the Dutch national policy overestimates the analytical maximum capacity factor (assuming 10 % losses) by 49 %. However, the references provided by Simão Ferreira et al. (2026) state a range of values for the planned installed rated wind farm power per unit area, or capacity density, of between 4 and 10.5 MW km−2, and also mention different values of the expected annual full load hours, namely 3700 and 4750–5100 h, which correspond to capacity factors in between 0.42 and 0.58. While a capacity factor of 0.58 is indeed an optimistic estimate, the lower value of 0.42 is in the range of the measured capacity factors of the 72 wind farms. In addition, given the model sensitivity to the finite wind farm correction, it is impossible to claim that the Dutch policy exceeds the modeled capacity factor by 49 %. Finally, if the planned wind farm with an installed capacity of 10 000 MW is realized, it is unrealistic to consider it as one large wind farm with a uniform turbine density. A more realistic scenario is a wind farm cluster where separate wind farms with a size of 1000–2000 MW are installed over time including space between them, which the analytical model does account for.
To understand our principal concerns with the work of Simão Ferreira et al. (2026), the main model equations are summarized and discussed in Sect. 2. The finite wind farm correction is addressed in Sect. 3, where we also compare results of an automated method with the results of the undocumented manual method of Simão Ferreira et al. (2026). Several simplifications are shown in Sect. 4, which we use to understand the main parameters of the model. Finally, we address the problems with the validation method in Sect. 5.
It should be noted that original authors have added several community comments (Sørensen et al., 2026; Simão Ferreira, 2026) during the open review process of this article. We have included their main results in the present work to show that our main concerns remain unresolved.
The main model equations of Simão Ferreira et al. (2026) are repeated here. We start with a simplified model of the wind distribution at the location of a wind farm, which is the well-known Weibull distribution of wind speed, being a function of a shape parameter, k, and a scale parameter, λ:
Here, U0 is the mean wind speed and Γ is a Gamma function. Note that we use the subscript 0 to denote freestream conditions, while the subscript ∞ is used for infinite wind farm variables. Simão Ferreira et al. (2026) employed a constant Weibull shape parameter (k=2.4) for simplicity, while the Global Wind Atlas 4.0 (Davis et al., 2023) suggests that k varies between 2.0 and 2.6 for the 72 offshore wind farms.
Subsequently, a simplified model of a wind turbine power curve, P, as function of the wind speed, U, is defined as
Here, Pr is rated electric wind turbine power generation and Ur is the wind speed at which rated power is achieved. Furthermore, ρ=1.225 kg m−3 is the air density, CP is the constant below-rated power coefficient, and D is the rotor diameter. The wind turbine model does not have a cut-in, Ucut-in, and cut-out wind speed, Ucut-out. For the energy yield calculations, this simplification holds if . In Simão Ferreira et al. (2026), values of k=2.4 and CP=0.46 are assumed for all sites.
The integration of the power curve and Weibull distribution, normalized by the rated power, leads to the capacity factor of a single turbine, which can be expressed as function of and k:
with Γic as the incomplete Gamma function. The equation for Cf,0 multiplied by a loss factor for losses unrelated to wake effects, floss, is the analytical upper limit that Simão Ferreira et al. (2026) propose, though this is not clearly stated in their work and often misunderstood by readers of their work. Hence, the limit represents a normalized gross AEP × floss. The variable x is a parametric variable in Eq. (3) which gives a single line for a fixed k, which is explained in more detail in Sect. 5. This variable can also be defined as the ratio of , using the constant from Eq. (1). Furthermore, Eq. (3) is reused several times by Simão Ferreira et al. (2026) (their Eqs. 12, 13, and 16), but it is the same as Eq. (3) with different x definitions.
For an infinite wind farm with uniform turbine spacing, the model of Frandsen (1992) and Sørensen and Larsen (2021) can be used to calculate the corresponding wake loss:
with κ=0.4 as the von Kármán constant, G as the geostrophic wind speed, f as the Coriolis parameter based on the wind farm latitude, h as the turbine hub height, m as the offshore roughness length, CT=0.75 as a constant turbine thrust coefficient, and s as the turbine spacing normalized by the rotor diameter, which depends on the wind farm area, Awf, and the total number of turbines in the wind farm, Ntot. It should be noted that the use of constant thrust and power coefficients are not realistic assumptions. For large wind farms, , one can express the normalized turbine spacing in terms of installed wind farm power, Pwf, per unit area: . Equation (4) can be used to calculate the geostrophic wind speed using an iterative numerical method by setting CT=0. Furthermore, Eq. (4) can be used to calculate the capacity factor of an infinite wind farm Cf,∞ by the substitution of in Eq. (3). The latter is an analytical model for the lower limit of the wind farm capacity factor. It should be noted that the infinite wind farm wake loss may never be reached for a large finite wind farm. For example, Volker et al. (2017) showed that a wind farm covering an area of 105 km2 has not yet reached a wake loss limit. The latter was obtained from mesoscale simulations including a simplified wind farm model representing a square wind farm using a wind farm length of 338 km, and a range of uniform turbine spacing and wind climates. Furthermore, alternative infinite wind farm models exist, as, for example, the model of Calaf et al. (2010), who suggested modification of the model of Frandsen (1992), based on large-eddy simulations of infinite wind farms using finite wind farms with lateral periodic boundary conditions. These infinite wind farm models rely on a geostrophic draw law that is commonly expressed by two constants (A and B), which can be shown to depend on atmospheric conditions, as atmospheric stability (Floors et al., 2023), boundary layer height (van der Laan et al., 2020), and capping inversion (Liu et al., 2021).
Simão Ferreira et al. (2026) introduced the wind farm wind factor, , which represents in Eq. (3). The wind farm wind factor corrects the mean wind speed or Weibull-scale parameter to account for wake losses. It is well known that wake losses are strongly dependent on atmospheric conditions, such as ambient turbulence intensity and atmospheric stability (Porté-Agel et al., 2020). Therefore, one can argue that the collapse of the wake losses into a single variable, ϕ, may not be possible. It should be noted that ε in ϕ is the wake loss for a finite wind farm. An additional model is required to calculate the capacity factor of a finite wind farm, Cf, from Cf,0 and Cf,∞, and this is discussed in detail in Sect. 3. Furthermore, Simão Ferreira et al. (2026) also included external wind farm wake losses in their finite correction model. Simão Ferreira et al. (2026) set Cf equal to Eq. (3) and solved for x using a numerical root finding method, from which ϕ can be calculated. An important realization is that for ε=1, we obtain the normalized gross wind farm AEP limit that is referred to as the theoretical limit in Simão Ferreira et al. (2026), which is often misunderstood by readers of this work.
Although not mentioned by Simão Ferreira et al. (2026), cut-in and cut-out wind speeds of 3 and 25 m s−1 are employed when calculating the wind farm capacity factor (shown in Fig. 3 and listed in Table S1 by Simão Ferreira et al., 2026) using a wind turbine power curve model with cut-in and cut-out wind speeds, as used by Sørensen and Larsen (2021). Furthermore, a model of the thrust coefficient above rated wind speed is employed using a decay exponent 3.2, as discussed in van der Laan et al. (2022). However, the cut-in and cut-out wind speeds and associated models of the power curve and thrust coefficient are not used when calculating the wind farm wind factor ϕ.
The model summarized in Sect. 2 can provide two values of the capacity factor, representing a normalized gross AEP, Cf,0, and a capacity factor including wake losses for an infinite wind farm, Cf,∞. These values provide analytical bounds of the capacity factor of a finite wind farm. Sørensen and Larsen (2021) introduced a model to interpolate between Cf,0 and Cf,∞ to obtain a capacity factor of a finite wind farm, Cf:
with w as a weight determined from the ratio of freestream turbines, Nfree, to the total number of turbines. The problem with this method is that the weight has a large impact on Cf and it is not trivial to obtain the weight for real finite wind farms that range in size and can have irregular shapes, as well as non-uniform turbine spacing. Sørensen and Larsen (2021) determined Nfree by assuming a square regular turbine layout, , and initially proposed a=3, later revised to a value between 4.1 and 5.9 (Sørensen et al., 2024) based on a fit using an engineering wake model applied to six offshore wind farms. This gave a corresponding average value of a=5.3. One problem with this method is that the weighting variable can become larger than one for a wind farm with fewer turbines than a2 (i.e., fewer than 29 for a=5.3). Hence, one should limit the weight to one. In a non-peer-reviewed work, Simão Ferreira (2024) proposed an alternative approach by determining the weight as
where Mrows=2.5 and Mturbines is the number of wind farm edge turbines that operate in freestream conditions. It is not clear why the value of Mrows is set to 2.5. Simão Ferreira et al. (2026) determined Mturbines manually for a given wind farm layout, wind rose, and neighboring wind farms, and their results were provided in a database (Simão Ferreira, 2024). However, a scientific method was not provided, meaning that one cannot reproduce the results given in Simão Ferreira (2024). In this work, we have made an attempt to automate the manual method by calculating Mturbines as follows, performed for each wind farm layout as follows.
-
A concave polygon shape is fitted to determine the edge turbine and the connections between them.
-
An outward normal vector for each edge turbine is calculated by taking the average of the outward normal vectors of the neighboring connecting edge lines.
-
For each wind direction sector, l, with steps of 30°, the dot product of the wind direction vector (representing the sector midway direction, ), with the turbine outward normal vectors, , is calculated, and the inflow edge turbines, Mturbines,l, are flagged for .
-
The inflow edge turbines are removed if they are in the shadow of an upstream wind farm located within a distance L using a ray casting method.
-
The number of remaining inflow edge turbines for all sectors is aggregated using a wind rose frequency, fl; .
The wind rose is taken from the Global Wind Atlas 4.0 (Davis et al., 2023). The wind farm layouts are obtained from the Open European offshore wind turbine database (Fischereit et al., 2025) with the exception of the Fryslân offshore wind farm layout, which is taken from the Open Street Map database (OpenStreetMap contributors, 2026).
Figure 1Example of the automated method for determining the number of freestream edge turbines, Mturbines, of the Amrumbank West offshore wind farm. (a) Without considering neighboring wind farms, (b) considering neighboring wind farms. The black arrows are the turbine outwards normal vectors and the magenta arrow is the wind direction set to 240°.
Figure 2Results of automated model correction for finite wind farms compared to Simão Ferreira et al. (2026). Community Comment 4 (Simão Ferreira, 2026) did not calculate results of Baltic 1, Baltic 2, Princess Amalia, and Luchterduinen.
An example of our automatic method is shown in Fig. 1, where the Amrumbank West offshore wind farm layout is used. Figure 1a depicts a concave polygon (although it has become convex for the present example), the edge turbines, and the obtained freestream turbines for a wind direction of 240°, namely, Mturbines=16. It is clear that the polygon does not find all edge turbines at the eastern side of the farm, and this is related to the fact that a concave polygon requires an additional parameter that determines how tightly the polygon follows the wind farm layout shape, meaning that the number of edge turbines is not unique and user dependent. The Amrumbank West wind farm is part of the N4 wind farm cluster, and the upstream neighboring wind farms are used to filter the freestream turbines if they are located in their wake with a distance , which reduces Mturbines to 8. These steps are then repeated for all 12 sectors and the results are averaged using weights from the wind rose frequency leading to Mturbines=11.3. The manual method of Simão Ferreira et al. (2026) reported Mturbines=15 in Simão Ferreira (2024) for this wind farm.
The results of our automated method are compared with the results of the manual method of Simão Ferreira et al. (2026) in terms of the ratio of freestream turbines to the total number of turbines in Fig. 2. Our results are shown including and excluding upstream wind farms (Step 4). Our automated method has been further developed by the original authors, published as Community Comments 4 (Simão Ferreira, 2026), and the results are shown in Fig. 2. The further developments include a reduction in Mrows for wind farms smaller than 25 wind turbines, special treatment of several wind farms that have inter-twined layouts or large gaps, and the use of 36 wind direction sectors. In addition, the results of the analytical method of Sørensen et al. (2024) with a=5.3 are also shown in Fig. 2. Sørensen et al. (2024) never intended to use their method for including effects of the wind rose and neighboring wind farms; therefore, the comparison of their model results shown in Fig. 2 should not be compared directly with the other results. Overall, our method replicates the trends of Simão Ferreira et al. (2026) when taking upstream wind farms into account. However, there are also large differences, for example, for the Anholt offshore wind farm, possibly because many turbines are located at the edge of the farm. The results of Community Comment 4 (Simão Ferreira, 2026) show that the original authors are not able to reproduce the results of their own ad hoc finite correction factor; large differences (above 30 %) are obtained for 20 wind farms: Anholt, DanTysk, Nordsee Ost, Hohe See, Veja Mate, Bard, Gode 1 and 2, Borkum Riffgrund I, Borkum Riffgrund II, Trianel I and II, Merkur, Riffgat, Rentel, London Array, Galloper, East Anglia One, Dudgeon, and Triton Knoll. This shows that the ad hoc method of finite correction factor of Simão Ferreira et al. (2026) remains non-reproducible. The impact of the different methods of obtaining Nfree is large and is described in Sect. 5
It should be noted that we do not recommend our automated method to be used as a correction for finite wind farms situated in a wind farm cluster. For example, it is not trivial to determine the distance, L, at which upstream wind farm wakes should be taken into account. In addition, the original model from Frandsen (1992) and Sørensen and Larsen (2021) was developed for uniformly spaced wind farms excluding effects of the wind rose, wind farm layout, and upstream wind farms. In our opinion, a better application of the model is to include a wind farm cluster as one large wind farm with an effective turbine spacing, although the results may not compare well with higher fidelity models.
The model from Simão Ferreira et al. (2026) is implicit, but it can be shown that a simple explicit expression for ε∞ and ϕ can be derived when the model is applied to the 72 wind farms. These simplifications are not used in the model validation of Sect. 5. However, it allows us to better understand the main model parameters.
The equation for the infinite wind farm wake loss (Eq. 4) is implicit due to the need for solving the geostrophic drag law (Eq. 4 using CT=0). However, for the 72 offshore wind farms investigated by Simão Ferreira et al. (2026), ε∞ can be approximated with a simple explicit expression, which was not shown in their work:
Here, the only remaining variable is the normalized turbine spacing, s. The simple expression approximates Eq. (4) to within 2.3 % for all 72 wind farms, and a comparison with the model results are shown in Fig. 3. The reason why this simplification can be made is because Simão Ferreira et al. (2026) used constant values for the roughness length and thrust coefficient. Furthermore, the latitudes of the all investigated wind farms are similar (between 50.7 and 58.5°) leading to Coriolis parameters in the range between and s−1. In addition, the ratio of hub height to roughness length, , and the ratio of the geostrophic wind speed to hub height, , are very similar in logarithmic space for the 72 wind farms, leading to values in the range between and , with corresponding mean values δ=13.7 and γ=3.01, respectively. The mean values of δ and γ, together with the parameters that are chosen as constants by Simão Ferreira et al. (2026), are used to obtain c1 and c2. It should be noted that for much taller turbines, i.e., h≫100 m, the approximation may not hold.
Figure 3Comparison of model results of Simão Ferreira et al. (2026) and simplified expression (Eq. 7) for the infinite wind farm wake loss, ε∞.
Figure 4Comparison of model results of Simão Ferreira et al. (2026) and simplified expression (Eq. 8) of the wind farm wind factor, ϕ.
The wind farm wind factor, ϕ, is solved numerically by Simão Ferreira et al. (2026), by setting Cf equal to Eq. (3). However, one can show that for the present database of 72 offshore wind farms, ϕ can be approximated with the following explicit relationship using ε∞ from Eq. (7):
A comparison of ϕ using the implicit method of Simão Ferreira et al. (2026) and our explicit expression of Eq. (8) is shown in Fig. 4. The maximum difference with the implicit calculation method of Simão Ferreira et al. (2026) is 6 %. This shows that the main parameters to calculate ϕ are the finite wind farm correction factor and the normalized turbine spacing s, which is further motivated from the fact that is often of the order of 1.
Figure 5Measured capacity factor as function of modeled wind farm wind factor, ϕ, using different models of the finite wind farm corrections.
Figure 6Measured vs. modeled capacity factor as using different models for Nfree compared to Simão Ferreira et al. (2026).
Simão Ferreira et al. (2026) validated their model with measured capacity factors from 72 offshore wind farms. It is important to note that these measured capacity factors include losses from wake effects and any other losses, such as grid losses, curtailment, and turbine availability. The main validation was performed by plotting the net measured capacity factor as a function of the wind farm wind factor , where Ur is the rated wind speed (Eq. 2), U0 is the mean wind speed (Eq. 1), and ε is the modeled wake loss for a finite wind farm. Figure 5 depicts four results for ϕ, where the model implementation of Sørensen et al. (2024) (MinimalisticPredictionModel) in PyWake v2.6.18 (Pedersen et al., 2023) is employed, and with different models of the finite wind farm correction in terms of Nfree. The first model results in Fig. 5 (red dots) employ the ad hoc finite correction factor of Simão Ferreira et al. (2026) and replicate their original results (Table S1 of Simão Ferreira et al. (2026)), as shown in Appendix A. We disregard the results of four wind farms, Baltic 1, Baltic 2, Princess Amalia, and Luchterduinen, because their measured capacity factors were only available in pairs (Baltic 1 – Baltic 2 and Princess Amalia – Luchterduinen), not individually. Figure 5 also includes the normalized analytical model gross AEP (Eq. 3 using x as a parametric variable) and the corresponding analytical model result × a loss factor of 0.9. The model only determines the location of x in Fig. 5. However, since the model is heavily dependent on the model correction for finite wind farms, , this x location can vary between ε=1 (no wake losses, Nfree=Ntot) and ε=ε∞ (infinite wind farm wake losses, Nfree=0). The latter is depicted as a model range in Fig. 5, which shows that the model of the finite wind farm correction has a large influence on ϕ. The left and right error bar symbols reflect no wake losses and infinite wind farm wake losses. This means that a data point moves to the right and can even cross the normalized analytic gross AEP for Nfree→0. The fact that a data point can cross the normalized gross AEP is a serious issue with the validation presented by Simão Ferreira et al. (2026). If one would make sure to calibrate the model to get the correct asymptotic behavior where a data point would lie on top of the normalized gross AEP for ε=1, then most of the data points would move to the left, significantly deteriorating the validation against the line representing a loss factor of 0.9. Figure 5 depicts three more results for ϕ. The green squares represent results from our automated script for calculating Nfree, as discussed in Sect. 3, which results in a larger spread of the x values in Fig. 5. Results of the updated automated script from Community Comment 4 (Simão Ferreira, 2026) are largely the same as our results of the automated script. Finally, we use the analytic Nfree model of Sørensen et al. (2024) (black triangles), which results in lower ϕ values and an even larger spread in the model results.
The four model results of Fig. 5 are also depicted in Fig. 6 and are plotted against the measured net capacity factor. These results are fitted with a linear relationship, which shows how the r2 value decreases when going from the manual Nfree method of Simão Ferreira et al. (2026) (Fig. 5a) to our automated method (Fig. 5b). Furthermore, the updated Nfree method of Community Comment 4 (Simão Ferreira, 2026) (Fig. 5c) does not replicate the high r2 value of 0.87 quoted in their original work (and shown in Fig. 5a). The r2 values are the lowest for the Nfree method of Sørensen et al. (2024) (Fig. 5d). Here, we remind the reader that Sørensen et al. (2024) never intended to use their method to include effects of the wind rose and neighboring wind farms, and hence, it is expected to obtain a large spread.
While the model can provide analytical bounds of the wind farm capacity factor representing no wake losses and infinite wind farm wake losses using a simple model, one should be careful when applying the model to finite wind farms. The large sensitivity of Nfree, as shown in Figs. 5 and 6, makes it impossible to draw strong conclusions about a limit for finite wind farms.
In this work, we have discussed a number of concerns regarding the paper of Simão Ferreira et al. (2026). We have shown that the proposed limit of the wind farm capacity factor from Simão Ferreira et al. (2026) is not a theoretical limit but should be considered a limit obtained from a simple analytical model of normalized gross AEP multiplied by a loss factor. The application of the model to the 72 offshore wind farms and choice of model parameters by Simão Ferreira et al. (2026) reveal two main model parameters, namely, the wind turbine spacing and the finite wind farm correction. The latter is a very sensitive model parameter that dominates the model results and validation with net measured capacity factors. Furthermore, the finite wind farm correction applied in Simão Ferreira et al. (2026) (as briefly discussed in a non-peer-reviewed work of Simão Ferreira, 2024) is an ad hoc manual method that is not well described, and we were not able to reproduce the results with an automated method. The original authors were also unable to reproduce their manual results with an updated version of the automated method, as published in their Community Comments (Sørensen et al., 2026; Simão Ferreira, 2026). Given the sensitivity of the model to finite wind farm correction, it is impossible to use the model to assess national policies regarding the capacity factors of planned offshore wind farms. Finally, the Dutch national policy is even more difficult to assess due to the range of capacity factors and wind farm densities mentioned in the references provided by Simão Ferreira et al. (2026).
The original work of Simão Ferreira et al. (2026) did not provide a code and a complete list of input variables. We verify our implementation by taking the difference between our results and the reported results listed in Table S1 of Simão Ferreira et al. (2026), in terms of the modeled wind farm capacity factor and wind farm wind factor. We use the same input variables as clarified in the community comments (Sørensen et al., 2026; Simão Ferreira, 2026), including the ad hoc finite correction factor, and the results of the manual wind farm specific finite correction factor from Simão Ferreira (2024). Figure A1 shows that the obtained differences are of the order of expected rounding errors since the published results of Simão Ferreira et al. (2026) contain three digits.
Figure A1Difference between our model results and results of Simão Ferreira et al. (2026) Table S1 in terms of modeled wind farm capacity factor, Cf (a), and wind farm wind factor, ϕ (b).
The Python script used to generate the plots is available at Zenodo (https://doi.org/10.5281/zenodo.21370569; van der Laan, 2026).
MPVDL performed the model calculations, introduced the model simplifications, created the automated method of the finite wind farm correction, drafted the article, and produced the figures. SW analyzed the 72 wind farms, produced a preliminary result of Fig. 6d, and investigated the Dutch national policy case. All authors contributed to the discussions, methodology, and finalization of the paper.
The contact author has declared that neither of the authors has any competing interests.
Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.
We would like to thank Jake Badger for his feedback on the initial draft of this work.
This paper was edited by Paul Veers and reviewed by three anonymous referees.
Calaf, M., Meneveau, C., and Meyers, J.: Large eddy simulation study of fully developed wind-turbine array boundary layers, Phys. Fluids, 22, 015110, https://doi.org/10.1063/1.3291077, 2010. a
Davis, N. N., Badger, J., Hahmann, A. N., Hansen, B. O., Mortensen, N. G., Kelly, M., Larsén, X. G., Olsen, B. T., Floors, R., Lizcano, G., Casso, P., Lacave, O., Bosch, A., Bauwens, I., Knight, O. J., Potter van Loon, A., Fox, R., Parvanyan, T., Krohn Hansen, S. B., Heathfield, D., Onninen, M., and Drummond, R.: The Global Wind Atlas: A High-Resolution Dataset of Climatologies and Associated Web-Based Application, Bull. Am. Meteorol. Soc., 104, E1507–E1525, https://doi.org/10.1175/BAMS-D-21-0075.1, 2023. a, b
Fischereit, J., Schaldemose Hansen, K., Larsén, X. G., van der Laan, M. P., Réthoré, P.-E., and Murcia Leon, J. P.: Comparing and validating intra-farm and farm-to-farm wakes across different mesoscale and high-resolution wake models, Wind Energ. Sci., 7, 1069–1091, https://doi.org/10.5194/wes-7-1069-2022, 2022. a
Fischereit, J., Vollmer, L., and Hansen, A.: Open European offshore wind turbine database, Zenodo, https://doi.org/10.5281/zenodo.17311571, 2025. a
Fitch, A. C., Olson, J. B., Lundquist, J. K., Dudhia, J., Gupta, A. K., Michalakes, J., and Barstad, I.: Local and Mesoscale Impacts of Wind Farms as Parameterized in a Mesoscale NWP Model, Mon. Weather Rev., 140, 3017–3038, https://doi.org/10.1175/MWR-D-11-00352.1, 2012. a
Floors, R., Troen, I., and Peña, A.: Using Observed and Modelled Heat Fluxes for Improved Extrapolation of Wind Distributions, Bound.-Lay. Meteorol., 188, 75–101, https://doi.org/10.1007/s10546-023-00803-3, 2023. a
Frandsen, S.: On the wind speed reduction in the center of large clusters of wind turbines, J. Wind Eng. Ind. Aerod., 39, 251–265, https://doi.org/10.1016/0167-6105(92)90551-K, 1992. a, b, c, d
Liu, L., Gadde, S. N., and Stevens, R. J.: Geostrophic drag law for conventionally neutral atmospheric boundary layers revisited, Quarterly J. Roy. Meteorol. Soc., 147, 847–857, https://doi.org/10.1002/qj.3949, 2021. a
OpenStreetMap contributors: Distributed under the Open Database License (ODbL), https://planet.openstreetmap.org/ (last access: 29 September 2026), 2026. a
Pedersen, M. M., Meyer Forsting, A., van der Laan, P., Riva, R., Alcayaga Romàn, L. A., Criado Risco, J., Friis-Møller, M., Quick, J., Schøler Christiansen, J. P., Valotta Rodrigues, R., Olsen, B. T., and Réthoré, P.-E.: PyWake 2.5.0: An open-source wind farm simulation tool, DTU Wind and Energy Systems, https://gitlab.windenergy.dtu.dk/TOPFARM/PyWake (last access: 16 September 2026), 2023. a
Porté-Agel, F., Bastankhah, M., and Shamsoddin, S.: Wind-Turbine and Wind-Farm Flows: A Review, Bound.-Lay. Meteorol., 174, 1–59, https://doi.org/10.1007/s10546-019-00473-0, 2020. a
Simão Ferreira, C.: Offshore wind farm energy production database, 4TU.ResearchData, https://doi.org/10.4121/ff8c99b5-c273-4ae0-9c82-4ade1391813a.v1, 2024. a, b, c, d, e, f
Simão Ferreira, C.: Community Comment 4, CC1: Comment on wes-2026-59, https://doi.org/10.5194/wes-2026-59-CC4, 2026. a, b, c, d, e, f, g, h
Simão Ferreira, C., Larsen, G. C., and Sørensen, J. N.: A theoretical upper limit for offshore wind energy extraction, Cell Rep. Sustain., 3, 1–19, https://doi.org/10.1016/j.crsus.2025.100573, 2026. a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, aa, ab, ac, ad, ae, af, ag, ah, ai, aj, ak, al, am, an, ao, ap, aq, ar, as, at, au, av, aw, ax, ay, az, ba, bb, bc, bd, be, bf, bg, bh, bi, bj
Sørensen, J. N., Simão Ferreira, C., and Larsen, G. C.: Community Comment 1, CC4: Comment on wes-2026-59 – Executable Reproducibility Notebook for the Rebuttal, https://doi.org/10.5194/wes-2026-59-CC1, 2026. a, b, c
Sørensen, J. N. and Larsen, G. C.: A Minimalistic Prediction Model to Determine Energy Production and Costs of Offshore Wind Farms, Energies, 14, https://doi.org/10.3390/en14020448, 2021. a, b, c, d, e, f
Sørensen, J. N., Garcia, A. M. I., Larsen, G. C., Pedersen, M. M., and Fournely, D.: Extension and Validation of Minimalistic Prediction Model to Determine the Energy Production of Offshore Wind Farms, J. Phys. Conf. Ser., 2767, 092022, https://doi.org/10.1088/1742-6596/2767/9/092022, 2024. a, b, c, d, e, f, g
van der Laan, M. P.: Python script and input data for Wind Energy Science article: Comment on “A theoretical upper limit for offshore wind energy extraction” by Simão Ferreira et al. (2026), Zenodo [code], https://doi.org/10.5281/zenodo.21370569, 2026. a
van der Laan, M. P., Kelly, M., Floors, R., and Peña, A.: Rossby number similarity of an atmospheric RANS model using limited-length-scale turbulence closures extended to unstable stratification, Wind Energ. Sci., 5, 355–374, https://doi.org/10.5194/wes-5-355-2020, 2020. a
van der Laan, M. P., Andersen, S. J., Réthoré, P.-E., Baungaard, M., Sørensen, J. N., and Troldborg, N.: Faster wind farm AEP calculations with CFD using a generalized wind turbine model, J. Phys.: Conf. Ser., 2265, 022030, https://doi.org/10.1088/1742-6596/2265/2/022030, 2022. a
Volker, P. J. H., Hahmann, A. N., Badger, J., and Jørgensen, H. E.: Prospects for generating electricity by large onshore and offshore wind farms, Environ. Res. Lett., 12, 034022, https://doi.org/10.1088/1748-9326/aa5d86, 2017. a, b
- Abstract
- Introduction
- Model definition
- Model correction for finite wind farms
- Model simplifications and main parameters
- Model validation
- Conclusions
- Appendix A: Model verification using the ad hoc finite correction factor
- Code and data availability
- Author contributions
- Competing interests
- Disclaimer
- Acknowledgements
- Review statement
- References
- Abstract
- Introduction
- Model definition
- Model correction for finite wind farms
- Model simplifications and main parameters
- Model validation
- Conclusions
- Appendix A: Model verification using the ad hoc finite correction factor
- Code and data availability
- Author contributions
- Competing interests
- Disclaimer
- Acknowledgements
- Review statement
- References