Algorithms#
List of all algorithms (skeleton of each numerical method to solve)
Runge-Kutta methods#
Explicit methods#
-
template<typename value_t>
using ponio::runge_kutta::euler_t = explicit_runge_kutta::explicit_runge_kutta<butcher_euler<value_t>># Euler method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::explicit_euler_sub4_t = explicit_runge_kutta::explicit_runge_kutta<butcher_explicit_euler_sub4<value_t>># Explicit Euler sub4 method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk6es_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk6es<value_t>># RK6ES method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_118_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_118<value_t>># RK (11,8) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_21_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_21<value_t>># RK (2,1) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_22_midpoint_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_22_midpoint<value_t>># RK (2,2) mid-point method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_22_ralston_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_22_ralston<value_t>># RK (2,2) Ralston method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_32_best_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_32_best<value_t>># RK (3,2) best method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_33_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_33<value_t>># RK (3,3) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_33_233e_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_33_233e<value_t>># RK (3,3) 233e method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_33_bogackishampine_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_33_bogackishampine<value_t>># RK (3,3) Bogacki-Shampine method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_33_heun_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_33_heun<value_t>># RK (3,3) Heun method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_33_ralston_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_33_ralston<value_t>># RK (3,3) Ralston method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_33_van_der_houwen_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_33_van_der_houwen<value_t>># RK (3,3) Van der Houwen method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_44_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_44<value_t>># RK (4,4) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_44_235j_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_44_235j<value_t>># RK (4,4) 235j method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_44_38_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_44_38<value_t>># RK (4,4) 3/8 method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_44_ralston_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_44_ralston<value_t>># RK (4,4) Ralston method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_65_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_65<value_t>># RK (6,5) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_65_236a_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_65_236a<value_t>># RK (6,5) 236a method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_76_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_76<value_t>># RK (7,6) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_86_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_86<value_t>># RK (8,6) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_nssp_21_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_nssp_21<value_t>># RK NSSP (2,1) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_nssp_32_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_nssp_32<value_t>># RK NSSP (3,2) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_nssp_33_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_nssp_33<value_t>># RK NSSP (3,3) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_nssp_53_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_nssp_53<value_t>># RK NSSP (5,3) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_spp_43_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_spp_43<value_t>># RK SPP (4,3) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_ssp_22_heun_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_ssp_22_heun<value_t>># RK SSP (2,2) Heun method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_ssp_32_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_ssp_32<value_t>># RK SSP (3,2) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_ssp_33_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_ssp_33<value_t>># RK SSP (3,3) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
-
template<typename value_t>
using ponio::runge_kutta::rk_ssp_42_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk_ssp_42<value_t>># RK SSP (4,2) method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
Embedded methods#
-
template<typename value_t>
using ponio::runge_kutta::rk54_6m_t = explicit_runge_kutta::explicit_runge_kutta<butcher_rk54_6m<value_t>># RK5(4) 6M method.
see more on ponio
- Template Parameters:
value_t – type of coefficient (
double
by default)
Lawson methods#
This Lawson methods have a underlying Runge-Kutta method, they have the same name just prefixed by l
.
Lawson methods are build to solve a problem like:
First, we introduce the change of variable
which yields the equation
which can be rewrite in term of \(u\) as
We solve this equation with a classical Runge-Kutta method RK(\(s\),:math:n) with \(s\) stages and of order \(n\). We rewrite the scheme in term of the variable \(v\), which yields the following scheme
Explicit methods#
-
template<typename Exp_t>
auto ponio::runge_kutta::leuler(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lexplicit_euler_sub4(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk6es(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_118(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_21(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_22_midpoint(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_22_ralston(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_32_best(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_33(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_33_233e(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_33_bogackishampine(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_33_heun(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_33_ralston(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_33_van_der_houwen(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_44(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_44_235j(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_44_38(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_44_ralston(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_65(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_65_236a(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_76(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_86(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_nssp_21(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_nssp_32(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_nssp_33(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_nssp_53(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_spp_43(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_ssp_22_heun(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_ssp_32(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_ssp_33(Exp_t exp_, double tol = ponio::default_config::tol)#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk_ssp_42(Exp_t exp_, double tol = ponio::default_config::tol)#
Embedded methods#
-
template<typename Exp_t>
auto ponio::runge_kutta::lrk54_6m(Exp_t exp_, double tol = ponio::default_config::tol)#
Runge-Kutta Chebyshev methods#
-
template<std::size_t N_stages_, typename value_t = double>
class explicit_rkc2# define RKC2 with user defined number of stages
- Template Parameters:
N_stages_ – number of stages
value_t – type of coefficients