83 lines
3.0 KiB
Markdown
83 lines
3.0 KiB
Markdown
# Sprint Contract: Assembly Analysis Extraction
|
|
|
|
## Objective
|
|
Move full-space assembly, reduced projection, reaction recovery path, analysis state/result objects, and linear static workflow into `Assembly` and `Analysis` while preserving Phase 1 solver behavior.
|
|
|
|
## Required Reading
|
|
- /AGENTS.md
|
|
- /PROGRESS.md
|
|
- /PLAN.md
|
|
- /docs/README.md
|
|
- /docs/HARNESS_ENGINEERING.md
|
|
- /docs/ARCHITECTURE.md
|
|
- /docs/ADR.md
|
|
- /docs/NUMERICAL_CONVENTIONS.md
|
|
- /docs/RESULTS_SCHEMA.md
|
|
- /docs/MITC4_FORMULATION.md
|
|
- /docs/VERIFICATION_PLAN.md
|
|
- /phases/1-structure-alignment-refactor/step0-architecture-map.md
|
|
- /phases/1-structure-alignment-refactor/step2.md
|
|
- /phases/1-structure-alignment-refactor/step3.md
|
|
- /phases/1-structure-alignment-refactor/step5.md
|
|
- /phases/1-structure-alignment-refactor/step7.md
|
|
|
|
## Scope
|
|
- Extract `AssemblyResult`, `ReducedSystem`, full-space assembly, reduced projection, and full-vector reaction recovery helpers into `Assembly`.
|
|
- Extract `AnalysisState`, `AnalysisResult`, `Analysis`, `LinearStaticAnalysis`, and input-to-analysis convenience workflow into `Analysis`.
|
|
- Keep Strategy + Template Method structure visible.
|
|
- Preserve `RF = K_full * U_full - F_full`.
|
|
- Preserve solver adapter injection and deterministic default solver behavior.
|
|
|
|
## Allowed Files
|
|
- `include/fesa/fesa.hpp`
|
|
- `include/fesa/Assembly/`
|
|
- `src/Assembly/`
|
|
- `include/fesa/Analysis/`
|
|
- `src/Analysis/`
|
|
- `include/fesa/Core/`
|
|
- `include/fesa/Element/`
|
|
- `include/fesa/Math/`
|
|
- `include/fesa/Results/`
|
|
- `include/fesa/IO/`
|
|
- `tests/`
|
|
- `CMakeLists.txt`
|
|
- `phases/1-structure-alignment-refactor/index.json`
|
|
- `PLAN.md`
|
|
- `PROGRESS.md`
|
|
|
|
## Explicit Non-Goals
|
|
- Do not change solve algorithms, convergence logic, boundary-condition semantics, or result schema.
|
|
- Do not add nonlinear, dynamic, heat-transfer, pressure-load, RBE, or HDF5 behavior.
|
|
- Do not compute reactions from reduced quantities.
|
|
- Do not add production sparse storage beyond the existing scaffold.
|
|
|
|
## Tests To Write First
|
|
- Add or update include/link tests for `Assembly` and `Analysis` module headers.
|
|
- Preserve assembly, reduced solve, solver injection, full-vector RF, input-to-result workflow, and `quad_02_phase1` reference regression tests as characterization tests.
|
|
|
|
## Reference Artifacts
|
|
- `references/quad_02_phase1.inp`
|
|
- `references/quad_02_displacements.csv`
|
|
|
|
Do not edit these files.
|
|
|
|
## Acceptance Commands
|
|
```bash
|
|
python scripts/validate_workspace.py
|
|
```
|
|
|
|
## Evaluator Checklist
|
|
- Assembly owns full-space stiffness/load preservation and reduced projection.
|
|
- Analysis owns execution flow and state updates.
|
|
- `DofManager` remains the owner of equation numbering and full/reduced mapping.
|
|
- Full-vector RF recovery is unchanged.
|
|
- `quad_02_phase1` displacement regression still passes.
|
|
|
|
## Handoff Requirements
|
|
- Update this step status in `phases/1-structure-alignment-refactor/index.json`.
|
|
- Record moved assembly/analysis files and any remaining production implementation still left in `fesa.hpp`.
|
|
|
|
## Do Not
|
|
- Do not hide a behavior change under the label "refactor".
|
|
- Do not broaden Phase 1 feature scope.
|