Skip to main content
The Ionworks DAE Solver (IonworksSolver) is a faster drop-in replacement for PyBaMM’s IDAKLUSolver. It returns the same results as IDAKLU and falls back to it automatically for models it can’t accelerate. It is the default solver behind ionworkspipeline.Simulation, so every pipeline submission and SDK simulation uses it automatically — there is nothing to configure.
The fast path currently supports fixed output time steps only, with linear interpolation between the t_eval and t_interp points. Models with events (such as voltage cut-offs) are run through IDAKLU instead.

Using the solver directly

You normally don’t need to touch the solver. To use it with a stock pybamm.Simulation:
import pybamm
from ionworkspipeline.solvers import IonworksSolver

model = pybamm.lithium_ion.DFN()
solver = IonworksSolver(atol=1e-6, rtol=1e-4)

sim = pybamm.Simulation(model, solver=solver)
solution = sim.solve(t_eval=[0, 3600])
IonworksSolver accepts the same constructor arguments as pybamm.IDAKLUSolver.