Hi Kiny,

Thanks for getting in touch. I have answered your questions below, but if 
you are looking to understand the Riemann solvers a little better, there is 
an upcoming pull request (see my pyfr fork) where we simplify things by 
transforming the problem to one dimension. This makes the presentation of 
the method easier to understand and simpler to implement.There are also 
some more Riemann solvers there, including exact approaches.

Thanks,
Will

On Tuesday, 3 November 2020 20:06:54 UTC-6, Kiny Wan wrote:
>
> Dear all, 
>         I recently read the file of roe.mako in the installed directory 
> 'PyFR-1.8.5\pyfr\solvers\euler\kernels\rsolvers', and met problems about 
> some functions and equations.  
>
>    1. Is there any document listed the equations related to this roe 
>    solver? I only found the equations related to Rusanov solver in 
>    appendix A of the thesis of Dr. Witherden.
>
> So the Roe scheme is a fairly widely used method and there plenty of 
adaptations and modifications to the original method. The original paper by 
Roe can be found here https://doi.org/10.1016/0021-9991(81)90128-5, but the 
form that people often refer to as the Roe method is that of Roe and Pike 
(1985) 'Efficient Construction and Utilisation of Approximate Riemann 
Solutions', but that paper can be a little hard to find. This over came 
some of the deficiencies of the original method. Very broadly the method 
attempts to form a constant Jacobian matrix for both the left and right 
state by using what is now commonly refereed to as a Roe average. A good 
source of further information on the topic of Riemann solvers and 
approximate Riemann solvers in the context of fluid dynamics is the book by 
Toro https://doi.org/10.1007/b79761.

>
>    1. What is the role of '${pyfr.expand('inviscid_flux', 'ul', 'fl', 
>    'pl', 'vl')};' in the roe.mako ? In my opinion,  it is a function of 
>    'inviscid_flux' and its input variables includes conserved quantity 'ul', 
>    flux 'fl', pressure 'pl', and velocity 'vl'. With the command of 
>    'pyfr.expand', the function of 'inviscid_flux' can be embedded within a 
>    kernel.
>
> Yes as the name implies this calculates the inviscid flux for a and given 
set of conservative variables. Also for convenience and to save on compute 
it does also return the velocities and pressure, as these are commonly used 
in the calculation of the approximate 'Riemann' flux. Yes 'expand' embeds 
the function that you pass it into the kernel, and it can be thought of as 
being somewhat similar to calling a subroutine in Fortran.

        Any hints are available. 
> Regards
> Kiny
>
>

-- 
You received this message because you are subscribed to the Google Groups "PyFR 
Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/pyfrmailinglist/d09e162e-249e-4c51-9b70-a8234f4e8511o%40googlegroups.com.

Reply via email to