docs: add phase 1 sprint contracts
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# Step 6: analysis-model-dof-manager
|
||||
|
||||
## Sprint Contract
|
||||
|
||||
### Objective
|
||||
Implement `AnalysisModelBuilder` and `DofManager` for one active linear static step with six-DOF nodes, constrained/free mapping, equation numbering, sparse-pattern input, and full/reduced vector reconstruction.
|
||||
|
||||
### Required Reading
|
||||
- /AGENTS.md
|
||||
- /PROGRESS.md
|
||||
- /PLAN.md
|
||||
- /docs/README.md
|
||||
- /docs/HARNESS_ENGINEERING.md
|
||||
- /docs/PRD.md
|
||||
- /docs/ARCHITECTURE.md
|
||||
- /docs/ADR.md
|
||||
- /docs/NUMERICAL_CONVENTIONS.md
|
||||
- /phases/1-linear-static-mitc4/step5.md
|
||||
|
||||
### Scope
|
||||
- Build an `AnalysisModel` active view from validated `Domain`.
|
||||
- Assign six shell DOFs per active node in documented order.
|
||||
- Apply fixed boundary conditions by constrained DOF elimination.
|
||||
- Produce int64 equation numbers for free DOFs and mappings for constrained DOFs.
|
||||
- Provide reconstruction helpers between reduced vectors and full vectors.
|
||||
|
||||
### Allowed Files
|
||||
- `include/**`
|
||||
- `src/**`
|
||||
- `tests/**`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
- `phases/1-linear-static-mitc4/index.json`
|
||||
|
||||
### Explicit Non-Goals
|
||||
- Do not assemble element stiffness or loads.
|
||||
- Do not store equation ids on Node or Element objects.
|
||||
- Do not solve linear systems or write HDF5 results.
|
||||
|
||||
### Tests To Write First
|
||||
- DOF numbering tests for simple models with all six components.
|
||||
- Constrained/free partition tests for fixed boundary conditions.
|
||||
- Reduced/full reconstruction tests including constrained values set to zero for Phase 1.
|
||||
- Sparse-pattern input tests using active element connectivity without assembling values.
|
||||
|
||||
### Reference Artifacts
|
||||
- None.
|
||||
|
||||
### Acceptance Commands
|
||||
```bash
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
### Evaluator Checklist
|
||||
- `DofManager` owns global equation numbering.
|
||||
- ids, sparse indices, and equations remain int64-based.
|
||||
- Fixed constraints are handled by elimination, not penalty.
|
||||
- Reconstruction supports later full-vector `RF` recovery.
|
||||
|
||||
### Handoff Requirements
|
||||
- Record DOF behavior, tests, and validation in `PROGRESS.md`.
|
||||
- Update `PLAN.md` only for future work or resolved blockers.
|
||||
- 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 tests for constrained/free and full/reduced mapping edge cases.
|
||||
|
||||
## Do Not
|
||||
- Do not make constrained DOF elimination depend on reduced-only reaction recovery.
|
||||
Reference in New Issue
Block a user