2.5 KiB
2.5 KiB
Step 13: linear-static-analysis-path
Sprint Contract
Objective
Implement the LinearStaticAnalysis Template Method path from parsed Domain to solved state and written U/RF results.
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
- /docs/RESULTS_SCHEMA.md
- /docs/VERIFICATION_PLAN.md
- /phases/1-linear-static-mitc4/step8.md
- /phases/1-linear-static-mitc4/step12.md
Scope
- Implement the linear static analysis strategy using the documented common flow: validate, build model, number DOFs, assemble, constrain, solve, reconstruct, recover RF, update state, write results.
- Store mutable physical quantities and iteration/result state in
AnalysisState. - Route solving through the linear solver interface.
- Emit minimum Phase 1 result fields
UandRF.
Allowed Files
include/**src/**tests/**PLAN.mdPROGRESS.mdphases/1-linear-static-mitc4/index.json
Explicit Non-Goals
- Do not implement nonlinear, dynamic, thermal, composite, or contact workflows.
- Do not bypass
DofManager, assembler, solver interface, or result writer boundaries. - Do not compare against stored Abaqus references in this step; that is Step 14.
Tests To Write First
- End-to-end small-model test using a deterministic element or minimal fixture where expected
UandRFare known. - Singular-system failure test through the analysis path.
- Result-emission test for
UandRFfields and component order.
Reference Artifacts
- None required for this orchestration step.
Acceptance Commands
python scripts/validate_workspace.py
Evaluator Checklist
- Strategy + Template Method architecture is visible and not hardwired to only one future analysis type.
AnalysisStateowns mutable solve/result data.RFuses full-vector recovery.- Results match the documented step/frame/field layout.
Handoff Requirements
- Record analysis behavior, tests, and validation in
PROGRESS.md. - Update
PLAN.mdif Phase 1 end-to-end risks remain. - Update the matching phase index entry: use
completedwith a one-linesummary, orblockedwithblocked_reason, orerrorwitherror_message.
Verification
- Run the acceptance command.
- Inspect the analysis path for architecture-boundary shortcuts.
Do Not
- Do not make the first end-to-end path depend on local Abaqus execution.