SHARPy: A dynamic aeroelastic simulation toolbox for very flexible aircraft and wind turbines

Aeroelasticity is the study of the dynamic interaction between unsteady aerodynamics and structural dynamics on flexible streamlined bodies, which may include rigid-body dynamics. Industry standard solutions in aeronautics and wind energy are built on the assumption of small structural displacements, which lead to linear or quasi-linear theories. However, advances in areas such as energy storage and generation, and composite material manufacturing have fostered a new kind of aeroelastic structures that may undergo large displacements under aerodynamic forces.

In particular, solar-powered High-Altitude Long-Endurance (HALE) aircraft have recently seen very significant progress.New configurations are now able to stay airborne for longer than three weeks at a time.Extreme efficiency is achieved by reducing the total weight of the aircraft while increasing the lifting surfaces' aspect ratio.In a similar quest for extreme efficiency, the wind energy industry is also trending towards longer and more slender blades, specially for off-shore applications, where the largest blades are now close to 100-m long.
These longer and more slender structures can present large deflections and have relatively low frequency structural modes which, in the case of aircraft, can interact with the flight dynamics modes with potentially unstable couplings.In the case of offshore wind turbines, platform movement may generate important rotor excursions that cause complex aeroelastic phenomena which conventional quasi-linear methods may not accurately capture.
SHARPy (Simulation of High-Aspect Ratio aeroplanes in Python) is a dynamic aeroelasticity simulation toolbox for aircraft and wind turbines.It features a versatile interface and core code written in Python 3, while computationally expensive routines are included in libraries coded in C++ and Modern Fortran.SHARPy is easily extended through a modular object-oriented design, and includes tools for linear and nonlinear analysis of the time-domain aeroelastic response of flexible bodies in a large number of cases, such as 3-D discrete gust (Del Carre et al., 2019), turbulent field input (Deskos, del Carre, & Palacios, 2019;Hesse & Palacios, 2016), control surface deflection and prescribed motion (Del Carre & Palacios, 2019).In addition, linearised state-space models can be obtained for frequency domain analysis, controller design and model reduction.
Few open source options are available for nonlinear aeroelastic analysis.A well known code for wind energy is OpenFAST (National Wind Technology Center (NWTC), n.d.), developed at NREL and distributed under Apache 2.0 license.OpenFAST features a Geometrically-Exact Composite Beam structural model and an actuator-line based aerodynamic solver.The wake is modelled using quasi-steady Blade Element Momentum theory.To the knowledge of the authors, no other nonlinear aeroelasticity framework for aircraft is available under opensource terms.An example of a commonly-used aircraft-oriented software is ASWING (Drela, 1999).It is based on geometrically nonlinear beams with approximated rigid body dynamics.

Features
The structural model included in SHARPy is a Geometrically-Exact Composite Beam (GECB) (Géradin & Cardona, 2001;Hesse, Palacios, & Murua, 2014) supports multibody features such as hinges, joints and absolute and relative nodal velocity constraints through Lagrange Multipliers.Rigid body motion can be prescribed or simulated.The structural solver supports distributed and lumped mass formulation (or a combination of both).Time-integration is carried out using a Newmark-β scheme.
The aerodynamic solver is an Unsteady Vortex Lattice Method (UVLM) (Katz & Plotkin, 2001;Simpson, Palacios, & Murua, 2013).It can simulate an arbitrary number of surfaces together with their interactions.A non conventional force evaluation scheme is used (Simpson et al., 2013) in order to support large sideslip angles and obtain an induced drag estimation.In addition to this, added mass effects can be obtained and introduced in the FSI problem.This can be especially important in the case of very light flexible aircraft flying at low altitude.
The coupling algorithm included in the code is designed to allow fully coupled nonlinear simulations, although weakly coupled solutions can be obtained.Independent structural or aerodynamic simulation are supported natively.The nonlinear system can also be linearised taking an arbitrary reference condition.The linearised system can be used for frequency domain analysis, linear model order reduction methods and controller design.
Aerodynamic loads are calculated using a lifting-line theory solver with prescribed coefficients.Lastly, UM/NAST(Del Carre et al., 2019)  is a nonlinear aeroelastic code with GECB and UVLM solvers.However, it is a research code which has not been released as open source.SHARPy relies only on freely-available open-source dependencies such as Paraview for postprocessing The computationally expensive routines written in C++ and Fortran have been designed with Fluid-Structure Interaction (FSI) problems in mind, resulting in minimal overhead between function calls.

Figure 1 :
Figure 1: Aerodynamic grid and forces in the static aeroelastic equilibrium configuration on the XHALE aircraft (Del Carre et al., 2019)