Source-linked AI summary

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

David Moxey, Chris D. Cantwell, Yan Bao, Andrea Cassinelli, Giacomo Castiglioni, Sehun Chun, Emilia Juda, Ehsan Kazemi, Kilian Lackhove, Julian Marcon, Gianmarco Mengaldo, Douglas Serson, Michael Turner, Hui Xu, Joaquim Peiró, Robert M. Kirby, Spencer J. Sherwin

arXiv:1906.03489v2cs.MSmath.NAphysics.flu-dyn

TL;DR

High-order spectral/hp methods offer strong geometric flexibility but remain difficult to implement and can face scalability and mesh-validity challenges. Nektar++ version 5 addresses these issues through software, numerical, and application developments across the simulation pipeline. The release adds capabilities including adaptive polynomial order, moving frames, high-order mesh generation, acoustic simulation, and thick-strip fluid-structure interaction modeling.

  • Problem

    High-order methods are difficult to implement, while large-scale simulations face parallel I/O limits and high-order mesh validity challenges.

  • Method

    Nektar++ version 5 combines new software libraries and interfaces with moving frames, spatially variable polynomial order, high-order mesh generation, and application solvers.

  • Results

    Nektar++ version 5 provides an end-to-end pipeline for preprocessing, high-fidelity solving, parallel post-processing, and in situ processing.

  • Takeaways & Limitations

    The release broadens Nektar++ across complex-geometry simulations, acoustics, adaptive resolution, quasi-3D problems, and fluid-structure interaction.

  • Takeaways & Limitations

    Future work remains necessary for efficient use of many-core CPU and GPU systems and for performance portability across diverse hardware.

Abstract

from arXiv · show

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, 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 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 problems in the context of vortex-induced vibrations. We conclude by commenting some directions for future code development and expansion.

PROGRAM SUMMARY

Nektar++ is a C++ framework and program for solving partial differential equations with spectral/hp element methods on workstations or clusters.

  • Nektar++ is implemented in C++ and licensed under MIT.
  • The framework supports execution on Linux/UNIX, macOS, and Microsoft Windows.
  • Nektar++ can use 1 to 1024 or more processors on PC workstations or clusters.

Supplementary material:

The supplementary material identifies Nektar++ as a spectral/hp element framework for computational fluid dynamics and records its release context and execution requirements.

  • Nektar++ targets the numerical solution of time-independent and time-dependent partial differential equations.
  • The framework uses spectral/hp element methods and is categorized under gases and fluids.
  • The manuscript was submitted to Computer Physics Communications on 28th November 2019.

1. Introduction

The introduction motivates Nektar++ as an open-source framework that makes high-order spectral/hp simulations more accessible for complex scientific and engineering problems. Version 5 expands this capability through software, numerical, and application developments.

  • High-order methods offer fidelity and accuracy but have historically been difficult to implement and apply broadly.
  • Spectral/hp elements combine flexible mesh geometry with polynomial expansions whose order can vary spatially.
  • Nektar++ supports continuous and discontinuous Galerkin methods on hybrid, curvilinear meshes containing multiple element shapes.
  • The version 5 review covers parallel I/O, in situ processing, collective operations, multi-solver coupling, and Python interfaces.
  • The release also develops numerical methods and applications for moving frames, variable polynomial order, quasi-3D mappings, mesh generation, acoustics, and fluid-structure interaction.

2. Methods

Nektar++ formulates PDE solvers using high-order finite-element spaces on mapped reference elements, supporting diverse geometries, Galerkin discretizations, and explicit or implicit time integration.

  • Spatial discretisation: Nektar++ partitions geometrically complex domains into one- to three-dimensional elements supporting segments, triangles, quadrilaterals, tetrahedra, pyramids, prisms, and hexahedra.
  • Time integration: The framework supports steady and time-dependent PDEs with explicit, implicit, and implicit-explicit timestepping.
  • Element mappings: Element mappings connect reference coordinates to physical coordinates and permit curved elements through sub- or iso-parametric representations.
  • Galerkin methods: Continuous Galerkin assembly enforces C0 continuity, while discontinuous Galerkin mappings transfer interface fluxes into the global solution vector.
  • Galerkin methods: Static condensation can restrict global systems to elemental boundary degrees of freedom, including through HDG traces in discontinuous Galerkin formulations.

3. Software and Performance Developments

Nektar++ 5.0 modernizes the framework for large-scale high-performance computing through C++11 adoption, parallel I/O, in situ processing, collective operations, solver coupling, and Python bindings.

  • Software modernization: Nektar++ 5.0 adopts C++11 features throughout the framework to support users on large-scale HPC systems.Changes include native smart pointers, unordered containers, range-based loops, and variadic templates.
  • Parallel I/O: Parallel HDF5 and MPI I/O allow all processes to read or write a single file, reducing parallel-filesystem bottlenecks compared with file-per-rank output.The format supports mesh input and field-data checkpoints for setup and unsteady simulations.
  • Parallel I/O: The HDF5 format addresses XML scalability limits by keeping input time roughly constant as node counts increase, whereas XML execution times increase.XML also imposes memory, processing-time, and startup restrictions for very large cases.
  • In situ processing: In situ FieldUtils processing produces smaller parallel VTU outputs, reducing storage needs and avoiding a separate process to reload complete solutions.Supported operations include extracting slices or isocontours during or immediately after the simulation.
  • Collective linear algebra operations: High-order methods improve equivalent error per degree of freedom, while arithmetic intensity determines how effectively they use hardware with limited memory bandwidth.Higher-order operators increase FLOPS but provide dense, locally compact structures suited to modern architectures.
  • Collective linear algebra operations: Collections provide controllable evaluation strategies and are especially beneficial in fully explicit CompressibleFlowSolver and AcousticSolver applications.An autotuning strategy can select the fastest evaluation approach from mesh and basis characteristics at startup.
  • Solver coupling: The coupling interface exchanges arbitrary variable fields at runtime through file-based or MPI-based systems, supporting multiphysics co-simulation across incompatible discretisations.An intermediate continuous expansion filters and projects exchanged fields while reducing small-scale features and boundary discontinuities.
  • Python interface: High-level Boost.Python bindings simplify access to core Nektar++ libraries for teaching and interoperability with other software packages.The release favors handwritten wrappers for quality and stability despite their implementation effort.

4. Developments in Numerical Methods

Nektar++ version 5 introduces numerical methods for PDEs on curved manifolds, spatially adaptive polynomial resolution, and transformed quasi-3D geometries. These developments target complex domains and multiscale flows while supporting representative simulations on spheres, airfoils, and wavy wings.

  • Method of moving frames: The method of moving frames (MMF) solves PDEs on embedded curved surfaces using locally Euclidean orthonormal frames.The formulation avoids metric tensors and continuous curved axes, while supporting spheres, irregular surfaces, and non-convex surfaces.
  • Method of moving frames: MMF has been applied to conservation laws, diffusion, shallow water, and Maxwell equations on spherical surfaces.Representative Nektar++ simulations for these equations are shown in Figure 4.
  • Method of moving frames: The MMF scheme also supports anisotropic media, arbitrary-shape rotational effects, and isotropic upwind fluxes in anisotropic media.Higher-order curvilinear meshes from NekMesh improve reported MMF accuracy at high p and preserve mass and energy over long integrations.
  • Spatially-variable polynomial order: Adaptive polynomial order adjusts each element's order using a local error indicator, increasing P where error exceeds a threshold and decreasing it where error is low.The update occurs every nsteps time-steps and respects minimum and maximum polynomial orders.
  • Spatially-variable polynomial order: For flow around a NACA 0012 profile at Re = 50,000 and α = 6◦, the largest polynomial orders resolve transition regions and boundary layers, while distant regions use lower orders.Figure 5 shows the corresponding spanwise-vorticity and polynomial-order distributions.
  • Global mapping: A coordinate-transformation technique removes spanwise waviness from a wing so its transformed geometry can be treated with the quasi-3D formulation.The method becomes unstable at sufficiently large waviness amplitudes, with fully explicit mappings more sensitive than semi-implicit mappings.

5. Applications

Version 5.0 adds application-focused capabilities spanning high-order mesh generation, aeroacoustics, fluid–structure interaction, and turbomachinery simulations. These developments combine new tools and numerical approaches with demonstrations on representative geometries and flow cases.

  • 5.1. NekMesh: NekMesh generates high-order meshes from CAD geometries and converts linear meshes for high-order simulations.Its workflow adds high-order nodes to edges, faces, and volumes while preserving the underlying linear topology.
  • 5.1. NekMesh: Boundary-layer curving can create self-intersecting elements, so NekMesh uses coarse orthogonal macro-elements before splitting them through isoparametric mapping.The approach provides room for valid curvature in thin boundary-layer elements.
  • 5.1. NekMesh: NekMesh also supports variational high-order mesh optimisation and lightweight CAD interfacing, including OpenCASCADE, GEO scripts, and NACA aerofoil generation.Examples include meshes for a NACA 0012 aerofoil and a T106C turbine blade.
  • 5.2. Acoustic solver: The AcousticSolver supports aeroacoustic models with configurable source terms, transferred flow data, non-quiescent base flows, Riemann solvers, sponge layers, and multiple boundary conditions.Source terms can be analytical, read from disk, or transferred from coupled applications for co-simulation.
  • 5.2. Acoustic solver: The spinning vortex-pair test matched prior simulations closely using 16,740 degrees of freedom without stabilization measures such as SVV or filtering.The calculation used 465 quadrilateral elements with a fifth-order modal expansion.
  • 5.3. Fluid-Structure Interaction (FSI) and Vortex-Induced Vibration (VIV): Thick-strip modelling represents each spanwise strip with a local three-dimensional DNS model and couples strips implicitly through flexible-body structural dynamics.A long cylinder at Re = 3,900 was simulated with 16 strips, capturing a second harmonic mode and local turbulent wake structures.
  • 5.4. Aeronautical applications: For turbomachinery applications, Nektar++ uses spectral vanishing viscosity and compares skin friction against reference data for a shock boundary-layer interaction case.The reported skin-friction result is in fair agreement with the results of.

6. Availability

Nektar++ is distributed as open-source software with releases, binaries, containers, and supporting notebooks available for multiple operating systems. The section also identifies a shock boundary-layer interaction test case and its reported comparison setup.

  • 6. Availability: Nektar++ is open-source software released under the MIT license and available through the project website and Git repository.Discrete releases are provided as archives or binary packages for a range of operating systems.
  • 6. Availability: The shock boundary-layer interaction comparison uses Nektar++ with 60 × 40 quadrilateral elements and p = 3 against reference and empirical solutions.The associated case is shown through Mach number and skin-friction visualisations.
  • 6. Availability: Docker images are available for released versions and the master branch, alongside a Jupyter notebook containing the Python interface.The containers and notebook are hosted through the project’s Docker Hub repositories.

7. Conclusions

The version 5.0 release assembles preprocessing, numerical, solver, and post-processing capabilities into a pipeline for high-fidelity simulations. Future development focuses particularly on efficient execution across increasingly diverse CPU and GPU hardware.

  • 7. Conclusions: Version 5.0 provides a pipeline from NekMesh preprocessing and parallel I/O through numerical developments, solvers, parallel post-processing, and in-situ processing.The paper presents this pipeline as supporting efficient high-fidelity simulations across multiple scientific fields.
  • 7. Conclusions: Future work targets efficient use of many-core CPUs and GPUs while preserving maintainability and ease of solver development.Investigated directions include matrix-free methods, sum factorisation, tensor-product bases, and performance-portable programming models.

Appendix A. Supplementary material

The supplementary material provides user guidance and runnable input files covering core Nektar++ workflows, numerical features, application solvers, and mesh generation.

  • User guide: The user guide covers compilation, installation, input formats, usage, and examples.These materials are presented as a guide to working with Nektar++.
  • Flow examples: Example inputs demonstrate cylinder flow with in-situ vorticity processing and von Kármán vortex shedding at Re = 80.The example uses the HDF5 input format and IncNavierStokesSolver.
  • Numerical and acoustic examples: Additional examples cover adaptive polynomial order for NACA0012 flow, quasi-3D flow over a wavy wing, and AcousticSolver simulation of a spinning vortex pair.The spinning-vortex example uses polynomial order P = 5 and the Collections library.
  • Application examples: The supplementary files include NekMesh examples for a NACA0012 aerofoil and T106C turbine blade geometry.They also include a thick-strip flexible-cylinder case and a shock boundary-layer interaction case.
Loading 1906.03489v2…