Configuration Reference
This page is the single index of every entry-point keyword argument for a
solve: the explicit parameters of solve_ivp() and
Solver (__init__() and
solve()), plus how the remaining loose keyword arguments
are routed to the six underlying settings groups. Deep-dive pages for each
group are linked at the end of each section.
Entry-point signatures
solve_ivp()
solve_ivp() builds a Solver and runs a
single batch solve.
Argument |
Default |
Effect |
|---|---|---|
|
|
Integration algorithm name (see Choosing an Algorithm). |
|
|
Total integration time. |
|
|
Warm-up period before outputs are recorded. |
|
|
Initial integration time. |
|
|
State/observable names to save; |
|
|
State/observable names to summarise; |
|
|
|
|
|
Timing verbosity: |
|
|
Trajectories with a nonzero status code are NaN-masked in the output. |
Any other keyword argument is forwarded to Solver.
Solver.__init__()
Argument |
Default |
Effect |
|---|---|---|
|
|
Integration algorithm name or a supplied
|
|
|
Compiles every kernel and device function with source-line
correlation data for profilers such as Nsight Compute. |
|
|
Compiled-kernel disk caching; accepts |
|
|
Whether to use in-built heuristics for buffer locations in
memory, loop unrolling, block size and resident blocks per SM.
Does not override manual |
|
|
Same options as above. |
step_control_settings, algorithm_settings, output_settings,
memory_settings, and loop_settings are explicit dictionaries that
override the per-group defaults; any of their keys may also be supplied as
loose keyword arguments (see “Kwarg routing” below).
Solver.solve()
Argument |
Default |
Effect |
|---|---|---|
|
|
Total integration time. |
|
|
Warm-up period before outputs are recorded. |
|
|
Initial integration time. |
|
|
CUDA threads per block for this launch; |
|
|
Differs from |
|
|
Return a
|
|
|
Same behaviour as above; ignored when |
Any other keyword argument is forwarded to update(),
routing through the same six settings groups described next.
Kwarg routing
Beyond the explicit parameters above, Solver accepts loose
keyword arguments and sorts them into settings groups. Any parameter
below may be passed directly to solve_ivp(),
Solver, or update():
Group |
Parameters |
Deep-dive page |
|---|---|---|
Step control |
|
|
Algorithm |
|
|
Output |
|
|
Timing / loop |
|
|
Memory |
|
|
Cache |
|
|
Kernel |
|
A keyword argument that is neither a setting nor a constant of the
system raises KeyError. Constants are given by name, at
construction or through update.
Notes on selected parameters
- step_controller
Selects the step-size controller by name:
"fixed","i","pi","pid", or"gustafsson". When omitted, the chosen algorithm’s own default controller is used — fixed for schemes without an embedded error estimate, otherwise PI for explicit Runge–Kutta and Gustafsson for the implicit families. See Choosing an Algorithm and the algorithm defaults table in the API reference.- max_registers
Per-thread register cap forwarded to
cuda.jit. DefaultNoneleaves register allocation toptxas; capping trades spill traffic for more resident warps. See Making it Faster (basic).- blocksize
Threads per block for every launch;
solve(blocksize=...)overrides one launch. Unset, the solver picks a block size itself.- mem_proportion
Proportion of VRAM (0.0–1.0) reserved for this solver’s allocations. Default
Noneplaces the solver in the automatic pool, which shares the VRAM remaining after manually-proportioned solvers are accounted for equally between its members. See GPU Memory Management.