In version 2.2.x, the solver can reduce the time step size and redo the current time step until a certain condition is met. This is useful if the solver needs to stop when, for example, one of the variables should reach the given value exactly (with the given tolerance), and the solver integrator should not “overshoot”. This version also includes several important updates, such as bug fixes and corrections for compiler warnings.
Refer to the Documentation pages for more information and examples.
Important changes:
- Added
solver_command::command
enum with Solution Manager functor return values. Used to send "commands" to the solver from the user-defined Solution Manager - The user can request the solver to decrease the time step size
- The user can request the solver to decrease the time step size and then redo the current time step
- Fix parentheses warning in
autodiff
- Fix
-Wall
and-Wextra
warnings (e.g., "reorder" and "unused variable" warnings) - Switch from
uint32_t
toint32_t
forint_type
- Switch from
uint64_t
toint64_t
forint_type
ifDAECPP_LONG
is defined - Fix relative error check
- Fix situation when the solver can decrease and then immediately increase the time step
- Fix tolerances for single precision