From b44c7ac133de3792a283d3231f9910c0f4c256ea Mon Sep 17 00:00:00 2001 From: Ekin Ozturk Date: Thu, 16 Oct 2025 00:33:05 +0100 Subject: [PATCH 1/3] Update explicit_integration_schemes.py Renamed Heun's Method to Ralston's to be in line with the Wikipedia naming nomenclature. Additionally added the Heun's method that is not Ralston. --- .../explicit_integration_schemes.py | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/desolver/integrators/explicit_integration_schemes.py b/desolver/integrators/explicit_integration_schemes.py index 8d00036..376b438 100644 --- a/desolver/integrators/explicit_integration_schemes.py +++ b/desolver/integrators/explicit_integration_schemes.py @@ -242,14 +242,14 @@ class MidpointSolver(RungeKuttaIntegrator): [[0, 0, 1]], dtype=numpy.float64 ) -class HeunsSolver(RungeKuttaIntegrator): +class RalstonsSolver(RungeKuttaIntegrator): """ The derived class that implements Heun's method. """ __order__ = 2.0 - __alt_names__ = ("Explicit Heun's", "Heun's") + __alt_names__ = ("Explicit Ralston's", "Ralston's") tableau_intermediate = numpy.array( [[0, 0, 0 ], @@ -260,6 +260,24 @@ class HeunsSolver(RungeKuttaIntegrator): [[0, 1/4, 3/4]], dtype=numpy.float64 ) +class HeunsSolver(RungeKuttaIntegrator): + """ + The derived class that implements Heun's method. + """ + + __order__ = 2.0 + + __alt_names__ = ("Explicit Heun's", "Heun's") + + tableau_intermediate = numpy.array( + [[0, 0, 0], + [1, 1, 0]], dtype=numpy.float64 + ) + + tableau_final = numpy.array( + [[0, 1/2, 1/2]], dtype=numpy.float64 + ) + class EulerSolver(RungeKuttaIntegrator): """ The derived class that implements the Euler method. From d780e427fd998ec080e3c2e58977dc09a23b8c73 Mon Sep 17 00:00:00 2001 From: Ekin Ozturk Date: Thu, 16 Oct 2025 00:37:36 +0100 Subject: [PATCH 2/3] Update __init__.py Adds Ralston's Solver to the list of available integrators --- desolver/integrators/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/desolver/integrators/__init__.py b/desolver/integrators/__init__.py index ef31f89..a334f36 100644 --- a/desolver/integrators/__init__.py +++ b/desolver/integrators/__init__.py @@ -18,6 +18,7 @@ RK4Solver, MidpointSolver, HeunsSolver, + RalstonsSolver, EulerSolver, EulerTrapSolver, HeunEulerSolver, From 2cb4e123a951612a60eb7bcd63e26397ab225bae Mon Sep 17 00:00:00 2001 From: Ekin Ozturk Date: Thu, 16 Oct 2025 00:40:20 +0100 Subject: [PATCH 3/3] Update explicit_integration_schemes.py Added RalstonsSolver to the list of exported classes. --- desolver/integrators/explicit_integration_schemes.py | 1 + 1 file changed, 1 insertion(+) diff --git a/desolver/integrators/explicit_integration_schemes.py b/desolver/integrators/explicit_integration_schemes.py index 376b438..f9a4ed9 100644 --- a/desolver/integrators/explicit_integration_schemes.py +++ b/desolver/integrators/explicit_integration_schemes.py @@ -11,6 +11,7 @@ 'RK4Solver', 'MidpointSolver', 'HeunsSolver', + 'RalstonsSolver', 'EulerSolver', 'EulerTrapSolver', 'HeunEulerSolver',