2.5 KiB
2.5 KiB
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
DofManagermappings. - Preserve or reconstruct full-space
K_full,F_full, andU_fulldata needed forRF = 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.mdPROGRESS.mdphases/1-linear-static-mitc4/index.json
Explicit Non-Goals
- Do not implement the full
LinearStaticAnalysisorchestration 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
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.mdif R-010 remains unresolved or becomes resolved. - Update the matching phase index entry: use
completedwith a one-linesummary, orblockedwithblocked_reason, orerrorwitherror_message.
Verification
- Run the acceptance command.
- Inspect reaction tests for full-vector recovery.
Do Not
- Do not allow reduced-system convenience to overwrite the documented RF convention.