# Sprint Contract: MITC4 Geometry Directors ## Objective Implement or rebuild MITC4 shape functions, natural-coordinate node order, element-center director policy, local director axes, and integration-point local bases. ## Required Reading - /AGENTS.md - /docs/MITC4_FORMULATION.md - /docs/NUMERICAL_CONVENTIONS.md - /docs/ADR.md ## Scope - Define `N1..N4` and derivatives for FESA natural coordinates. - Define tying points `A`, `B`, `C`, and `D`. - Build element-center director `Vn` from midsurface geometry. - Build nodal `V1`, `V2`, `Vn` and integration local Cartesian basis. - Add invalid/singular element diagnostics for near-zero normal, basis, Jacobian, and thickness. ## Allowed Files - `include/` - `src/` - `tests/` - `PLAN.md` - `PROGRESS.md` ## Explicit Non-Goals - Do not compute stiffness. - Do not add Abaqus `*Orientation` or nodal normal parsing. - Do not add mesh quality diagnostics. ## Tests To Write First - Shape function partition-of-unity and derivative tests. - Node order and tying-point coordinate tests. - Flat element normal and right-handed basis tests. - Fallback axis tests when `EY x Vn` is near zero. - Invalid geometry diagnostic tests. ## Reference Artifacts - None. ## Acceptance Commands ```bash python scripts/validate_workspace.py ``` ## Evaluator Checklist - Geometry matches `docs/MITC4_FORMULATION.md`. - The old averaged-edge basis is not used as the binding formulation. - No stress/strain or stiffness logic is slipped into this step. ## Handoff Requirements - Record MITC4 geometry readiness in `PROGRESS.md`. ## Do Not - Do not silently support strongly warped/nodal-director behavior beyond the documented Phase 1 policy.