Skip to content

Commit d76fd20

Browse files
authored
Remove Rosenbrock-Euler and Ros2 methods (#2015)
Removes the Rosenbrock-Euler and Ros2 methods. These are not performance-competitive for any networks. The remaining Rosenbrock methods all have both stiff accuracy and stiffly accurate embedded error estimators (which Rosenbrock-Euler and Ros2 do not have).
1 parent 844166b commit d76fd20

4 files changed

Lines changed: 1 addition & 91 deletions

File tree

Docs/source/ode_integrators.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,6 @@ Presently, allowed integrators are:
7070

7171
* ``3`` : ROS2S method, a 2nd order, stiff-accurate method :cite:`ros2s`.
7272

73-
* ``4`` : ROS2 method, a 2nd order, L-stable method :cite:`ros2`.
74-
75-
* ``5`` : Rosenbrock-Euler, a first-order method.
76-
7773
Here the "P" suffix refers to methods developed to satisfy the stiff
7874
accuracy conditions of :cite:`Prothero1974` (ROS2S also satisfies
7975
these).

integration/Rosenbrock/_parameters

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ X_reject_buffer real 1.0
88
# 0 = Rodas5P 8-stage method from DifferentialEquations.jl
99
# 1 = Rodas4P 6-stage method from DifferentialEquations.jl
1010
# 2 = Rodas3P 5-stage method from DifferentialEquations.jl
11-
# 3 = existing 3-stage ROS2S tableau
12-
# 4 = Verwer et al. (1999) 2-stage ROS2 tableau
13-
# 5 = Rosenbrock-Euler 1-stage method
11+
# 3 = ROS2S 3-stage method from Hamkar et al. (2012)
1412
rosenbrock_tableau int 0
1513

1614
# H211b timestep controller parameters

integration/Rosenbrock/rosenbrock_integrator.H

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -597,12 +597,6 @@ int rosenbrock_integrator (BurnT& state, rosenbrock_t<integrator_neqs<BurnT>()>&
597597
if (integrator_rp::rosenbrock_tableau == 3) {
598598
return rosenbrock_integrator<BurnT, rosenbrock::ros2s_tableau>(state, rstate);
599599
}
600-
if (integrator_rp::rosenbrock_tableau == 4) {
601-
return rosenbrock_integrator<BurnT, rosenbrock::ros2_tableau>(state, rstate);
602-
}
603-
if (integrator_rp::rosenbrock_tableau == 5) {
604-
return rosenbrock_integrator<BurnT, rosenbrock::rosenbrock_euler_tableau>(state, rstate);
605-
}
606600

607601
return rosenbrock_integrator<BurnT, rosenbrock::rodas5p_tableau>(state, rstate);
608602
}

integration/Rosenbrock/rosenbrock_tableau.H

Lines changed: 0 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -66,47 +66,6 @@ struct ros2s_tableau {
6666
}
6767
};
6868

69-
struct ros2_tableau {
70-
static constexpr int stages = 2;
71-
static constexpr amrex::Real gamma = 1.7071067811865475_rt;
72-
73-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
74-
static constexpr amrex::Real ct (const int i) {
75-
(void) i;
76-
return 1.0_rt;
77-
}
78-
79-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
80-
static constexpr amrex::Real a (const int i, const int j) {
81-
if (i == 2 && j == 1) {
82-
return 0.585786437626905_rt;
83-
}
84-
return 0.0_rt;
85-
}
86-
87-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
88-
static constexpr amrex::Real c (const int i, const int j) {
89-
if (i == 2 && j == 1) {
90-
return -1.1715728752538102_rt;
91-
}
92-
return 0.0_rt;
93-
}
94-
95-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
96-
static constexpr amrex::Real b (const int i) {
97-
if (i == 1) {
98-
return 0.8786796564403575_rt;
99-
}
100-
return 0.2928932188134525_rt;
101-
}
102-
103-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
104-
static constexpr amrex::Real e (const int i) {
105-
(void) i;
106-
return 0.2928932188134525_rt;
107-
}
108-
};
109-
11069
struct rodas3p_tableau {
11170
static constexpr int stages = 5;
11271
static constexpr amrex::Real gamma = 1.0_rt / 3.0_rt;
@@ -530,43 +489,6 @@ struct rodas4p_tableau {
530489
}
531490
};
532491

533-
struct rosenbrock_euler_tableau {
534-
static constexpr int stages = 1;
535-
static constexpr amrex::Real gamma = 1.0_rt;
536-
537-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
538-
static constexpr amrex::Real ct (const int i) {
539-
(void) i;
540-
return 0.0_rt;
541-
}
542-
543-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
544-
static constexpr amrex::Real a (const int i, const int j) {
545-
(void) i;
546-
(void) j;
547-
return 0.0_rt;
548-
}
549-
550-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
551-
static constexpr amrex::Real c (const int i, const int j) {
552-
(void) i;
553-
(void) j;
554-
return 0.0_rt;
555-
}
556-
557-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
558-
static constexpr amrex::Real b (const int i) {
559-
(void) i;
560-
return 1.0_rt;
561-
}
562-
563-
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
564-
static constexpr amrex::Real e (const int i) {
565-
(void) i;
566-
return 1.0_rt;
567-
}
568-
};
569-
570492
using coefficients = rodas5p_tableau;
571493

572494
}

0 commit comments

Comments
 (0)