# Sprint Contract: Assembly Sparse Solver Path ## Objective Rebuild or verify full-space assembly, reduced free-DOF solve path, solver adapter boundary, and full-vector reaction recovery using the rebuilt MITC4 kernel. ## Required Reading - /AGENTS.md - /docs/ARCHITECTURE.md - /docs/ADR.md - /docs/NUMERICAL_CONVENTIONS.md - /docs/MITC4_FORMULATION.md ## Scope - Assemble global stiffness and external load vectors. - Preserve full-space data for `RF = K_full * U_full - F_full`. - Apply constrained DOF elimination via `DofManager`. - Use the current deterministic test solver or adapter boundary; keep MKL behind a future adapter. ## Allowed Files - `include/` - `src/` - `tests/` - `PLAN.md` - `PROGRESS.md` ## Explicit Non-Goals - Do not expose MKL or TBB APIs directly in solver core. - Do not compare stored Abaqus references yet. - Do not compute reactions from reduced equations. ## Tests To Write First - Small assembled system tests with known displacement. - Full-vector `RF` recovery tests. - Constrained/free projection tests through assembly. - Singular solve diagnostic tests. - Sparse pattern deterministic ordering tests if sparse structure exists. ## Reference Artifacts - None. ## Acceptance Commands ```bash python scripts/validate_workspace.py ``` ## Evaluator Checklist - Full-space stiffness/load/displacement are available or reconstructable for reactions. - Solver adapter boundary is preserved. - Singular failures remain actionable. ## Handoff Requirements - Record assembly and reaction readiness in `PROGRESS.md`. ## Do Not - Do not let elements own global equation ids.