Product documentation — installation, licensing, and integration guides.
SolvSRK
Examples
01 First contact

Journey 01 — First contact

Confirm the wheel, native libsolvsrk, license state, machine code, and the smallest successful integration (exponential decay with known exact answer).

Prerequisites: Release wheel from resonix.io/account and activated solvsrk.lic. Scenario: Version, license, and the smallest successful solve

Key APIs

  • solvsrk.__version__
  • solvsrk.license_valid()
  • solvsrk.machine_code_formatted()
  • solvsrk.run(cfg, ndim, t0, t_end, y0, rhs_fn)

Concepts to internalize

  • survived — True when t_end was reached; your go/no-go flag.
  • Result dict — plain Python types (no ctypes leaking). Log it in production.
  • RHS callback — Python rhs(t, y) marshalled to the C core; there is no second Python engine.
  • Machine code — safe to paste in the portal when requesting a seat.

Important code

The guided tour script wraps this pattern. Copy the production shape into your pipeline:

import solvsrk
import numpy as np
 
cfg = solvsrk.config_defaults()
cfg.cvode_rtol = 1e-10
 
def rhs(t, y):
    return -y  # dy/dt = -y
 
result = solvsrk.run(cfg, ndim=1, t0=0.0, t_end=1.0, y0=(1.0,), rhs_fn=rhs)
print(result['survived'], result['y_final'])
print(np.exp(-1.0), result['y_final'][0])  # sanity check

Act-by-act walkthrough

Act 1 — What you are doing

Confirm the wheel and the native libsolvsrk load, see your license state, and run the smallest ODE that proves the solver is alive.

Act 2 — Version

Every support ticket starts with the package version.

FieldValueNotes
version2.5.0

Act 3 — License

SolvSRK is gated by a machine-locked .lic file. Activate at resonix.io/account: run python -m solvsrk, paste your Machine Code, download solvsrk.lic, then python -m solvsrk activate path/to/solvsrk.lic.

FieldValueNotes
license_validTrue
days_remaining18
license_infovalid=1 licensee=release-stream-516228fd67d6@example.com seat_id=trial expires=2026-09-26 duration_days=30 days_remaining=18 features=uq

Act 4 — Machine code

If activation fails, this is the fingerprint you paste into the Resonix portal to be issued a seat. It is safe to share.

FieldValueNotes
machine_code53E9-2E74-D41B-2C82-9123-17AF-11C6-5411-B158-3C16-97AD-FD6C-0B5C-2D4C-52E7-BCA5
default_license_path~\AppData\Roaming\solvsrk\license.dat

Act 5 — Simplest solve

Integrate exponential decay dy/dt = -y from t=0 to t=1 with y(0)=1. The exact answer is exp(-1). This uses a tight smoke-test preset; on real stiff plants you tune knobs with SolvScout (journey 04).

FieldValueNotes
survivedTrue
failure_modeok
t_reached1
y_final[0.367879]
total_rhs_evals220
front_phasesteps=200 rhs=220
stiff_phasesteps=0 rhs=0
t_handoff1
wall_s0.0003316
expected[0.367879]
max_abs_error2.266e-13

Guided tour output

Verified console capture from 01_first_contact.py:

Version, license, and the smallest successful solve

-- Act 1 - What you are doing --
  -> Confirm the wheel and the native libsolvsrk load, see your license state, and run the smallest ODE that proves the solver is alive.

-- Act 2 - Version --
  -> Every support ticket starts with the package version.
  version: 2.5.0

-- Act 3 - License --
  -> SolvSRK is gated by a machine-locked .lic file. Activate at resonix.io/account: run `python -m solvsrk`, paste your Machine Code, download solvsrk.lic, then `python -m solvsrk activate path/to/solvsrk.lic`.
  license_valid: True
  days_remaining: 18
  license_info: valid=1 licensee=release-stream-516228fd67d6@example.com seat_id=trial expires=2026-09-26 duration_days=30 days_remaining=18 features=uq

-- Act 4 - Machine code --
  -> If activation fails, this is the fingerprint you paste into the Resonix portal to be issued a seat. It is safe to share.
  machine_code: 53E9-2E74-D41B-2C82-9123-17AF-11C6-5411-B158-3C16-97AD-FD6C-0B5C-2D4C-52E7-BCA5
  default_license_path: ~\AppData\Roaming\solvsrk\license.dat

-- Act 5 - Simplest solve --
  -> Integrate exponential decay dy/dt = -y from t=0 to t=1 with y(0)=1. The exact answer is exp(-1). This uses a tight smoke-test preset; on real stiff plants you tune knobs with SolvScout (journey 04).
  survived: True
  failure_mode: ok
  t_reached: 1
  y_final: [0.367879]
  total_rhs_evals: 220
  front_phase: steps=200 rhs=220
  stiff_phase: steps=0 rhs=0
  t_handoff: 1
  wall_s: 0.0003316
  expected: [0.367879]
  max_abs_error: 2.266e-13

-- Run complete --
  next_journey: 02_core_path.py

Run it

cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/journeys/01_first_contact.py
 
# Production one-liner — same API call you ship:
python -c "import solvsrk as s; print(s.__version__, s.license_valid())"

What comes next

Journey 02 integrates a nonlinear Rössler system with tuned knobs.

Navigation

Journey 02 — Core path (Rössler) →