Questions about getting started with pyfr


I haven’t started using PyFR yet, but I think I have several questions.

  • The code is expected to be used by experts who are familiar with the theoretical framework of the solver. Is it expected at some point in future to extend the community? What I mean is, currently it’s not obvious from the description of the project what the solver is doing unless you’re already an expert. Could you please elaborate on what is exactly the flux reconstruction method for non experts? and how it differs from the widely used Finite Volume Method (FVM)?

  • I do not have solid background on FVM, but I can run many simulations in OpenFOAM successfuly. I wonder if it’s necessary in PyFR to have the theory background to delve in?

  • Can PyFR handle dynamic meshes? as an example, consider the simulation of a rotating wind turbine blade; is that possible?

I appreciate your help

Thank you
I. M

At a high level, PyFR is built with the aim of performing very efficent high-resolution simulation at scale. The issue is that this is clearly at the bleeding edge of technology and consquently uses ideas that are not in the main stream yet, hence why accessability can be difficult.

If you want more information on the flux reconstruction method a good place to start is H.T. Huynh’s paper from 2007. But the key thing is that FR is very similar to other nodal discontinuous Galerkin methods. Finite volume methods generally form approximation to the integral of flux around a small volume. In many solvers/method this approximation is second order accurate. FR is a bit more like finite difference approaches in that we form a high order approximation to gradient of the flux. However we do this within elements, which has some advantages.

If you want to run PyFR you don’t nessacariliy need to understand high order method to run simulations, you just need to be capable enough to make meshes and use the command line (as well as have some understanding of the physical system you are solving, but that is a given I think). However, like many things, if you want to make best use of the tool having some understanding of how it work will help get the most out of it.

Currently we do not have any mainline features for moving meshes although we do have some offline features for overset meshes. If you really want high-order and moving/adaptive meshes then MFEM might be the code for you, but the learning curve is also steep for MFEM same reasons.

For a complete and up to date picture of the full feature set supported in PyFR you can see the documentation. PyFR — Documentation

I hope this helps.

1 Like

Thank you very much for the detailed answer.