Clarification about Mesh

Hello to everyone, I am new to pyfr and CFD and need some clarification.

Pyfr split the cells into 4 smaller cells and the command quad-deg( degree of quadrature rule for anti-aliasing) refers to how the solver calculates the solutions Gaussian quadrature - Wikipedia.

In some points, there are various solutions, are there ways or methods that I could do so that instead of having many solutions in one point, I can obtain solutions in different points to gain more information.

Any reply would be warmly appreciated.
Have a good day.

Welcome to the PyFR Discourse.

I’m not entirely sure what you mean by your question, but maybe some more background on the method might help. Sorry in advance if I tell you what you already know.

So what PyFR is implementing is broadly the FR method of Huynh (2007) and its extensions. The methods sits somewhere between finite element/discontinuous Galerkin and finite difference (sort of).

At the input we take a mesh, this defines the element boundaries. PyFR will then place within these elements a set of solution points and flux points (interface points), the exact method that is used to place these points is set in the .ini file. For lines, quadrilaterals, and hexahedrals, yes, Gaussian quadrature is a perfectly reasonable way to do that.

When the solution is computed it is done at these points and polynomial interpolation is used to calculate derivatives among other things. By way of example a single p=4 hexahedral element will have 125 solution points.

Coming to anti-aliasing, for non-linear equation sets if you are under-resolved then non-linearities can lead to large amplitude high frequency content that may only be resolved in its aliased representation. This behaviour is often not desirable and can even lead the simulation to diverge. Two potential remedies are: more resolution or anti-aliasing. For the later we use a similar method to Spiegel et al. (2015), which can be tersely summarized as: interpolate the solution to AA points, calculate the flux at these points, calculated the divergence for the flux, and then use an L2 projection back to the solution points.

For both the solution points and anti-aliasing points the number that are placed inside an element is determined by the order, dimension, and approximation space. This last point is only indirectly controlled in PyFR through the quadrature used to set the point locations.

When you export the solution file to VTU file for visualisation, you then have several options relating to how must resolution you’d like included. See the posts by @GonzaloS for more on that.

I hope this helps and say if I’ve missed the point of your question

Thank you very much @WillT for your insightful reply! That is exactly what I was searching for, specially this one https://github.com/PyFR/PyFR/pull/195 High-Order VTK Output Mode.

If I am not a bother, can you enlighten us how to update pyfr? so we can input --order p-order in the export command. Right now in my version, it is not recognizing the command order.

Hi @AmoraMadrid,

As the functionality that you mention is still not available in PyFR v1.11, you can use the following command to install the develop branch (beware as this does not represent an official release of the code)

pip install git+https://github.com/PyFR/PyFR.git@develop

You might need to uninstall PyFR before launching this command (or maybe you may consider using virtualenv). I would recommend to run pip install pyfr once PyFR v1.12 is released to ensure that you are using a stable version of the solver.

Let us know if you you need any further information!

Thank you @GonzaloS! I will try.