75 lines
2.7 KiB
Markdown
75 lines
2.7 KiB
Markdown
# Step 9: reference-displacement-comparator
|
|
|
|
## Sprint Contract
|
|
|
|
### Objective
|
|
Implement the `references/*_displacements.csv` loader and comparator for FESA `U` output.
|
|
|
|
### Required Reading
|
|
- /AGENTS.md
|
|
- /PROGRESS.md
|
|
- /PLAN.md
|
|
- /docs/README.md
|
|
- /docs/HARNESS_ENGINEERING.md
|
|
- /docs/NUMERICAL_CONVENTIONS.md
|
|
- /docs/VERIFICATION_PLAN.md
|
|
- /docs/RESULTS_SCHEMA.md
|
|
- /references/README.md
|
|
- /phases/1-linear-static-mitc4/step8.md
|
|
|
|
### Scope
|
|
- Load Abaqus displacement CSV files with columns `Node Label`, `U-U1`, `U-U2`, `U-U3`, `UR-UR1`, `UR-UR2`, `UR-UR3`.
|
|
- Compare by node id, not row order.
|
|
- Implement absolute and relative tolerance behavior with a documented default or configuration path.
|
|
- Report missing columns, duplicate nodes, missing nodes, nonnumeric values, and tolerance failures.
|
|
|
|
### Allowed Files
|
|
- `include/**`
|
|
- `src/**`
|
|
- `tests/**`
|
|
- `references/**` only for small test fixtures or documentation updates
|
|
- `docs/VERIFICATION_PLAN.md` only for comparator tolerance clarification
|
|
- `docs/RESULTS_SCHEMA.md` only for schema clarification
|
|
- `PLAN.md`
|
|
- `PROGRESS.md`
|
|
- `phases/1-linear-static-mitc4/index.json`
|
|
|
|
### Explicit Non-Goals
|
|
- Do not require Abaqus execution.
|
|
- Do not treat `references/quad_01.inp` as Phase 1 supported input.
|
|
- Do not compare RF here unless a `*_reactions.csv` contract is added.
|
|
|
|
### Tests To Write First
|
|
- CSV header validation tests.
|
|
- Node-id matching and row-order independence tests.
|
|
- Absolute/relative tolerance pass/fail tests.
|
|
- Duplicate, missing, and malformed value diagnostics tests.
|
|
- Format-only smoke test using `references/quad_01_displacements.csv` if stable enough for CI.
|
|
|
|
### Reference Artifacts
|
|
- Format-only: `references/quad_01_displacements.csv`.
|
|
- Required later for solver regression: at least one Phase 1-compatible `TYPE=S4` input and matching displacement CSV.
|
|
|
|
### Acceptance Commands
|
|
```bash
|
|
python scripts/validate_workspace.py
|
|
```
|
|
|
|
### Evaluator Checklist
|
|
- Component mapping matches `docs/VERIFICATION_PLAN.md` and `docs/RESULTS_SCHEMA.md`.
|
|
- Comparison is by node id and independent of row order.
|
|
- Missing or malformed reference data fails with actionable diagnostics.
|
|
- `quad_01` is not used to imply S4R or nonlinear support.
|
|
|
|
### Handoff Requirements
|
|
- Record comparator behavior, tolerance decision, and validation in `PROGRESS.md`.
|
|
- Update `PLAN.md` if R-009 or reference artifact blockers change.
|
|
- Update the matching phase index entry: use `completed` with a one-line `summary`, or `blocked` with `blocked_reason`, or `error` with `error_message`.
|
|
|
|
## Verification
|
|
1. Run the acceptance command.
|
|
2. Inspect comparator tests for tolerance and malformed CSV behavior.
|
|
|
|
## Do Not
|
|
- Do not silently skip reference nodes or components.
|