Codes

Flagship Codes

N3D, available from UoN and USP, is a high-order finite element code written in C++. It has four solvers for Direct Numerical Simulation, LES, linearized analysis and nonlinear optimization. It mainly solves incompressible flow while also considers weak compressibility by applying the Boussinesq approximation. In the preliminary work that paved the way for this project, this code has been equipped with an actuator-line model and an actuator-disc model to simulate the wind turbine and a wall model to represent the near-wall turbulence of the atmospheric boundary layer. The Coriolis force was also considered to consider the change of wind direction inside and above the farm. Its scalability has been significantly enhanced after a project funded by the UK national HPC facility, and has been tested in a number of other HPCs such as Tier-2 Midland Plus, Australian National HPC, PSNC in Poland, Tianhe-2 in China. It was applied to simulate and analyse perturbation developments in vortex flow, boundary layer flow, laminar-turbulence transition, bluff body flow and most recently wind turbine flow, particularly the wake meandering and helical vortices by research groups in Europe, the US, China and Brazil. Results are regularly published in the most important peer-reviewed journal in fluid mechanics such as Journal of Fluid Mechanics and Physics Review of Fluids.

Developer: University Of Nottingham

Utwente-LES is an in-house LES code developed by Utwente to simulate wind turbine and wind farm dynamics. A pseudo spectral discretization is applied resulting in double periodic boundary conditions in the horizontal directions. The code thus massively uses FFT’s, which are implemented using the FFTW3 library. An energy conserving second-order finite differencing method is used in the vertical direction while a second-order accurate Adams-Bashforth scheme is used for the time integration. Due to the very large Reynolds numbers in the atmosphere the bottom surface is parametrized with a classic imposed wall stress boundary condition relating the wall stress to the velocity at the first grid point using the standard logarithmic similarity law, while the viscous stresses are neglected. For the top boundary we use a zero-vertical velocity and zero shear stress boundary condition. The code has several possibilities to model the sub-grid scale stresses, such as the classical Smagorinsky model, and the dynamical Smagorinsky model, but also more advanced models such as the scale-dependent model, the Lagrangian-averaged scale-invariant model, and the Lagrangian scale dependent model. Wind turbines are implemented using either an actuator disk model or an actuator line model. The code has already been used for various wind turbine and wind farm studies.

Developer: University Of Twente

Nektar++/ SHARPy is a combined solver for FSI simulations:

Nektar++ is an open source framework for parallel spectral/hp element modelling tailored to the modelling unsteady and separated flows around complex geometries. It has been in continuous development since 2005. The framework is a tensor-product-based high-order finite element object-oriented C++ package and offers variety of discretization including unstructured full 3D discretization using hybrid elements as well as a quasi-3D approaches using Fourier expansions with 2D spectral/hp discretization. The framework contains solvers for incompressible and compressible flow equations and has also been applied to manifold problems related to biomedical electrophysiological applications. Recently, through collaborations with McLaren Racing and Rolls Royce, implicit LES (or under-resolved DNS) capabilities have been refined with a consistent discretization and associated numerical stabilization allowing simulations at Reynolds numbers of industrial interest. The framework has high order meshing capabilities through interfacing with commercial and in-house meshing techniques as well as parallel processing and run-time analysis techniques for post-processing in commonly available visualization packages. Nektar++ is one of the flagship solvers of the UK Turbulence Consortium for use on the UK ARCHER system. It was part of the recent EU ExaFLOW project (with EPCC), where significant progress has been made on parallel I/O, load balancing and fault tolerant execution. Currently as a part of EU HPCWE project FSI capability of Nektar++ is extended via coupling with multi-body geometrically nonlinear structural solver SHARPy. The FSI coupling enjoys an efficient LES method based on the thick strip method for wall-resolving flow simulations. It provides a sectional representation of fluid domain where each section having a finite thickness enables to capture the 3D local turbulent wake correlations while reducing the computational cost of full 3D LES simulations.

Summary of features of Nektar++

• Object oriented C++ tensor-product finite element
• High order polynomial expansions
• Hybrid shaped elements, i.e triangles and quadrilaterals or tetrahedra, prisms and hexahedra.
• Continuous or discontinuous Galerkin operators.
• unstructured full 3D discretization using hybrid elements.
• Quasi 3D approaches using Fourier expansions with 2D spectral/hp discretization
• Efficient LES approach for FSI problems using thick strip method
• FSI capability via coupling with nonlinear structural solver SHARPy
• Integrated meshing tools as well as support for opensource software such as gmsh
• Integrated postprocessing tools and output format for Paraview, VisIt and Tecplot
• Cross platform support for Linux, Mac OS X and Windows.

SHARPy (Simulation of High Aspect Ratio aircraft and wind turbines in Python) is a medium fidelity aeroelastic simulation environment tailored to the analysis of very flexible aircraft and wind turbines. It includes a flexible multi-body dynamics simulation engine that has already been coupled with Nektar++ for the analysis of vortex-induced vibrations. The multibody solver is based on a high-order finite-element discretization of geometrically-nonlinear composite beams. SHARPy features a versatile interface written in Python 3 while the computationally expensive routines are included through libraries written in C++ and modern Fortran. Having an objected oriented modular design, SHARPy can be easily extended and integrated in other software.

Summary of SHARPy features:

• Modular object-oriented design
• Support for multi-body dynamics
• Geometrically-nonlinear composite beam solver
• linear and nonlinear analysis of the time-domain aeroelastic response of flexible bodies
• Support for 3-D discrete gust
• Support for turbulent field input
• Linearized state-space models for frequency domain
• Krylov and Lyapunov-based reduced order models for control design

Developer: ICL

Download Links:

Nektar++
https://www.nektar.info/downloads/

SHARPy
https://www.imperial.ac.uk/aeroelastics/sharpy/

Code_Saturne is an open source CFD code developed by EDF. It solves the NS equations for 2D, 2D-axisymmetric and 3D flows, steady or unsteady, laminar or turbulent, incompressible or weakly dilatable, isothermal or not, with scalars transport if required. Several turbulence models are available, from RANS to LES models. In addition, a number of specific physical models are also available as “modules”: gas, coal and heavy-fuel oil combustion, semi-transparent radiative transfer, particle-tracking with Lagrangian modeling, Joule effect, electrics arcs, weakly compressible flows, atmospheric flows, rotor/stator interaction for hydraulic machines. Code_Saturne RANS has been successfully implemented with its atmospheric module to estimate the loss due to wake effect in the case of large offshore wind farms. Combined with atmospheric modules, this solver can be applied to estimate the annual wind resource or energy production. Code_Saturne has been designed to take benefit from parallel computations in HPC simulations.

More information:
Code_Saturne Website
Code_Saturne on GitHub

Vortex-WRF-LES is an implementation of LES solver within the meso-scale WRF core allowing turbulence to be taken into account. Vortex has adapted LES code to be driven with boundary conditions prescribed by 1km WRF model simulation and using real terrain geography, providing virtual time series of wind conditions for advanced site specific analysis.  Specific development and post-processing has been tested and implemented for robust grey zone transition and land surface model interaction.

EWP is a wind farm parametrization that runs within the meso-scale model WRFThe Explicit Wake Parametrisation (EWP) scheme is developed by project partner DTU for meso-scale simulations of wind farm flow. It can be used instead of the default wind farm parameterisation in WRF (WRF-WF)Unlike the default WRF-WF parametrisation, the EWP scheme accounts also for the unresolved sub-grid scale turbine wake expansion.

Developer: DTU

Additional Codes
Besides the Flagship Codes, there are some additional codes that also play a minor role in the HPCWE project.

The Weather Research and Forecasting (WRF) Model is a next-generation mesoscale numerical weather prediction system designed for both atmospheric research and operational forecasting applications. It features two dynamical cores, a data assimilation system, and a software architecture supporting parallel computation and system extensibility. The model serves a wide range of meteorological applications across scales from tens of meters to thousands of kilometers. The effort to develop WRF began in the latter 1990’s and was a collaborative partnership of the National Center for Atmospheric Research (NCAR), the National Oceanic and Atmospheric Administration (represented by the National Centers for Environmental Prediction (NCEP) and the Earth System Research Laboratory), the U.S. Air Force, the Naval Research Laboratory, the University of Oklahoma, and the Federal Aviation Administration (FAA).

It models the atmospheric flow over large areas on computer clusters (parallelized using distributed and/or shared memory) and includes many physical parameterizations in order to capture atmospheric processes important for development of weather phenomena. The model’s nesting possibility allows to reduce the model resolution from several tens of kilometers in the outer most domain , which is forced by Global Circulation Model (GCM)/reanalysis simulations, down to several kilometers in the innermost domain.

Developers: NCAR, NOAA, NCEP

The Model for Prediction Across Scales (MPAS) is a collaborative project for developing atmosphere, ocean and other earth-system simulation components for use in climate, regional climate and weather studies. The primary development partners are the climate modeling group at Los Alamos National Laboratory (COSIM) and  the National Center for Atmospheric Research.  Both primary partners are responsible for the MPAS framework, operators and tools common to the applications; LANL has primary responsibility for the ocean and land ice models, and NCAR has primary responsibility for the atmospheric model.

 

The defining features of MPAS are the unstructured Voronoi meshes and C-grid discretization used as the basis for many of the model components.  The unstructured Voronoi meshes, formally Spherical Centriodal Voronoi Tesselations (SCVTs), allow for both quasi-uniform discretization of the sphere and local refinement.  The C-grid discretization, where the normal component of velocity on cell edges is prognosed, is especially well-suited for higher-resolution, mesoscale atmosphere and ocean simulations. The land ice model takes advantage of the SCVT-dual mesh, which is a triangular Delaunay tessellation appropriate for use with Finite-Element-based discretizations.

Developer: COSIM and NCAR
Download: GitHub

WInc3D is an open source wind farm simulation framework that allows detailed analyses of wake–to–wake and turbine–to–wake interactions. The code is based on incompact3D (Laizet and Lamballais, 2009), which is a high–order finite difference numerical solver. Incompact3D has been shown to scale up to 100k computataional cores, using an efficient 2D domain decomposition algorithm (Laizet and Li, 2011). The native actuator line model (ALM) has been validated using both wind tunnel data (Deskos et al 2019) and supervisory control and data acquisition (SCADA) measurements from a utility–scale offshore wind farm.

Developer: Imperial College London
Download: GitHub

OpenFOAM is a general purpose open source CFD code. The turbinesFOAM module is used to model the wind turbine, based on the actuator line model (ALM) approach. For fluid-structure interaction simulations we are using PreCICE, which stands for Precise Code Interaction Coupling Environment. Its main component is a library that can be used by simulation programs to be coupled together in a partitioned way, enabling multi-physics simulations. For the structural part, we are using CalculiX, which is a package designed to solve field problems employing the finite element method.

Developer: OpenFOAM
Download turbinesFOAM: GitHub