I am very keen to understand how the time-integration scheme works. Although my foundation in numerical analysis is quite weak, I still want to try my best to comprehend it, despite facing difficulties.
Firstly, I would like to know if the rk4 scheme in pyFR is the same as the fourth-order explicit Runge-Kutta described in textbooks?
Secondly, in some papers related to pyFR, they mention a four-stage, third-order adaptive Runge-Kutta scheme and a five-stage fourth-order adaptive Runge-Kutta scheme. Do these correspond exactly to rk34 and rk45, respectively?
I completely understand that “adaptive” refers to adaptive step sizes, but what does “stage” mean here? I am not familiar with such methods classified by their number of stages. Is this a fairly common usage?
I am also quite puzzled about the relationship between “stage” and “adaptive”. Is it because the step size is adaptive that the stage number is one higher than the order number, or is “adaptive” unrelated to “stage”, and does a mathematical concept like a five-stage fourth-order Runge-Kutta scheme (no adaptive) exist?
Thirdly, I am curious about the accuracy of rk34 and rk45. What are their respective orders of accuracy for time-stepping? Third order? Fourth order? Fifth order? Is the spatial discretization accuracy set by the ‘order’ in the solver settings? Should I ensure that my time-stepping accuracy matches the spatial discretization accuracy? What happens if they do not match?
Lastly, I would like to know where I can learn more about accuracy settings in pyFR?
I apologize if my questions seem elementary due to my poor foundation, but I still hope to receive answers to each one, especially concerning the meaning of “stage”, which has puzzled me for a long time. I am very grateful to everyone in the forum.
If you look at that second link, you can see the A matrix values and the b vector values from the Butcher tableaux. The point of these schemes is that the two b vectors give different approximation orders, so the error can be approximated. This is then how adaptive time stepping works.
For more information, Butcher’s book “Numerical methods for ordinary differential equations” is a good read.
Thank you for your prompt response, I have made every effort to understand it.
Thus, RK4, a standard fourth-order Runge-Kutta scheme, can be understood as a four-stage, fourth-order Runge-Kutta scheme. Is this interpretation accurate?
RK34 is a third-order accuracy algorithm. It employs a four-stage process specifically because adaptive time-step advancement is required. This suggests that if adaptive time-step advancement were not necessary, a four-stage process might not be needed. Is this understanding correct?
Adaptive time-step advancement algorithms dynamically adjust the step size based on error estimates from the current step. By embedding an auxiliary estimate(bhat), which is compared to the main estimate(b), it is possible to assess the error under the current step size, thus enabling adaptive step size. For RK34, if the main estimate is of third order, is the auxiliary estimate also of third order?
I would greatly appreciate it if you could clarify these doubts. Meanwhile, I will continue to diligently study Butcher’s book 'Numerical Methods for Ordinary Differential Equations.