Nektar++

Nektar++ is a spectral/hp element framework designed to support the construction of efficient high-performance scalable solvers for a wide range of partial differential equations (PDE). The code is released as open-source under the MIT license. Although primarily driven by application-based research, it has been designed as a platform to support the development of novel numerical techniques in the area of high-order finite element methods.

Nektar++ is modern object-oriented code written in C++ and is being actively developed by members of the SherwinLab at Imperial College London (UK) and Kirby's group at the University of Utah (US).

Capabilities
Nektar++ includes the following capabilities:
 * One-, two- and three-dimensional problems;
 * Multiple and mixed element types, i.e. triangles, quadrilaterals, tetrahedra, prisms and hexahedra;
 * Both hierarchical and nodal expansion bases with variable and heterogeneous polynomial order between elements;
 * Continuous Galerkin, discontinuous Galerkin, hybridizable discontinuous Galerkin and flux reconstruction operators;
 * Multiple implementations of finite element operators for efficient execution on a wide range of CPU architectures;
 * Comprehensive range of explicit, implicit and implicit-explicit (IMEX) time-integration schemes;
 * Preconditioners tailored to high-order finite element methods;
 * Numerical stabilization techniques such as dealiasing and spectral vanishing viscosity;
 * Parallel execution and scalable to thousands of processor cores;
 * Pre-processing tools to generate meshes, or manipulate and convert meshes generated with third-party software into a Nektar++-readable format;
 * Extensive post-processing capabilities for manipulating output data;
 * Cross platform support for Linux, Mac OS X and Windows;
 * Support for running jobs on cloud computing platforms via the prototype Nekkloud interface from the libhpc project;
 * Wide user community, support and annual workshop.

Stable versions of the software are released on a 1-month basis and it is supported by an extensive testing framework which ensures correctness across a range of platforms and architectures.

Other capabilities currently under active development include p-adaption, r-adaption and support for accelerators (GPGPU, Intel Xeon Phi).

Application domains
The development of the Nektar++ framework is driven by a number of aerodynamics and biomedical engineering applications and consequently the software package includes a number of pre-written solvers for these areas.

Incompressible flow
This solver time-integrates the incompressible Navier-Stokes equations for performing large-scale direct numerical simulation (DNS) in complex geometries. It also supports the linearised and adjoint forms of the Navier-Stokes equations for evaluating hydrodynamic stability of flows.

Compressible flow
External aerodynamics simulations of high-speed compressible flows are supported through solution of the compressible Euler or Navier-Stokes equations.

Cardiac Electrophysiology
This solver supports the solution of the monodomain model and bidomain model of action potential propagation through myocardium.

Other application areas

 * shallow water equations;
 * reaction-diffusion-advection problems;
 * pulse wave propagation solver for modelling arterial networks;
 * acoustic perturbation equations;
 * linear elasticity equations.

License
Nektar++ is free and open source software, released under the MIT license.

Free and open-source software

 * Nek5000 (BSD )
 * Advanced Simulation Library (AGPL)
 * Code Saturne (GPL)
 * FEATool Multiphysics
 * Gerris Flow Solver (GPL)
 * OpenFOAM (GPL)
 * SU2 code (LGPL)
 * PyFR

Proprietary software

 * ADINA CFD
 * ANSYS CFX
 * ANSYS Fluent
 * COMSOL Multiphysics
 * Pumplinx
 * Simcenter STAR-CCM+
 * KIVA (software)
 * RELAP5-3D

Official resources

 * Nektar++ home page
 * Nektar++ Gitlab repository