Welcome to TOPFARM
TOPFARM is a Python package developed by DTU Wind Energy that serves as a wind farm optimizer for both onshore and offshore wind farms. It uses the OpenMDAO package for optimization and wraps the PyWake package for easy computation of a wind farm’s Annual Energy Production (AEP).
In addition, it can compute other metrics such as the Internal Rate of Return (IRR) and Net Present Value (NPV) and utilizes different engineering wake models available in PyWake to perform the flow simulations.
What types of problems can TOPFARM solve?
Over the years, TOPFARM has become a highly versatile tool that is capable of solving several types of optimization problems with different design variables and objectives functions in mind. Throughout its development, TOPFARM has evolved from simple layout optimization problems to more complex and relevant wind farm optimization scenarios. Its capabilities and range were designed for both research and industry related topics. Today, TOPFARM can provide the user solutions in:
Wind farm layout optimization for different turbine types
Wind farm layout optimization for different turbine hub heights
Active control (wake steering) optimization
Load constrained layout optimization
Load constrained wake steering optimization
Optimization with bathymetry
LCoE-based layout optimization
Additionally, the objective function in TOPFARM can be formulated in economical terms, that is with the inclusion of several financial factors that are inherent in the wind farm design process. These can include the financial balance, foundation costs, electrical costs (cabling), fatigue degradation of turbine components and Operation and Management (O&M) costs.
The calculations for the wind farm interactions are done through PyWake, which is responsible for computing the wake losses and power production of both individual turbines and whole wind farms with the use of engineering wake models. In TOPFARM, the objective function is evaluated by the cost model component, and can be represented by either power production or financial goals.
TOPFARM comes with many built-in wake and cost models that were designed to accurately represent the optimization problem at hand. However, the tool is very flexible, and users are also able to perform custom optimizations as well.
For installation instructions, please see the Installation Guide. The base code is open-source and freely available on GitLab (MIT license).
Getting Started
The configuration of a TOPFARM problem can increase in complexity depending on the case study at hand. For the basic tool capabilities, please refer to the basic example section. The more elaborated wind farm optimization examples are shown in the advanced examples section. For new users, the User Guide provides detailed information about the components within TOPFARM and their description.
Can I get a private/commercial version of TOPFARM?
For proprietary developers, we offer the option of having a short-term private repository for co-development of cutting-edge plugins. Please contact the TOPFARM development team for further details.
How can I contribute to TOPFARM?
We encourage contributions from different developers. You can contribute by submitting an issue using TOPFARM’s Issue Tracker or by volunteering to resolve an issue already in the queue.
Citation
- If you are using TOPFARM, please cite it using:
Mads M. Pedersen, Mikkel Friis-Møller, Pierre-Elouan Réthoré, Ernestas Simutis, Riccardo Riva, Julian Quick, Nikolay Krasimirov Dimitrov, Jenni Rinker, & Katherine Dykes. (2025). DTUWindEnergy/TopFarm2: Release of v2.6.1 (v2.6.1). Zenodo. https://doi.org/10.5281/zenodo.17540961
or
1@software{mads_m_pedersen_2025_17540961,
2 author = {Mads M. Pedersen and
3 Mikkel Friis-Møller and
4 Pierre-Elouan Réthoré and
5 Ernestas Simutis and
6 Riccardo Riva and
7 Julian Quick and
8 Nikolay Krasimirov Dimitrov and
9 Jenni Rinker and
10 Katherine Dykes},
11 title = {DTUWindEnergy/TopFarm2: Release of v2.6.1},
12 month = nov,
13 year = 2025,
14 publisher = {Zenodo},
15 version = {v2.6.1},
16 doi = {10.5281/zenodo.17540961},
17 url = {https://doi.org/10.5281/zenodo.17540961},
18 swhid = {swh:1:dir:0b90c25a28df70dd7739ff61e9077571697874c5
19 ;origin=https://doi.org/10.5281/zenodo.3247031;
20 visit=swh:1:snp:1871c10015766a303da42aff0cbb412d38ac9652;
21 anchor=swh:1:rel:6a7020bd9717aabad26630b0c1dafde08447fe5b;
22 path=DTUWindEnergy-TopFarm2-fc9cb8d},
23}
Package Documentation
Contents
- Installation Guide
- User Guide
- Basic Examples
- Advanced Examples
- Turbine hub height optimization
- Unconstrained wake steering optimization
- Optimization with bathymetry and max water depth constraint
- Optimization with exclusion zones
- Grid layout optimization
- Nested turbine type specific optimization
- Turbine type and position optimization with type specific boundary constraints
- Smart start with different predefined turbine types
- Layout Optimization with SGD driver
- Optimization of wind farm including neighbouring turbines
- Joint Multi Wind Farm Optimization
- Cost Models
- Cables
- API Reference
Publications
- Tool Publications
- Theses
- Discrete optimization for down selection of positions in offshore wind farm layouts
- Coupled optimization of visual impact and LCOE of near-shore wind farms: Insights from a Danish case study
- Influence of wind turbine size on Levelized Cost of Energy of the offshore wind farm Energy Island Bornholm
- Influence of Global Warming Potential taxation on Levelized Cost of Energy and Life Cycle Assessment of Off-shore Wind Farms
- Wind farm production maximization using combined layout and wake steering optimization under load constraint
- Wind farm optimization to maximize AEP and energy density under loads constraints
- Layout optimization of floating offshore wind farms with shared anchors
- Cost optimization of catenary mooring for floating offshore wind farms using shared anchors with outlook to integration of this in farm design optimization
- Wind Farm Optimization Strategies
- Related Publications
- Wind Farm Layout Optimization Accounting for Uncertainty in Model Selection
- Optimizing the layout of floating wind farms in Crete: A combined LCOE and visual impact minimization
- Need For Speed: Fast Wind Farm Optimization
- Wind Farm Control Optimisation Under Load Constraints Via Surrogate Modelling
- Gradient-based wind farm layout optimization with inclusion and exclusion zones
- Speeding up large-wind-farm layout optimization using gradients, parallelization, and a heuristic algorithm for the initial layout
- Stochastic gradient descent for wind farm optimization
- Wind farm optimization with multiple hub heights using gradient-based methods
- Wind farm layout optimization with load constraints using surrogate modelling
- Integrated wind farm layout and control optimization
- Blade erosion in wind farm layout and/or control optimization
- Optimal open loop wind farm control