Nektar++ is an open-source framework that provides a flexible, high-performance and scalable platform for the development of solvers for partial differential equations using the high-order spectral/hp element method. In particular, Nektar++ aims to overcome the complex implementation challenges that are often associated with high-order methods, thereby allowing them to be more readily used in a wide range of application areas. In this paper, we present the algorithmic, implementation and application developments associated with our Nektar++ version 5.0 release. We describe some of the key software and performance developments, including our strategies on parallel I/O, on in situ processing, the use of collective operations for exploiting current and emerging hardware, and interfaces to enable multi-solver coupling. Furthermore, we provide details on a newly developed Python interface that enables a more rapid introduction for new users unfamiliar with spectral/hp element methods, C++ and/or Nektar++. This release also incorporates a number of numerical method developments – in particular: the method of moving frames (MMF), which provides an additional approach for the simulation of equations on embedded curvilinear manifolds and domains; a means of handling spatially variable polynomial order; and a novel technique for quasi-3D simulations (which combine a 2D spectral element and 1D Fourier spectral method) to permit spatially-varying perturbations to the geometry in the homogeneous direction. Finally, we demonstrate the new application-level features provided in this release, namely: a facility for generating high-order curvilinear meshes called NekMesh; a novel new AcousticSolver for aeroacoustic problems; our development of a ‘thick’ strip model for the modelling of fluid–structure interaction (FSI) problems in the context of vortex-induced vibrations (VIV). We conclude by commenting on some lessons learned and by discussing some directions for future code development and expansion. Program summary: Program Title: Nektar++ Program Files doi: http://dx.doi.org/10.17632/9drxd9d8nx.1 Code Ocean Capsule: https://doi.org/10.24433/CO.9865757.v1 Licensing provisions: MIT Programming language: C++ External routines/libraries: Boost, METIS, FFTW, MPI, Scotch, PETSc, TinyXML, HDF5, OpenCASCADE, CWIPI Nature of problem: The Nektar++ framework is designed to enable the discretisation and solution of time-independent or time-dependent partial differential equations. Solution method: spectral/hp element method
Bibliographical noteFunding Information:
The development of Nektar ++ has been supported by a number of funding agencies including the Engineering and Physical Sciences Research Council (grants EP/R029423/1 , EP/R029326/1 EP/L000407/1 , EP/K037536/1 , EP/K038788/1 , EP/L000261/1 , EP/I037946/1 , EP/H000208/1 , EP/I030239/1 , EP/H050507/1 , EP/D044073/1 , EP/C539834/1 ), the British Heart Foundation (grants FS/11/22/28745 and RG/10/11/28457 ), the Royal Society of Engineering , European Union FP7 and Horizon 2020 programmes (grant nos. 265780 , 671571 and 675008 ), McLaren Racing , the National Science Foundation ( IIS-0914564 , IIS-1212806 and DMS-1521748 ), the Army Research Office ( W911NF-15-1-0222 ), the Air Force Office of Scientific Research and the Department of Energy . HX acknowledges support from the NSFC Grants 91852106 and 91841303 . SC acknowledges the support of the National Research Foundation of Korea (No. 2016R1D1A1A02937255 ). KL acknowledges the Seventh Framework Programme FP7 Grant No. 312444 and German Research Foundation (DFG) Grant No. JA 544/37-2 .
All Science Journal Classification (ASJC) codes
- Hardware and Architecture
- Physics and Astronomy(all)