Skip to main content

Step and solver options

Registered schemes use scheme(state, dt, f, *args, **kwargs) and return an IntegrationResult. Use the run API or a caller-owned stepping loop. Options are read by the relevant driver; arbitrary kwargs continue to reach the full state/RHS protocol. A custom RHS should accept the kwargs its consumer forwards.

OptionConsumer and contract
historyA StepHistory, threaded from result.history; required for a multistep method's steady-state formula
priorStepPrevious StageResult; consult supports_reuse / reuse_order. Unsupported drivers reject or warn; order-losing reuse is documented
verboseDriver/lifecycle logging; does not change numerical behavior
solverImplicit drivers accept a NonlinearSolver; default is JFNK
solver_optsMapping passed to the selected solver; validates known numerical controls at solve entry

Solver controls​

SolverOptions provides type hints. Built-in solvers validate finite positive tolerances (tol, gmres_tol, newton_tol, fd_eps), positive integer iteration counts (iterations, max_iterations, gmres_maxiter, gmres_restart, newton_stagnation_patience), and ratios in (0,1] (relaxation, newton_stagnation_ratio, line_search_min_step). line_search must be bool; matvec is fd or jvp, and preconditioning is left or right. Preconditioners must be callable, and their optional context must be a mapping.

Known override values are checked before evaluating the stage map, as well as constructor settings. Optional controls can use None to select documented defaults. Unknown extension keys retain their historical passthrough behavior; use SolverOptions type checking to catch misspellings. Arbitrary top-level RHS kwargs are not globally rejected. Custom solvers retain their own option contract.

JFNK validates its Newton/Krylov options; fixed-point solvers use iterations and optional tol, with relaxation for damped Picard. Valid unrelated options remain ignored by a solver that does not consume them. See solver diagnostics for termination semantics and precision-floor qualifications.

Family options​

FamilyOptions / assumptions
RKC1/RKC2/RKL2s is a positive integer, clamped to the method's documented minimum. Or supply finite nonnegative lambda_max to select stages. Intended for parabolic/autonomous dynamics; stage-time approximation remains documented
Newmarkbeta, gamma within the driver's admissible range; position/velocity state required
ROS3Pw='jvp'/'fd'/'linear', time derivative options and GMRES controls; linear mode carries its documented order qualification
ETD2RKMandatory linear RHS action, optional nonlinear remainder; phi_dim, phi_tol
EXPRB32w='jvp'/'fd', f_t='fd'/'none', Krylov and derivative controls
DIRK / coupled RKwarmStart is a first-stage StageResult for implicit-first DIRK, or a previous-stage list for coupled RK; an initial guess only
BDFstartup='implicit'/'explicit'; defaults to implicit on BDF3–5 and explicit on BDF2. Implicit mode uses order-matched L-stable starters
MultistepFixed dt, sufficient history and startup; timestep changes restart history
GeometricPosition/velocity fields and force/separability assumptions; optional declared drift fields

See each family page for full signatures and numerical qualifications. Tensor callbacks bind their own parameters through tensor_rhs; driver options do not enter their (t, y) signature. Particle selection/masking is system/RHS behavior.