Search NASA⌕ Search

Engineering topics

Mudafort, Rafael

Publications and source records attributed to Mudafort, Rafael.

WETO Software Stack Best Practices

Wind energy researchers typically share one key characteristic: a passion for increasing wind energy in the global energy mix. The U.S. Department of Energy (DOE) supports this mission in a number of ways including allocating funding directly to various aspects of wind energy research through the Office of Energy Efficiency and Renewable Energy (EERE) via the Wind Energy Technologies Office (WETO). While the traditional output of research is academic publication, software development efforts are increasingly a major focus. Software tools in the research environment allow researchers to describe an idea and quickly increase the scope and scale as they study it further. As a product of research, these tools represent a direct pipeline from researcher to industry practitioners since they are the implementation of ideas described in academic publications. Given this vital role in wind energy research and commercial development, the broad research software portfolio supported by WETO must maintain a minimum level of quality to support the wind energy field in the growing transition to renewable energy. This report outlines a series o f best practices to be adopted by all WETO-supported software projects, as well as expectations that the communities interacting with these projects should have of the developers and tools themselves. Wind energy research software has a unique standing in the field of scientific software. The stakeholders are varied with a subset being: (1) DOE EERE leadership, (2) DOE WETO leadership and program managers, (3) National lab leadership, (4) Associated project principle investigators, (5) Research software engineers, (6) Wind energy researchers in academia (including graduate students, post docs, and national lab staff), (7) Industry researchers and practitioners, (8) Commercial software developers, and (9) The general public interested in wind energy. These software are typically the end-user of other generic software libraries, so the funding cycles are often tied to applied research rather than the development of the software itself. Since the developers are also wind energy researchers, these tools are typically designed in a way that closely resembles the application in which they're used. Additionally, the expertise and incentives for the developers have a high variability, and often neither are aligned with software engineering or computer science. Given the unique environment in which wind energy research software is produced and consumed, it is critical for model owners to understand the context of their software. A framework for developing this understanding is to answer the following questions of a given software project: What is it's purpose? What is its role in the field of wind energy? What is the profile of the expected users? For how long will it be relevant? What is the expected impact? These questions allow model owners to identify the appropriate methods for the design, development, and long term maintenance of their software. Additionally, the answer provide context for future planners to understand why particular decisions were made and discern the consequences of changing course. The information is aggregated from experience within WETO-supported software development groups as well as external organizations and efforts to define the craft of research software engineering. These best practices aim to make the collaborative development process efficient and effective while improving the model understanding across stakeholders. Additionally, the general adoption of a common framework for software quality ensures that the end users of WETO software can trust these tools and accurately understand the risks to workflow integration.

17 WIND ENERGY↗

WETO Stack [SWR-24-81]

The WETO Stack software is a collection of data, data analysis scripts, and website content produced through the Holistic Modeling Project’s Portfolio Coordination task. The purpose of the software is to characterize the collection of wind energy software projects supported by the U.S. Department of Energy’s Wind Energy Technologies Office. The included data contains characteristics of the actively funded software projects, and the data analysis scripts provide insights into the breadth, depth, and maturity of the collection of software projects. The website content presents the results of the analyses as well as reports from workshops and other events. It can be viewed at https://nrel.github.io/WETOStack/index.html.

Mudafort, Rafael↗

Comparison of steady-state analytical wake models implemented in wind farm analysis software

A common set of mathematical wind turbine wake models are implemented in a few, well-adopted computational tools for wind farm wake modelling. Although the referenced mathematical formulations are common, implementation details may lead to differences in results. This study presents a systematic comparison of the implementation of mathematical wake models in open source, Python-based wind turbine wake modelling software, and a set of the models are directly compared. Despite aligning only the mathematical model parameters and retaining the default computational model parameters, good agreement is found across most of the model implementations, and additional agreement is expected upon further parameters alignment.

17 WIND ENERGY↗

FLORIS v3.5 Wake Modeling and Wind Farm Controls Software [SWR-17-43 and SWR-14-20]

FLORIS is a controls-focused wind farm simulation software incorporating steady-state engineering wake models into a performance-focused Python framework. It has been in active development at NREL since 2013 and the latest release is FLORIS v3.5.Online documentation is available at https://nrel.github.io/floris. The software is in active development and engagement with the development team is highly encouraged. If you are interested in using FLORIS to conduct studies of a wind farm or extending FLORIS to include your own wake model, please join the conversation in GitHub Discussions! https://www.nrel.gov/wind/floris.html

Fleming, Paul↗

Wcomp (Wind Farm Wake Comparison Framework) [SWR-23-72]

The Wind Farm Wake Comparison Framework (Wcomp) is a software tool to facilitate the comparison of a specific collection of wind farm wake modeling tools: Python-based, steady-state, analytical wake modeling utilities. Wcomp integrates another software project, windIO, to create a consistent method for describing a wind farm flow control problem. Additionally, a data structure is included to represent the outputs a wind farm flow control simulation. Well-described interfaces allow existing wake modeling tools to plug into this framework.

Mudafort, Rafael↗

OpenTurbine [SWR-23-07]

OpenTurbine is an open-source code designed for the simulation of wind turbine structural dynamics. It is a flexible multi-body dynamics solver wherein the wind turbine is modeled as a collection of beam finite elements, rigid bodies, and constraints. OpenTurbine is equipped with an application programming interface primarily designed for coupling to computational fluid dynamics codes, but it is also suited for coupling to aerodynamics solvers based on blade element momentum theory.

Sprague, MichaelA.↗

kynema-fmb [SWR-23-07]

Kynema-FMB (FKA: Kynema) is an open-source performance portable flexible multibody (FMB) dynamics solver designed for time-domain simulations. While originally tailored for wind turbine structural dynamics, the formulation and implementation are those of a general flexible-multidbody dynamics solver that can readily be applied to a wide range of systems. Kynema was designed with a narrow focus, namely to provide a lightweight, fast, accurate FMD solver for coupling to computational-fluid-dynamics (CFD) codes, especially the CFD codes in the Kynema suite, for fluid-structure-interaction (FSI) simulations. Kynema-FMB is equipped to model systems that can be represented as a collection of beams and rigid bodies that are connected through constraints. Degrees of freedom are defined in the inertial/global frame of reference and include displacements and rotations (formally as rotation matrices, but stored as quaternions). The underlying formulation is built on a Lie-group time integrator designed for index-3 differential-algebraic equations, which is second-order accurate in time (Bruls et al., 2012). Beam models are based on geometrically exact beam theory and are discretized as high-order spectral finite elements similar to those in BeamDyn (Wang et al., 2017). The governing equations for a FMD system like a wind turbine constitute a highly nonlinear system of constrained partial-differential equations. Kynema-FMB uses analytical Jacobians in the nonlinear-system solves in each time step. Linear systems use sparse storage and several third-party sparse-linear-system solvers are enabled. Ill conditioning of linear systems is mitigated with preconditioning described in Bottasso et al, 2008. Kynema-FMB is integrated with a simple open-source controller (ROSCO). There is an application programming interface (API) for coupling to geometry-resolved CFD (like that in Sharma et al., 2023) and actuator-force CFD (like that in Kuhn et al., 2025). In the latter, for actuator-line models, Kynema-FMB includes an internal blade-element solver that depends on user-provided lookup tables for coefficients of lift and drag, i.e., aerodynamic polars. Kynema-FMB is written in C++ and leverages Kokkos and Kokkos-Kernels (KokkosEcosystem) as its performance portability layer enabling simulations on both CPU and GPU systems. The repository is equipped with extensive automated testing at the unit and regression/system levels. The following describes the high-level development objectives conceived for Kynema: *Kynema will follow modern software development best practices, including test-driven development (TDD), version control, hierarchical automated testing, and continuous integration (CI) for a robust development environment. *The core data structures are memory efficient and enable vectorization and parallelization at multiple levels. *Data structures are data-oriented to exploit methods for accelerated computing including high utilization of chip resources (e.g., single instruction multiple data (SIMD) instruction sets) and parallelization using GP-GPUs. *The computational algorithms incorporate robust open-source libraries for mathematical operations, resource allocation, and data management. *The API design considers multiple stakeholder needs and ensure integration with existing and future ecosystems for data science, machine learning, and AI. *Kynema-FMB is written in modern C++ and leverages Kokkos as its performance-portability library with inspiration from the kynema stack.

Sprague, MichaelA.↗

Serial-Refine Method for Fast Wake-Steering Yaw Optimization

In this paper we present the Serial-Refine method for quickly finding the optimal yaw angles in wake steering. The method optimizes turbine angles serially from upstream to downstream using a small number of candidate angles. The presented results show that Serial-Refine finds solutions that are at least as good as former conventional optimization approaches but that require much less computation time.

17 WIND ENERGY↗

Airborne Wind Energy

Airborne wind energy (AWE) is “the conversion of wind energy into electricity using tethered flying devices”. Pursuit of AWE and airborne wind energy systems began in 1980. Interest and investment in AWE have grown substantially in the last decade, with approximately 70 active research entities including over 20 technology developers globally. This report describes technical analyses of various aspects of AWE and insight gained from dedicated outreach provided to the U.S. Department of Energy’s Wind Energy Technologies Office to underpin its response to the congressional request in the Energy Act of 2020 for a report on the “potential for, and technical viability of, airborne wind energy systems to provide a significant source of energy in the United States.”

17 WIND ENERGY↗

Control-Oriented Model for Secondary Effects of Wake Steering

This paper presents a model to incorporate the secondary effects of wake steering in large arrays of turbines. Previous models have focused on the aerodynamic interaction of wake steering between two turbines. The model proposed in this paper builds on these models to include yaw-induced wake recovery and secondary steering seen in large arrays of turbines when wake steering is performed. Turbines operating in yaw-misaligned conditions generate counter-rotating vortices that entrain momentum and contribute to the deformation and deflection of the wake at downstream turbines. Rows of turbines can compound the effects of wake steering that benefit turbines far downstream. This model quantifies these effects and demonstrates that wake steering has greater potential to increase the performance of a wind farm due to these counter-rotating vortices especially for large rows of turbines. This is validated using numerous large-eddy simulations for three-turbine, five-turbine, and wind farm scenarios.

17 WIND ENERGY↗

Overview of FLORIS updates

In this paper, we review updates made to the FLORIS (FLOw Redirection and Induction in Steady State) open-source framework for wind farm control modeling, design and analysis. The updates are focused on improvements for large arrays of turbines - including heterogenous inflows and incorporating second-order wake steering effects - design, and analysis tools for practical application of wind farm control, and improvements to the software architecture for best practices in modularization and cooperative development.

17 WIND ENERGY↗

Toward flow control: An assessment of the curled wake model in the FLORIS framework

In this work, a new controls-oriented wake model is modified and compared to an analytical Gaussian wake model, high-fidelity simulation data, and experimental wind tunnel campaign. This model, called the curled wake model, captures a wake phenomenon that occurs behind yawed turbines, modeled as a collection of vortices shed from the rotor plane. Through turbine simulations, these vortices are shown to have a significant impact on the prediction of the wake steering's performance. Overall, the results support the concept of secondary steering, or a yawed turbine's ability to deflect the wake of a downstream turbine, and suggest that future turbine wake studies and yaw optimizations should include the curled wake phenomenon.

17 WIND ENERGY↗

Continued results from a field campaign of wake steering applied at a commercial wind farm – Part 2

This paper presents the results of a field campaign investigating the performance of wake steering applied at a section of a commercial wind farm. It is the second phase of the study for which the first phase was reported in Fleming et al. (2019). The authors implemented wake steering on two turbine pairs, and compared results with the latest FLORIS (FLOw Redirection and Induction in Steady State) model of wake steering, showing good agreement in overall energy increase. Further, although not the original intention of the study, we also used the results to detect the secondary steering phenomenon. Results show an overall reduction in wake losses of approximately 6.6 % for the regions of operation, which corresponds to achieving roughly half of the static optimal result.

17 WIND ENERGY↗