PyFR: An open source framework for solving advection-diffusion type problems on streaming architectures using the flux reconstruction approach

Abstract High-order numerical methods for unstructured grids combine the superior accuracy of high-order spectral or finite difference methods with the geometric flexibility of low-order finite volume or finite element schemes. The Flux Reconstruction (FR) approach unifies various high-order schemes for unstructured grids within a single framework. Additionally, the FR approach exhibits a significant degree of element locality, and is thus able to run efficiently on modern streaming architectures, such as Graphical Processing Units (GPUs). The aforementioned properties of FR mean it offers a promising route to performing affordable, and hence industrially relevant, scale-resolving simulations of hitherto intractable unsteady flows within the vicinity of real-world engineering geometries. In this paper we present PyFR, an open-source Python based framework for solving advection–diffusion type problems on streaming architectures using the FR approach. The framework is designed to solve a range of governing systems on mixed unstructured grids containing various element types. It is also designed to target a range of hardware platforms via use of an in-built domain specific language based on the Mako templating engine. The current release of PyFR is able to solve the compressible Euler and Navier–Stokes equations on grids of quadrilateral and triangular elements in two dimensions, and hexahedral elements in three dimensions, targeting clusters of CPUs, and NVIDIA GPUs. Results are presented for various benchmark flow problems, single-node performance is discussed, and scalability of the code is demonstrated on up to 104 NVIDIA M2090 GPUs. The software is freely available under a 3-Clause New Style BSD license (see www.pyfr.org ). Program summary Program title: PyFR v0.1.0 Catalogue identifier: AETY_v1_0 Program summary URL: http://cpc.cs.qub.ac.uk/summaries/AETY_v1_0.html Program obtainable from: CPC Program Library, Queen’s University, Belfast, N. Ireland Licensing provisions: New style BSD license No. of lines in distributed program, including test data, etc.: 12 733 No. of bytes in distributed program, including test data, etc.: 214 183 Distribution format: tar.gz Programming language: Python, CUDA and C. Computer: Variable, up to and including GPU clusters. Operating system: Recent version of Linux/UNIX. RAM: Variable, from hundreds of megabytes to gigabytes. Classification: 6.5, 12. External routines: Python 2.7, numpy, PyCUDA, mpi4py, SymPy, Mako Nature of problem: Compressible Euler and Navier–Stokes equations of fluid dynamics; potential for any advection–diffusion type problem. Solution method: High-order flux reconstruction approach suitable for curved, mixed, unstructured grids. Unusual features: Code makes extensive use of symbolic manipulation and runtime code generation through a domain specific language. Running time: Many small problems can be solved on a recent workstation in minutes to hours.

[1]  Freddie D. Witherden,et al.  An Analysis of Solution Point Coordinates for Flux Reconstruction Schemes on Triangular Elements , 2014, J. Sci. Comput..

[2]  John H. Kolias,et al.  A CONSERVATIVE STAGGERED-GRID CHEBYSHEV MULTIDOMAIN METHOD FOR COMPRESSIBLE FLOWS , 1995 .

[3]  Antony Jameson,et al.  A New Class of High-Order Energy Stable Flux Reconstruction Schemes , 2011, J. Sci. Comput..

[4]  H. T. Huynh,et al.  A Flux Reconstruction Approach to High-Order Schemes Including Discontinuous Galerkin Methods , 2007 .

[5]  Z. J. Wang,et al.  High-OrderMultidomain SpectralDifferenceMethod for the Navier-Stokes Equations on Unstructured Hexahedral Grids , 2007 .

[6]  Frank E. Ham,et al.  Symmetric quadrature rules for tetrahedra based on a cubic close-packed lattice arrangement , 2012, J. Comput. Appl. Math..

[7]  Antony Jameson,et al.  Energy stable flux reconstruction schemes for advection-diffusion problems on triangles , 2013, J. Comput. Phys..

[8]  Antony Jameson,et al.  On the Non-linear Stability of Flux Reconstruction Schemes , 2012, J. Sci. Comput..

[9]  Antony Jameson,et al.  Insights from von Neumann analysis of high-order flux reconstruction schemes , 2011, J. Comput. Phys..

[10]  Nicolas Pinto,et al.  PyCUDA and PyOpenCL: A scripting-based approach to GPU run-time code generation , 2009, Parallel Comput..

[11]  E. Toro Riemann Solvers and Numerical Methods for Fluid Dynamics , 1997 .

[12]  Antony Jameson,et al.  On the Development of a High-Order, Multi-GPU Enabled, Compressible Viscous Flow Solver for Mixed Unstructured Grids , 2011 .

[13]  Antony Jameson,et al.  Energy Stable Flux Reconstruction Schemes for Advection–Diffusion Problems on Tetrahedra , 2014, J. Sci. Comput..

[14]  J. Hesthaven,et al.  Nodal Discontinuous Galerkin Methods: Algorithms, Analysis, and Applications , 2007 .

[15]  Antony Jameson,et al.  Application of High-Order Energy Stable Flux Reconstruction Schemes to the Euler Equations , 2011 .

[16]  W. H. Reed,et al.  Triangular mesh methods for the neutron transport equation , 1973 .

[17]  David A. Kopriva,et al.  A Staggered-Grid Multidomain Spectral Method for the Compressible Navier-Stokes Equations , 1998 .

[18]  Antony Jameson,et al.  A New Class of High-Order Energy Stable Flux Reconstruction Schemes for Triangular Elements , 2012, J. Sci. Comput..

[19]  Antony Jameson,et al.  Energy Stable Flux Reconstruction Schemes for Advection–Diffusion Problems on Tetrahedra , 2013, Journal of Scientific Computing.