Files
FESADev/phases/1-structure-alignment-refactor/step5.md
T

2.4 KiB

Sprint Contract: Results Reference Extraction

Objective

Move the in-memory result model, Phase 1 results writer, displacement CSV loader, and reference comparator into Results while preserving the documented step/frame/field schema.

Required Reading

  • /AGENTS.md
  • /PROGRESS.md
  • /PLAN.md
  • /docs/README.md
  • /docs/HARNESS_ENGINEERING.md
  • /docs/ARCHITECTURE.md
  • /docs/ADR.md
  • /docs/RESULTS_SCHEMA.md
  • /docs/VERIFICATION_PLAN.md
  • /docs/NUMERICAL_CONVENTIONS.md
  • /phases/1-structure-alignment-refactor/step0-architecture-map.md
  • /phases/1-structure-alignment-refactor/step2.md

Scope

  • Extract FieldOutput, ResultFrame, ResultStep, ResultFile, InMemoryResultsWriter, displacement CSV tables, comparison options, and comparison results.
  • Preserve mandatory Phase 1 U and RF field metadata.
  • Preserve CSV mapping from Abaqus Node Label, U-U1, U-U2, U-U3, UR-UR1, UR-UR2, UR-UR3.
  • Keep HDF5 as a future writer adapter; do not add the dependency yet.

Allowed Files

  • include/fesa/fesa.hpp
  • include/fesa/Results/
  • src/Results/
  • include/fesa/Core/
  • include/fesa/IO/
  • tests/
  • CMakeLists.txt
  • phases/1-structure-alignment-refactor/index.json
  • PLAN.md
  • PROGRESS.md

Explicit Non-Goals

  • Do not add HDF5 output implementation.
  • Do not change result labels, field positions, basis, or comparison tolerances.
  • Do not add reaction CSV parsing in this step.
  • Do not change analysis execution.

Tests To Write First

  • Add or update include/link tests for fesa/Results headers.
  • Preserve existing result schema, CSV loader, comparison, and quad_02_phase1 displacement regression tests as characterization tests.

Reference Artifacts

  • references/quad_02_phase1.inp
  • references/quad_02_displacements.csv

Do not edit these files.

Acceptance Commands

python scripts/validate_workspace.py

Evaluator Checklist

  • Result model follows docs/RESULTS_SCHEMA.md.
  • U and RF metadata are unchanged.
  • CSV comparison still matches by node id, not row order alone.
  • quad_02_phase1 stored displacement regression still passes.
  • HDF5 APIs do not leak into solver core.

Handoff Requirements

  • Update this step status in phases/1-structure-alignment-refactor/index.json.
  • Record moved result/comparator files and any remaining result symbols still left in fesa.hpp.

Do Not

  • Do not relax reference tolerances to make relocation pass.
  • Do not treat missing Abaqus reaction CSV as solved.