# Sprint Contract: MITC4 Stiffness Drilling ## Objective Assemble the MITC4 element stiffness and internal force kernel using the documented strain, material, integration, six-DOF transform, and drilling stabilization. ## Required Reading - /AGENTS.md - /docs/MITC4_FORMULATION.md - /docs/NUMERICAL_CONVENTIONS.md - /docs/ADR.md ## Scope - Accumulate `K_e = integral B^T D B dV`. - Add local drilling stabilization with `drilling_stiffness_scale = 1.0e-3`. - Transform local element stiffness/internal force to global 24-DOF order. - Preserve parameterization and diagnostics for drilling scale. ## Allowed Files - `include/` - `src/` - `tests/` - `PLAN.md` - `PROGRESS.md` ## Explicit Non-Goals - Do not add assembly/global solve. - Do not tune drilling scale to match one reference case. - Do not output stresses/resultants as mandatory fields. ## Tests To Write First - Stiffness dimension and symmetry tests. - Drilling diagonal reference tests using minimum positive physical local stiffness diagonal. - Zero/invalid reference diagonal diagnostic tests. - Rigid body physical strain-energy tests with documented drilling effects. - Internal force consistency test `f_int_e = K_e u_e` for linear elastic Phase 1. ## Reference Artifacts - None. ## Acceptance Commands ```bash python scripts/validate_workspace.py ``` ## Evaluator Checklist - Old `1.0e-6 * E * thickness` drilling rule is gone. - Global 24-DOF ordering matches `UX,UY,UZ,RX,RY,RZ` per node. - Stiffness remains linear elastic and symmetric. ## Handoff Requirements - Record element kernel readiness in `PROGRESS.md`. ## Do Not - Do not optimize or parallelize before element tests pass.