Product / TensorLynx / Provenance

Record · Provenance and engineering history

Every result traceable: simulation provenance you can replay and audit

Months after a study closes, someone asks where a number came from: a design review, a supplier query, an authority's question to your compliance team. TensorLynx answers from the record, not from memory. Every result is tied to the geometry version, mesh, solver version, settings, seeds and environment that produced it, and the record states how closely a re-run is expected to match.

Seed, fingerprint and environment sealed per study run Reports refuse to export an untraceable claim Verdicts and decisions are never rewritten

Lineage of one engineering decision: geometry version, mesh, case, simulation run, dataset version, surrogate model, report and decision, each pointing back to what it was derived from, with a dashed return to the next design question. Hover or focus a node to see what it records. next question Geometryhash · parent Meshmesh hash Casesettings · units Runrun record Datasetmanifest hash Surrogatecontent hash Reportclaim digest Decisionappended
Schematic Node kinds and fields as the platform records them
The cost of the old way

A result without its history is an opinion with units.

Simulation results outlive the people and the machines that made them. When the question comes back, the number is usually still there. The chain behind it is not.

  • The audit question arrives late. A design review, a field return or a compliance query asks which mesh, which solver build and which boundary conditions stood behind a figure. Reconstructed from folder names, the answer ends in “probably”.
  • Copies lose meaning. A value pasted into a spreadsheet leaves its unit, its operating point and its convergence state behind. Nobody notices until two reports disagree.
  • Repeatability is assumed, not measured. Parallel solvers, warm starts and library updates all move the last digits. Without a stated class, a re-run that differs looks like an error, and one that matches looks like proof.

Practitioners describe traceability as a central pain point which is experienced in all simulation domains (NAFEMS World Congress 2021, source 1). The FAIR principles ask that data be associated with detailed provenance (source 3).

A pressure-loss result whose links to geometry, mesh, solver build and inputs are broken, surrounded by files named final_v3, final_v3_REAL and results_new (2). Pressure loss Δp = ? Pa source: unknown which geometry? which mesh? which solver build? which inputs, seed? bend_final_v3bend_final_v3_REALresults_new (2)
A number that cannot say where it came fromSchematic
How TensorLynx does it

The record is written while you work, not reconstructed afterwards.

Nobody fills in a provenance form. Each step of the loop writes its part of the record as a side effect of doing the engineering, and each step refuses to continue when the record would be incomplete.

01 · Declare

Every input arrives with its unit and its bounds

Every physical parameter is declared with a unit, bounds and a default, and a platform default reads “missing, declare”, never a silent number. Computation is SI inside. A quantity with no declared unit is never written unitless, and a decimal comma is refused with a one-click fix.

02 · Version

A study with runs never changes under them

A design study is versioned data. Once it has runs, an edit writes version n+1, so every run stays bound to the exact limits that judged it. The model fingerprint changes whenever the model, the mesh or a case file changes. Clone and branch, including a branch from a single candidate, keep their lineage.

03 · Seal

Each run carries its own reproducibility record

A surrogate-based study run records its seeds, the study snapshot (SHA-256), the driver host code, the model fingerprint, versions, threads and an environment lock: the hash and the full package list. Run state lives in an append-only log, flushed to disk at every transition. Kept field files get checksums, verified again at close.

04 · Link

One provenance graph, walked in either direction

Geometry versions, meshes, cases, runs, campaigns, dataset versions, models and reports are nodes; “derived from”, “member of” and “follows” are edges. Upstream answers how did we get here. Downstream answers what does this change touch. Finished solver cases are recorded as they finish, without anybody remembering to import them.

05 · Report

A report that cannot be traced does not export

A traced report checks every number, figure and verdict against the provenance store. A claim with no evidence, a cited node the store has never seen, or an export with no store at all: each stops the export and names what failed. The report’s identity is a digest of its claims, so the same analysis exported twice is one report.

06 · Replay

Re-run a past study, and know what “the same” means

Resume starts a new run linked to its parent and replays the parent’s recorded fits as it goes. A changed study, seed, engine or driver code, or a replay that drifts from the record, refuses with the reason. The run states its reproducibility class (bitwise, within tolerance or order-dependent) as measured, never inferred.

The record at each step: declarations with units, versioned study, sealed reproducibility record, provenance graph, traced report, and a resume compared against its parent. Declared, not assumed PARAMETERUNITBOUNDSDEFAULT Inlet velocitym/s5 … 20declare Wall temperatureK290 … 400declare Intensity–0.01 … 0.1declare 0,5 Refused: decimal comma · Use 0.5 SI inside · a unit on every number · no unit, no record Versioned, then frozen Study v1saved Study v2has runs · frozen Study v3the edit Run r1judged by v2 limits Branchfrom a candidate fingerprint changes when model, mesh or case file change Sealed with the run REPRODUCIBILITY RECORD Classas measured Seedroot · scheme Model fingerprintc41e… Study snapshotsha256 9a07… Driver host codesha256 52bd… Environment lockpackages + hash Versionsrecorded Threadsrecorded STATE LOG · APPEND-ONLY queued running done FIELDS SHA256SUMS ✓ verified at close One graph, walked either way Geom Mesh Case Run Data Model Report ↑ how did we get here? ↓ what does this touch? derived from · member of · follows Traced, or not exported CLAIMEVIDENCE Pressure loss · Pa✓ run node Gradient check · PASS✓ rule + run Mesh ladder · GCI✓ 3 nodes “Best” design✗ no evidence Export refused · 1 untraceable claim identity = digest of the claims, not of the clock Same study, same seed, or no resume Parent run Resumed run study snapshot ✓ seed ✓ engine ✓ host code ✓ recorded fits replay ✓ state unchangedlinked to parent class stated as measured, with the case it was measured on any mismatch: Resume refused, with the reason
Inside the engine

What a run leaves behind, file by file.

Provenance in TensorLynx is plain, inspectable files and one graph. Hover or focus any file to see what it holds.

Anatomy of the record: a solver run folder and a design-study run folder, both feeding one provenance store per workspace. Solver runDesign-study run run.json qoi.json history fields/ sensitivity/ native/ · log/ state.jsonl host.jsonl reproducibility.json fields/e‹n›/SHA256SUMS fields/VERIFY.json report · HTML + JSON provenance store
Folder layouts as documented for the run record and design-study runsSchematic

Three classes, each stated as measured

Bitwise for deterministic sequential computation. Within tolerance for parallel solvers, whose rank count and build are recorded. Order-dependent where the result depends on the order of evaluation, as with a warm-started evaluator. A run’s class is the weaker of the evaluator’s and the driver host’s. A pack may supply its own measured wording, but the platform never shows that label without the case it was measured on.

Timeline of one study: version saved, run, verify, goal edit, branch, stop and resume, decision, superseded decision. v1 run verify v2 · stale branch resume decision superseded
  1. Study v1 saved. Every field declared with its unit and bounds.
  2. Run r1. The study version is now frozen; r1 is judged by its limits.
  3. Verify. An independent re-run of the candidate; “Verified” is granted by that, never by the optimiser’s exit.
  4. Goal edit, v2. A limit changes: r1’s verdicts keep their limits and read Stale.
  5. Branch. A new line of study from one candidate, linked to where it came from.
  6. Stop and resume. A new run linked to its parent; refused if study, seed, engine or host code differ.
  7. Decision. An engineer records it, with ranking, weights and stability check. Nothing is decided automatically.
  8. Superseded. A later decision replaces it on screen; the first stays on record, unchanged.
Event types and rules as documented; the sequence is illustrativeSchematic
Evidence you can check

Replays, read-backs and measured classes.

Reproducibility is measured on the platform’s own records against bars declared before the measurement, and each figure is reported with the case it came from.

Replay from the record: an archived record is regenerated by a fresh process and compared number by number; the largest difference is zero. Archived record campaign · training digest 7d3a…e1 fresh process Replayed number by number digest 7d3a…e1 ✓ largest difference: exactly 0
Replay mechanism; digests drawn for illustrationSchematic
20,635
numbers compared in 6 replays from their records (a campaign, a surrogate training run, four shape requests); largest difference exactly 0, against a bar of 10−9. Measured · end-to-end acceptance
64
numbers read back through the run record equal to the solver’s own files at a relative tolerance of 10−9; six reference runs reproduce. Measured · run-record acceptance
94 / 0
readings across four pages agreeing with the record, and numbers shown without a unit. Measured · browser walk
Measured re-run differences on a logarithmic scale: replays from records exactly zero; cold-start evaluator 9.1e-9 relative; airfoil verification re-run 7.0e-7; warm-start evaluator up to 2.2e-6; with the 1e-9 replay bar marked. 10⁻¹⁰10⁻⁹10⁻⁸10⁻⁷10⁻⁶10⁻⁵0 replay bar 10⁻⁹ replays from the record · exactly 0 cold start vs fresh process · 9.1e-9 airfoil Verify re-run, drag · 7.0e-7 warm start, order-dependent · ≤ 2.2e-6
Relative differences between a run and its re-run, as recordedMeasured

Repeatable is not the same as right

When a study returns the same objective run after run, the record calls that determinism, not correctness. Correctness is the job of mesh verification and of the independent re-run in high-fidelity reassessment. Method

Refusals are tested

All three export refusals (no evidence, unknown node, no store) and the traced path are covered by tests, including publishing a report into a real provenance store and reading its lineage back. Method · test suite

What it changes for your programme

The engineering history becomes an asset, not an archaeology project.

The record closes the TensorLynx loop. The decision it holds is where the next design question starts, back in geometry-driven design exploration, with every earlier study still open to inspection.

Engineering lead

Walk into a design review with every number traceable to its inputs, versions and checks. When the review changes a limit, you see which verdicts went stale instead of discovering it in the next meeting.

Simulation analyst

Reopen last year’s study, branch from its best candidate, or resume an interrupted run without rebuilding the set-up from notes. The platform tells you when a resume would not be faithful, and why.

Programme and quality

Assemble evidence packages for design gates and certification from reports that cannot export an unsupported claim. Your engineers sign off; the record shows what they signed off on.

Where it matters

Aerospace intake study

The intake shape behind a performance figure is questioned at a later milestone. The report walks back to its geometry version, mesh and the solver build that produced it.

Automotive programme gate

A target tightens late. The new study version marks earlier verdicts stale and leaves the original record intact, so the gate sees both.

Turbomachinery and energy

Long-life equipment is revisited years after design. Run records keep units and operating points, so a re-rating starts from the old case.

Process equipment

Surrogates trained on past campaigns carry the lineage of every sample. When a source run is questioned, the models that learned from it can be found downstream.

Typical workflow compared with TensorLynx
QuestionTypical workflowWith TensorLynx
Where did this number come from?Folder names, slide notes, memoryRun record and provenance graph, upstream to the geometry version
Will a re-run match?Assumed, then arguedA stated class with the case it was measured on
Did the limits change after the run?Silent: the table reads current settingsNew study version; old verdicts keep their limits and read Stale
Can the report be trusted out of context?Whatever was pasted inExport refused unless every claim resolves to evidence
Who decided, and on what?Minutes, if keptAppended decision with ranking and weights, as on the Pareto selection page
FAQ

Questions engineers ask about the record

Will re-running a past study give exactly the same numbers?

It depends on the computation, and the record says which case you are in. Each design-study run carries a reproducibility class (bitwise, within tolerance or order-dependent) taken from what was measured, never inferred. Parallel solvers are tolerance-bounded, so a re-run is judged against a stated tolerance. Regenerating a campaign or a surrogate training run from its record reproduced every number exactly in the platform's end-to-end acceptance test.

What is recorded for each run?

A solver-neutral run record: solver and solver version, image digest, units basis, mesh size, conditions, operating points, the convergence verdict and who decided it, and the design and case it belongs to. Design-study runs add the seed, model fingerprint, study snapshot, driver host code, environment lock and thread count. Kept field files get SHA-256 checksums, verified again when the run closes.

Can the record go into a design-review or certification evidence package?

Yes, as evidence your team assembles and signs. TensorLynx keeps the traceability: which inputs, versions and checks stand behind each number, and reports that will not export a claim without it. Neither OLTRION nor the platform signs off a design, and simulation never replaces the tests or approvals your programme requires.

What happens when someone changes an acceptance limit after a run?

The study is not edited in place: the change writes a new study version. Verdicts recorded under the old limits keep them and read Stale until an engineer asks for a re-check. Recorded decisions are appended and superseded, never rewritten.

Can an interrupted study be continued?

Yes. Resume creates a new run linked to its parent and leaves the parent's state untouched. It is refused, with the reason, if the study version, seed, engine or driver code changed, or if replaying the parent's recorded fits does not reproduce them.

Does this replace our simulation data management system?

It is not meant to. TensorLynx keeps provenance inside the engineering loop, where results are made. Run records are plain JSON and reports are self-contained HTML files that open without a server, so they can be archived in whichever system your organisation already uses.

See how the record fits the whole platform on the TensorLynx overview.

One loop, not twelve tools

Where provenance sits in the TensorLynx loop

Every capability hands its result to the next on the same model, the same units and the same record: geometry feeds physics, physics feeds sensitivities and learning, optimisation proposes, verification confirms, and the history keeps every step reproducible.

The TensorLynx loop: Design exploration, Coupled multiphysics, Mesh verification, Adjoint optimisation, Gradient verification, Trust-aware surrogates, Full-field ROM, Multi-fidelity, MDAO, Pareto selection, High-fidelity reassessment, Provenance. TensorLynx one model · one record DefineSimulateImproveLearnOptimiseDecideVerifyRecord Design exploration Coupled multiphysics Mesh verification Adjoint optimisation Gradient verification Trust-aware surrogates Full-field ROM Multi-fidelity MDAO Pareto selection High-fidelity reassessment Provenance
Schematic of the platform workflowSchematic
Work with OLTRION

Bring us the design question. Leave with a verified answer and the record behind it.

TensorLynx is built and run by the engineers who use it on client work. You can start small, with one geometry and one question, and grow into a workflow your own team owns.

Feasibility review

Send a geometry, the objective and the constraints. We tell you which TensorLynx route answers it, what it needs from you, and what you will get back.

We run the study

Our engineers run the loop on your problem: physics, sensitivities, optimisation and full-model verification, handed over with every setting on record.

A workflow built for your product

A TensorLynx workflow, surrogate and verification gates set up around your product family, so the next design cycle starts where the last one ended.

Platform access and handover

Your team on TensorLynx, trained on your own cases, with OLTRION engineers behind it for the questions that need a specialist.