SolvSRK-UQ: Integration
Preconditions
import solvsrk
assert solvsrk.license_valid()
assert solvsrk.license_has_uq(), "trial or SolvSRK-UQ / Edge seat required"Without the entitlement, emit_uq returns failure_mode=license.
Enable the terminal envelope
import numpy as np
import solvsrk
def rhs(t, y):
return np.array([-y[0], -2.0 * y[1]])
cfg = solvsrk.config_defaults()
result = solvsrk.run(
cfg, ndim=2, t0=0.0, t_end=1.0, y0=(1.0, 1.0), rhs_fn=rhs,
emit_uq=True, noise_sigma=1e-3,
)
# Terminal y(T) ± σ(T) fields — see result keys in journey 04_diagnostics
print(result.get("uq_sigma"), result.get("uq_t_handoff"))You can also set cfg.emit_uq = 1 and cfg.noise_sigma before run() when using the C struct directly.
C API
solvsrk_config_t cfg;
solvsrk_config_defaults(&cfg);
cfg.emit_uq = 1;
/* cfg.noise_sigma = 1e-3; */
solvsrk_run(&cfg, ndim, t0, t_end, y0, rhs_fn, ...);Diagnostics (deep)
trace = solvsrk.uq_ek_handoff_trace(cfg, ndim, t0, t_end, y0, rhs_fn, noise_sigma=0.0)
# front-phase (t, h, y, sigma) steps — gated on the same UQ entitlementRunnable walkthrough: journey 04_diagnostics.py in the SolvSRK examples
package (also mirrored on the Examples page).
What UQ is not
- Not a residual-bound ROM certificate
- Not Monte Carlo — single pass only
- Not a replacement for domain-specific validation of the underlying model
- Not included in purchased base SolvSRK (trial and UQ/Edge seats only)
Related products
Base integrator: SolvSRK. Included on Edge: SolvSRK-Edge.