Skip to content

Runge Kutta Time Stepping Scheme

Man-Long Wong edited this page May 1, 2023 · 4 revisions

The Runge-Kutta (RK) time stepping scheme can be changed by specifying the coefficients in the RungeKuttaLevelIntegrator section of the input file. By default, the three stages third-order TVD-RK3/SSP-RK33 time integration method is used if no RungeKuttaWeights section is specified.

If the traditional four stages fourth-order time integration method is used the following weights can be added to RungeKuttaLevelIntegrator through the RungeKuttaWeights section:

RungeKuttaWeights
{
    number_steps = 4

    alpha_0 = 1.0
    alpha_1 = 1.0, 0.0
    alpha_2 = 1.0, 0.0, 0.0
    alpha_3 = 1.0, 0.0, 0.0, 0.0

    beta_0 = 0.5
    beta_1 = 0.0, 0.5
    beta_2 = 0.0, 0.0, 1.0
    beta_3 = 0.16666666666, 0.33333333333, 0.33333333333, 0.16666666666

    gamma_0 = 0.16666666666
    gamma_1 = 0.0, 0.33333333333
    gamma_2 = 0.0, 0.0, 0.33333333333
    gamma_3 = 0.0, 0.0, 0.0, 0.16666666666
}

If the five stages fourth-order SSP-RK54 time integration method is used, the following weights can be added to RungeKuttaLevelIntegrator through the RungeKuttaWeights section:

RungeKuttaWeights
{
    number_steps = 5

    alpha_0 = 1.0
    alpha_1 = 0.444370493651235, 0.555629506348765
    alpha_2 = 0.620101851488403, 0.0, 0.379898148511597
    alpha_3 = 0.178079954393132, 0.0, 0.0, 0.821920045606868
    alpha_4 = 0.0, 0.0, 0.517231671970585, 0.096059710526147, 0.386708617503269

    beta_0 = 0.391752226571890
    beta_1 = 0.0, 0.368410593050371
    beta_2 = 0.0, 0.0, 0.251891774271694
    beta_3 = 0.0, 0.0, 0.0, 0.544974750228521
    beta_4 = 0.0, 0.0, 0.0, 0.063692468666290, 0.226007483236906

    gamma_0 = 0.146811876084787
    gamma_1 = 0.0, 0.248482909444976
    gamma_2 = 0.0, 0.0, 0.104258830331981
    gamma_3 = 0.0, 0.0, 0.0, 0.210746432235061
    gamma_4 = 0.0, 0.0, 0.0, 0.063692468666290, 0.226007483236906
}

The default TVD-RK3/SSP-RK33 time integration method uses the following weights (no need to specify if used):

RungeKuttaWeights
{
    number_steps = 3

    alpha_0 = 1.0
    alpha_1 = 0.75, 0.25
    alpha_2 = 0.33333333333, 0.0, 0.66666666666

    beta_0 = 1.0
    beta_1 = 0.0, 0.25
    beta_2 = 0.0, 0.0, 0.66666666666

    gamma_0 = 0.16666666666
    gamma_1 = 0.0, 0.16666666666
    gamma_2 = 0.0, 0.0, 0.66666666666
}
Clone this wiki locally