tvd_rk3_step Subroutine

private subroutine tvd_rk3_step(state)

Advance the solution by one time step using the TVD-RK3 scheme.

Third-order Strong Stability Preserving Runge-Kutta (Shu & Osher, 1988):

Q^(1) = Q^n + dt * R(Q^n) Q^(2) = 3/4 * Q^n + 1/4 * Q^(1) + 1/4 * dt * R(Q^(1)) Q^{n+1} = 1/3 * Q^n + 2/3 * Q^(2) + 2/3 * dt * R(Q^(2))

Also computes the global L2 residual norm for convergence monitoring.

Arguments

Type IntentOptional Attributes Name
type(solver_state_t), intent(inout) :: state