Have a personal or library account? Click to login
Integrating Odeint Time Stepping into OpenFPM for Distributed and GPU Accelerated Numerical Solvers Cover

Integrating Odeint Time Stepping into OpenFPM for Distributed and GPU Accelerated Numerical Solvers

Open Access
|Mar 2026

Figures & Tables

Table 1

Explicit time-stepping schemes provided by Odeint.

CATEGORYMETHODACCURACY ORDER
fixed step sizeexplicit Euler1
modified midpoint2
Runge–Kutta 44
Runge–Kutta–Cash–Karp 545
Runge–Kutta–Dopri 55
Runge–Kutta–Fehlberg 788
dynamic step sizeRunge–Kutta–Cash–Karp 545
Runge–Kutta–Dopri 55
Runge–Kutta–Fehlberg 788
multi-stepAdams–Bashforth1…8
Adams–Bashforth–Moulton1…8
symplecticsymplectic Euler1
velocity Verlet2
Runge–Kutta–McLachlan4
Figure 1

Architecture of the Odeint library. In each iteration, the state 𝐮 is advanced from a time t1 to a later time t2 = t1 + δt, δt > 0. The right-hand side (t,u(t)) of the ODE system is encapsulated in the System functor. An Algebra defines mathematical operations over the state-type, i.e., the data type of the state. An optional Observer functor can execute user code at the beginning of every time step.

Listing 1

The OpenFPM distributed vector state-type for Odeint.

Figure 2

Numerical convergence of time-integration schemes with increasing numbers of time steps. (a,b) L(◆) and L2(•) error norms for the exponential dynamics of Eq. (1a) (a) and the sigmoidal dynamics of Eq. (1b) (b) with different one-step multi-stage methods (colors, inset legend). Solid lines indicate the theoretically expected slopes. (c,d) L(◆) error norms for the exponential (c) and sigmoidal (d) dynamics solved using Adams–Bashforth with different numbers of steps (1…8, colors, inset legend). Solid lines indicate the theoretically expected slopes.

Figure 3

Strong scaling of the OpenFPM+Odeint time integration schemes with increasing numbers of CPU cores and on a GPU. (a) Average wall-clock times in seconds over three independent runs of solving the exponential dynamics from Eq. (1a) using different one-step multi-stage methods (colors, inset legend, error bars below symbol size). The solid black line indicates the optimal speed-up. (b) Average wall-clock times in seconds over 3 independent runs for the 3D Gray-Scott Eq. (2) using different one-step multi-stage methods (colors, inset legend, error bars below symbol size). The solid black line indicates the speed-up for 80% parallel efficiency. (c) Average wall-clock speedups for the SPH dam break case, normalized to the run times reported for the reference CPU implementation without Odeint from [8] (=1.0). All results are averaged over three independent runs (error bars show standard deviation) for different numbers of particles (bar groups). Speedups are given for a single Nvidia GeForce RTX 4090 GPU (blue bars), compared with running the code without the present Odeint interface on the same GPU (orange bars), and running and OpenFPM+Odeint code on 32 cores of an AMD Ryzen 3990X CPU (green bars). (d) Visualization of the fluid, colored by velocity magnitude (color bar), of the SPH dam break case with 1.2 million particles. An OpenFPM domain decomposition onto four processes is shown in the inset figure (one color per process).

Table 2

Software dependencies of OpenFPM.

DEPENDENCYUSED BYOPTIONALVERSION
OpenMPIopenfpm_vclusterNO4.1.6
METISopenfpm_pdataYES (or ParMETIS)5.1.0
ParMETISopenfpm_pdata, openfpm_numericsYES (or METIS)4.0.3
BOOSTopenfpm_data, openfpm_vcluster, openfpm_io, openfpm_pdata, openfpm_numericsNO1.84.0
zlibopenfpm_ioNO1.3.1
HDF5openfpm_ioNO1.14.3
Vcopenfpm_dataNO1.4.4
libhilbertopenfpm_dataNOmaster
HIPopenfpm_devicesYes
alpakaopenfpm_devicesYes
OpenBLASopenfpm_numericsNO0.3.26
suitesparseopenfpm_numericsNO5.7.2
Eigenopenfpm_numericsYes (or Petsc)3.4.0
Blitz++openfpm_numericsNO1.0.2
Algoimopenfpm_numericsNOmaster
PETScopenfpm_numericsYes (or Eigen)3.20.5
Listing 2

Odeint System functor for the 3D Gray-Scott problem in OpenFPM.

Listing 3

An OpenFPM program using an Odeint time stepper.

DOI: https://doi.org/10.5334/jors.598 | Journal eISSN: 2049-9647
Language: English
Submitted on: Jul 8, 2025
|
Accepted on: Feb 17, 2026
|
Published on: Mar 6, 2026
Published by: Ubiquity Press
In partnership with: Paradigm Publishing Services
Publication frequency: 1 issue per year

© 2026 Abhinav Singh, Landfried Kraatz, Serhii Yaskovets, Pietro Incardona, Ivo F. Sbalzarini, published by Ubiquity Press
This work is licensed under the Creative Commons Attribution 4.0 License.