Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "Time/TimeSteppers/AdamsBashforth.hpp"
7 : #include "Time/TimeSteppers/AdamsMoultonPc.hpp"
8 : #include "Time/TimeSteppers/ClassicalRungeKutta4.hpp"
9 : #include "Time/TimeSteppers/DormandPrince5.hpp"
10 : #include "Time/TimeSteppers/Heun2.hpp"
11 : #include "Time/TimeSteppers/Rk3HesthavenSsp.hpp"
12 : #include "Time/TimeSteppers/Rk3Kennedy.hpp"
13 : #include "Time/TimeSteppers/Rk3Owren.hpp"
14 : #include "Time/TimeSteppers/Rk3Pareschi.hpp"
15 : #include "Time/TimeSteppers/Rk4Kennedy.hpp"
16 : #include "Time/TimeSteppers/Rk4Owren.hpp"
17 : #include "Time/TimeSteppers/Rk5Owren.hpp"
18 : #include "Time/TimeSteppers/Rk5Tsitouras.hpp"
19 : #include "Utilities/TMPL.hpp"
20 :
21 : namespace TimeSteppers {
22 : /// Typelist of available TimeSteppers
23 1 : using time_steppers =
24 : tmpl::list<AdamsBashforth, AdamsMoultonPc<false>, AdamsMoultonPc<true>,
25 : ClassicalRungeKutta4, DormandPrince5, Heun2, Rk3HesthavenSsp,
26 : Rk3Kennedy, Rk3Owren, Rk3Pareschi, Rk4Kennedy, Rk4Owren,
27 : Rk5Owren, Rk5Tsitouras>;
28 :
29 : /// Typelist of available LtsTimeSteppers
30 1 : using lts_time_steppers =
31 : tmpl::list<AdamsBashforth, AdamsMoultonPc<false>, AdamsMoultonPc<true>>;
32 :
33 : /// Typelist of available ImexTimeSteppers
34 1 : using imex_time_steppers =
35 : tmpl::list<Heun2, Rk3Kennedy, Rk3Pareschi, Rk4Kennedy>;
36 :
37 : /// Typelist of TimeSteppers whose substep times are strictly increasing
38 1 : using increasing_substep_time_steppers =
39 : tmpl::list<AdamsBashforth, Rk3Owren, Rk4Owren>;
40 :
41 : /// Typelist of LtsTimeSteppers with monotonic() true, i.e., those
42 : /// that work with control systems.
43 1 : using monotonic_lts_time_steppers =
44 : tmpl::list<AdamsBashforth, AdamsMoultonPc<true>>;
45 : } // namespace TimeSteppers
|