Skip to content
Alexander Michalek edited this page Aug 18, 2025 · 1 revision

Non-linear Routing Solver Using RK Methods

Overview

This solver addresses non-linear routing equations by integrating user-specified ordinary differential equations (ODEs). It leverages adaptive and fixed-step Runge-Kutta methods to balance accuracy and computational efficiency.

Integration Methods

  • RK45 (Dormand-Prince): The default solver is an adaptive Runge-Kutta-Fehlberg 4(5) method (RK45), which dynamically adjusts step sizes to meet user-defined error tolerances. This ensures accurate solutions for stiff or highly non-linear routing problems.
  • RK4 Fixed Step: For performance optimization, users can select predefined levels where a classical Runge-Kutta 4th-order (RK4) fixed-step method is applied. This provides faster computation when strict adaptive control is not critical.

User Configuration

  • Tolerances: Users can specify absolute and relative error tolerances, which guide the adaptive RK45 solver.
  • Performance Levels: Users may select levels to allow RK4 fixed-step integration in less sensitive portions of the solution, trading some precision for speed.

Library Used

The solver is implemented using Boost.Numeric.ODEInt, a C++ library providing flexible and efficient ODE integration with support for both adaptive and fixed-step Runge-Kutta methods.

Applications

  • Network routing simulations
  • Non-linear system analysis
  • Performance-sensitive ODE modeling

References

Clone this wiki locally