Expand description
Machine-readable JSON solve report (pounce#8).
Bundles the same payload AMPL’s .sol carries (status, primal,
dual, suffixes) with FAIR-aligned provenance metadata (solver
identity, input descriptor, timestamp) and per-iteration history
when requested. Schema is versioned via the top-level schema
field so future extensions don’t silently change semantics.
FAIR reference: Wilkinson et al. (2016). The FAIR Guiding Principles for scientific data management and stewardship. Scientific Data, 3, 160018. DOI: 10.1038/sdata.2016.18. Verified via Crossref on 2026-05-14.
§Schema versioning
The current schema tag is pounce.solve-report/v1. Breaking
changes bump the major version (v2 etc.). Adding fields without
removing or renaming existing ones is non-breaking — JSON
consumers should tolerate unknown fields.
§Detail levels
ReportDetail::Summary (default) emits the FAIR metadata,
problem dimensions, final solution, and aggregate statistics
— equivalent to a .sol plus provenance. ReportDetail::Full
additionally emits the per-iteration history (when captured by
pounce_algorithm::application::IpoptApplication::enable_iter_history)
and any solution.suffixes. Choose Summary for production logs
and Full for debug captures.
Structs§
- Fair
Metadata - FAIR-aligned provenance block. The four FAIR principles (Wilkinson et al., 2016) map onto fields here as:
- Linear
Solver Summary Info - Serializable mirror of
pounce_linsol::summary::LinearSolverSummary. Lives in the CLI crate (rather thanpounce-linsol) so the linsol trait crate stays serde-free. Field shape is identical; serde defaults keep it forward-compatible with future additions. - Problem
Info - Report
Builder - Builder collecting the inputs for a
SolveReport. The CLI drivers populate one of these as they walk through the solve andfinish()it at the end. - Solution
Info - Solution
Suffix - Solve
Report - Top-level report struct. Fields are ordered so the JSON has the most identifying / metadata fields first when pretty-printed.
- Solver
Identity - Statistics
Info - Subset of
SolveStatisticsprojected for the report. Mirrors the fields the existing console summary prints.
Enums§
- Input
Descriptor - Report
Detail - Verbosity knob for the JSON report. Maps onto the
--json-detailCLI flag.
Functions§
- write_
report_ file - Write a
SolveReporttopathas pretty-printed JSON. Returns bytes written on success.