RKF45 algorithm

This commit is contained in:
2023-05-15 20:29:06 -04:00
parent 315e9a98de
commit 5db3680b31
5 changed files with 325 additions and 62 deletions

View File

@@ -68,7 +68,9 @@ should be a `;` sperated list of `key=value` pairs. The possible keys are
* `print_freq` (long int, default 1000): only print every `print_freq` steps.
* `starting_time` (long int, default 0): start the computation at this step.
* `starting_step` (long int, default 0): start the computation at this step.
* `starting_time` (double, default starting_time*delta): start the computation at this time.
* `driving`: either `zero` for no driving, `test` (default) for a testing
driving force or `file:<filename>` or `file_txt:<filename>` to read the
@@ -91,7 +93,14 @@ should be a `;` sperated list of `key=value` pairs. The possible keys are
* `random_seed` (int, default ): seed for random initialization.
* `algorithm`: either `RK4` for Runge-Kutta 4, or `RK2` for Runge-Kutta 2.
* `algorithm`: either `RK4` for Runge-Kutta 4, `RK2` for Runge-Kutta 2, or
`RKF45` for the Runge-Kutta-Fehlberg adaptive step method.
* `adaptive_tolerance` (double, default 1e-11): when using an adaptive step
method, this is the maximal allowed relative error.
* `adaptive_factor` (double, default 0.9): when using the RKF45 method, the
step gets adjusted by `factor*delta*(tolerance/error)^(1/5)`.
# Interrupting/resuming the computation