Product documentation — installation, licensing, and integration guides.
SolvLRDE
Skus

Vertical SKUs

SolvLRDE ships as one native kernel (libsolvlrde + the solvlrde wheel). What you buy is a vertical SKU — a licensed application namespace that matches how your team integrates the solver, not a different binary or API surface.

Vertical SKUs exist because the same Talbot resolvent engine shows up in power-grid EMTP companions, quant pricing inner loops, LTI control analysis, climate tangent-linear blocks, thermal MOL discretizations, and reliability CTMCs. Procurement, compliance, and support boundaries are different in each industry; the license reflects that while the wheel stays identical.

Trial vs purchased seats

Phasefeatures: on your .licWhat you can run
30-day trialgrid,pricing,control,climate,thermal,specialtyAll six SKU walkthroughs and integration paths
Purchased seatOne token (e.g. grid)That vertical only — enforce in your app with license_has_sku()

Core journeys 01–06 teach the kernel (solve, banded/DAE, time-independence). They require only a valid license — no SKU token. Vertical walkthroughs 07–12 mirror production call patterns for each industry.

import solvlrde
 
if not solvlrde.license_has_sku("pricing"):
    raise RuntimeError("This code path requires SolvLRDE-Pricing")

See Licensing for activation and renewal.


SolvLRDE-Grid

License token: grid · Product name: SolvLRDE-Grid (resonix-grid)

Who buys it: Transmission operators, EMTP/EMT-type simulation vendors, protection and planning engineers embedding companion-form transients in digital twins.

The problem: After a breaker or tap change, the network is piecewise linear for a while. Each interval is y' = A y on bus voltages and branch states. Classic EMTP marches that interval with a timestep — cost grows with segment length and stiffness bites on fast modes.

Why this SKU matters: SolvLRDE evaluates y(T) at the end of each segment directly. Segment duration does not inflate contour work. You stitch segment terminal states at switching times — the same orchestration pattern EMTP already uses, but the inner propagate step is resolvent-based instead of time-stepped.

Typical integration: Hold companion-form or Y-bus linearization A per topology; call solve(A, y0, T=dt); pass result["y"] as y0 for the next segment. Large sparse chains often use solve_banded when the operator is tridiagonal.

Walkthrough: Journey 07 — SolvLRDE-Grid


SolvLRDE-Pricing

License token: pricing · Product name: SolvLRDE-Pricing (resonix-pricing)

Who buys it: G-SIB quant infrastructure, xVA/FRTB IMA teams, ALM and risk engines that propagate mean-reverting rates or discretized pricing PDEs.

The problem: Pricing stacks spend most of their wall clock on repeated linear propagations — Hull-White OU steps, implicit PDE spatial operators held fixed per scenario, inner solves across a maturity ladder. Time-stepping each maturity scales with horizon; long-dated xVA makes that painful.

Why this SKU matters: When A is fixed for a scenario, each maturity Tᵢ is one solve(A, y0, Tᵢ) with cost independent of Tᵢ. You keep nonlinear payoffs, calibration, and scenario logic in your outer loop; LRDE replaces the inner linear propagate step.

Typical integration: Discretize your OU or PDE spatial operator once per scenario; loop maturities; assemble curves or cube faces from result["y"].

Walkthrough: Journey 08 — SolvLRDE-Pricing


SolvLRDE-Control

License token: control · Product name: SolvLRDE-Control (resonix-control)

Who buys it: Aerospace, automotive, and robotics teams working with LTI state-space plants, OEMs evaluating resolvent-based analysis before production licensing.

The problem: Step responses, frequency sweeps, and Gramian-style queries reduce to evaluating the resolvent of a constant A at target times. Integrating the same LTI forward in time is correct but wasteful when you only need y(T) at specific horizons or many T values for a modal study.

Why this SKU matters: Paste A from your linearized plant (or second-order companion form) and get step or impulse response at arbitrary T without choosing a timestep or stiffness-tolerant integrator. This is the SKU most often adopted through the 30-day trial — engineers verify against known transfer functions before committing.

Typical integration: solve(A, x0, T) for step inputs encoded in x0 or constant forcing b; loop T for frequency-domain style sweeps via the resolvent.

Walkthrough: Journey 09 — SolvLRDE-Control


SolvLRDE-Climate

License token: climate · Product name: SolvLRDE-Climate (resonix-climate)

Who buys it: National labs, CMIP-class modeling groups, energy-system teams with tangent-linear or linearized sub-blocks inside larger Earth-system workflows.

The problem: Fully nonlinear primitive-equation dynamics stay in the host model. But radiative transfer, tracer transport linearizations, and tangent-linear mode blocks are constant-coefficient linear systems over a sub-step. Century-scale horizons (T ~ 100 years in model time units) make naive time-stepping expensive for those blocks.

Why this SKU matters: Fast/slow TLM blocks can call solve(A, y0, T) at century-scale T with the same contour cost as T = 1. Stiff separation between slow climate modes and fast adjustments does not force smaller steps inside LRDE.

Typical integration: Host model supplies A for a linearized sub-step; LRDE returns perturbation state at sub-step end; host continues nonlinear integration.

Walkthrough: Journey 10 — SolvLRDE-Climate


SolvLRDE-Thermal

License token: thermal · Product name: SolvLRDE-Thermal (resonix-thermal)

Who buys it: Thermal, heat-transfer, and process engineers using method-of-lines (MOL) discretizations of parabolic PDEs (heat equation, diffusion-dominated transients).

The problem: Semi-discretize u_t = Lu in space; the semidiscrete operator is banded (tridiagonal for 1-D heat). You need u(T) at the far end of a rod, fins, or reduced thermal network — not necessarily every intermediate time point.

Why this SKU matters: Use solve_banded on the MOL operator with bandwidth from your stencil. Cost tracks contour nodes, not physical time. Stiff spatial refinement (fine meshes) is handled like any other linear system — no CFL-driven step count explosion for the direct u(T) query.

Typical integration: Build banded A from your FD/FV stencil; solve_banded for u(T); pair with journey 05 banded/DAE patterns for production DAE reductions.

Walkthrough: Journey 11 — SolvLRDE-Thermal


SolvLRDE-Specialty

License token: specialty · Product name: SolvLRDE-Specialty (resonix-specialty)

Who buys it: Reliability engineering, queueing theory, and bespoke simulation teams with generator-matrix models that do not fit the other verticals.

The problem: Continuous-time Markov chains, reliability CTMCs, and custom linear relaxation models share y' = Q y with constant generator Q. You need state probabilities or occupancies at horizon T, not a dense time history.

Why this SKU matters: Pricing SKU targets term-structure and PDE-style kernels; Grid targets EMTP companions. Specialty is the catch-all for everything else linear where you already hold A or Q — two-state repair models, queue relaxation, custom propagators — without forcing a grid or quant narrative.

Typical integration: solve(Q, p0, T) for probability vector p(T); validate against closed-form exponentials for small systems before scaling dimension.

Walkthrough: Journey 12 — SolvLRDE-Specialty


Quick reference

SKUTokenPrimary buyerCore workloadAPI emphasis
GridgridEMTP / TSOPost-switch companion segmentssolve, stitch at breakers
PricingpricingQuant / ALMOU / PDE inner propagate across maturitiessolve, maturity loop
ControlcontrolAerospace / auto LTIStep / modal response at arbitrary Tsolve, state-space A
ClimateclimateEarth-system / TLMLinear sub-blocks at long Tsolve, host-model coupling
ThermalthermalHeat / MOLBanded spatial operatorssolve_banded
SpecialtyspecialtyReliability / CTMCGenerator-matrix propagatesolve on Q

Menu (bundle): python examples/run_sku_examples.py
Order: Complete journeys 01–06, then your SKU script.

Not covered by any SKU

SolvLRDE is only for constant-coefficient linear systems. Route elsewhere:

  • Nonlinear IVPs (y' = f(t,y)) → SolvSRK
  • Parameter sweeps / study receipts → SolvJump
  • Dense time trajectories → call solve per target T, or use a stepper if you need continuous output

See Journey 06 — Limits for the full routing table.