Nektar++: enhancing the capability and application of high-fidelity spectral/hp element methods

D. Moxey, C. D. Cantwell, Y. Bao, A. Cassinelli, G. Castiglioni, S. Chun, E. Juda, E. Kazemi, K. Lackhove, J. Marcon, G. Mengaldo, D. Serson, M. Turner, H. Xu, J. Peiró, R. M. Kirby, S. J. Sherwin

Comput. Phys. Commun., vol. 249, pp. 107110 (2020)

@article{moxey-2020a,
  title = {\emph{Nektar++}: enhancing the capability and application of high-fidelity spectral/$hp$ element methods},
  author = {Moxey, D. and Cantwell, C. D. and Bao, Y. and Cassinelli, A. and Castiglioni, G. and Chun, S. and Juda, E. and Kazemi, E. and Lackhove, K. and Marcon, J. and Mengaldo, G. and Serson, D. and Turner, M. and Xu, H. and Peir\'o, J. and Kirby, R. M. and Sherwin, S. J.},
  journal = cpc,
  year = {2020},
  volume = {249},
  pages = {107110},
  url = {https://www.sciencedirect.com/science/article/pii/S0010465519304175},
  doi = {10.1016/j.cpc.2019.107110},
  abstract = {\emph{Nektar++} is an open-source framework that provides a flexible, performant and scalable platform for the development of solvers for partial differential equations using the high-order spectral/$hp$ element method. In particular, \emph{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 \emph{Nektar++} version 5.0 release.  We describe some of the key software and performance developments, including our strategies on parallel I/O, on \emph{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 enable more rapid on-boarding of new users unfamiliar with spectral/$hp$ element methods, C++ and/or \emph{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 \emph{NekMesh}; a novel new \emph{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.}
}

The 5.0 release of Nektar++, our open-source framework for solving partial differential equations with the spectral/hp element method. This paper describes the software work in it, including parallel I/O, in situ processing, collective operations and a Python interface, along with numerical additions such as the method of moving frames and spatially variable polynomial order, and new application-level tools including the NekMesh mesh generator and a solver for aeroacoustics.

Abstract

Nektar++ is an open-source framework that provides a flexible, performant 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 enable more rapid on-boarding of 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.