Skip to content

Index

5. Software design description

The subsections, one file each:

  • 5.1 Architectural overview - Describes the linear pipeline of pure, cacheable stages, each emitting a typed, content-hashed artefact that can run and be inspected standalone.
  • 5.2 Pipeline stages - Tabulates each pipeline stage with its inputs, outputs, tools and validation gate.
  • 5.3 Data design - Specifies the case file as one declarative YAML document, the unit of reproducibility from which everything else is derived.
  • 5.3.2 Artefacts and interchange formats - Lists the artefact each stage emits and its format, native or interchange.
  • 5.3.3 Provenance manifest - Specifies the provenance manifest emitted with every result, sufficient alone to reconstruct the run, and the run directory naming.
  • 5.3.4 Sweep specification and dataset - Specifies sweeps, sets of runs described by their own declarative document that names a base case and the axes to vary.
  • 5.4 Component design - Specifies the physics/ design: weak forms written once against a thin internal interface, with one production NGSolve implementation.
  • 5.5 Extension points - Specifies the two levels of pluggability, the registries for discretisation backends, and how each extension is added by one registration.
  • 5.6 Architecture decisions - Records the architecture decisions, beginning with NGSolve as the single production backend behind the abstraction of §5.4.1.