Product documentation — installation, licensing, and integration guides.
SolvSRK
Integration

SolvSRK: Integration

Python API

import numpy as np
import solvsrk
 
def rhs(t, y):
    return np.array([-y[0]])
 
cfg = solvsrk.config_defaults()
cfg.cvode_rtol = 1e-6
cfg.cvode_atol = 1e-8
 
result = solvsrk.run(cfg, ndim=1, t0=0.0, t_end=10.0, y0=(1.0,), rhs_fn=rhs)
# result["survived"], result["y_final"], result["nfev"], result["wall_s"]

SolvSRK-UQ (terminal envelope)

Trials include UQ. Purchased seats need the SolvSRK-UQ add-on (features: uq) or SolvSRK-Edge (features: edge).

import solvsrk
 
if solvsrk.license_has_uq():
    cfg = solvsrk.config_defaults()
    result = solvsrk.run(
        cfg, ndim=1, t0=0.0, t_end=10.0, y0=(1.0,), rhs_fn=rhs,
        emit_uq=True, noise_sigma=1e-3,
    )
    # result["uq_sigma"], result["uq_t_handoff"]

Full walkthrough: SolvSRK-UQ and journey 04_diagnostics.py.

C API

#include "solvsrk.h"
 
solvsrk_config_t cfg;
solvsrk_config_defaults(&cfg);
 
solvsrk_result_t res;
solvsrk_run(&cfg, ndim, t0, t_end, y0, rhs_fn, NULL, NULL, NULL, &res);

See c/docs/API_v2.md in the distribution repo for the full ABI.

Editions

  • SolvSRK-Edge — same binary, cross-compiled for tactical targets (includes UQ)
  • SolvSRK-UQemit_uq=True terminal uncertainty envelope (trial-included; purchased add-on)

Related products

Filter primitive: SolvFilter. Deterministic substrate: SolvNum. UQ add-on: SolvSRK-UQ.