docs: add phase 1 sprint contracts
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# Step 12: assembly-reaction-recovery
|
||||
|
||||
## Sprint Contract
|
||||
|
||||
### Objective
|
||||
Implement assembly of element stiffness/load contributions into full and reduced system data while preserving full-space data for reactions.
|
||||
|
||||
### 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
|
||||
- /phases/1-linear-static-mitc4/step6.md
|
||||
- /phases/1-linear-static-mitc4/step7.md
|
||||
- /phases/1-linear-static-mitc4/step11.md
|
||||
|
||||
### Scope
|
||||
- Assemble global stiffness and load data from active elements and nodal loads.
|
||||
- Create reduced free-DOF systems using `DofManager` mappings.
|
||||
- Preserve or reconstruct full-space `K_full`, `F_full`, and `U_full` data needed for `RF = K_full * U_full - F_full`.
|
||||
- Add assembly diagnostics for missing contributions and singular-prone untouched DOFs where detectable.
|
||||
|
||||
### Allowed Files
|
||||
- `include/**`
|
||||
- `src/**`
|
||||
- `tests/**`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
- `phases/1-linear-static-mitc4/index.json`
|
||||
|
||||
### Explicit Non-Goals
|
||||
- Do not implement the full `LinearStaticAnalysis` orchestration here.
|
||||
- Do not compute reactions from reduced quantities only.
|
||||
- Do not add pressure loads, nonzero prescribed displacement, or nonlinear residual assembly.
|
||||
|
||||
### Tests To Write First
|
||||
- Assembly tests for simple element/load contributions into full and reduced matrices/vectors.
|
||||
- Constrained elimination tests using known DOF mappings.
|
||||
- Full-vector reaction recovery tests using `RF = K_full * U_full - F_full`.
|
||||
- Missing contribution or untouched free DOF diagnostic tests.
|
||||
|
||||
### Reference Artifacts
|
||||
- None required. RF reference CSV is not available; use internal equilibrium/reaction tests for this step.
|
||||
|
||||
### Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
### Evaluator Checklist
|
||||
- Full-space reaction data is preserved.
|
||||
- Reduced system assembly matches constrained/free DOF mapping.
|
||||
- Reaction tests use full vectors and the documented sign convention.
|
||||
- Unsupported loads and nonlinear behavior are not introduced.
|
||||
|
||||
### Handoff Requirements
|
||||
- Record assembly and RF recovery behavior in `PROGRESS.md`.
|
||||
- Update `PLAN.md` if R-010 remains unresolved or becomes resolved.
|
||||
- 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 reaction tests for full-vector recovery.
|
||||
|
||||
## Do Not
|
||||
- Do not allow reduced-system convenience to overwrite the documented RF convention.
|
||||
Reference in New Issue
Block a user