Part of #385. The last coverage layer.
What
A pre-equilibrated fit (ADR-0052) runs the model to steady state, then perturbs and scores the
transient. The gradient must propagate parameter sensitivities through the steady-state
solve — ∂(steady state)/∂θ via the implicit-function theorem on f(x*,θ)=0, i.e.
∂x*/∂θ = -(∂f/∂x)⁻¹ (∂f/∂θ) — and use that as the initial-sensitivity seed for the
post-perturbation trajectory's forward sensitivities.
Dependency
Per the #385 epic notes this is blocked on bngsim providing sensitivities through a
steady-state / pre-equilibration solve (bngsim #210 — confirm the bngsim-side capability and
its issue number before starting). PyBNF cannot assemble what the backend does not emit.
Deliverables (once unblocked)
- Seed forward sensitivities from the steady-state sensitivity; thread through the
pre-equilibration → perturbation → score chain.
- FD oracle: a pre-equilibrated fit on a small net, central differences vs the assembled
gradient.
Part of #385. The last coverage layer.
What
A pre-equilibrated fit (ADR-0052) runs the model to steady state, then perturbs and scores the
transient. The gradient must propagate parameter sensitivities through the steady-state
solve —
∂(steady state)/∂θvia the implicit-function theorem onf(x*,θ)=0, i.e.∂x*/∂θ = -(∂f/∂x)⁻¹ (∂f/∂θ)— and use that as the initial-sensitivity seed for thepost-perturbation trajectory's forward sensitivities.
Dependency
Per the #385 epic notes this is blocked on bngsim providing sensitivities through a
steady-state / pre-equilibration solve (bngsim #210 — confirm the bngsim-side capability and
its issue number before starting). PyBNF cannot assemble what the backend does not emit.
Deliverables (once unblocked)
pre-equilibration → perturbation → score chain.
gradient.