Files
FESADev/phases/1-structure-alignment-refactor/step6.md
T

2.6 KiB

Sprint Contract: MITC4 Geometry Strain Extraction

Objective

Move MITC4 geometry, director, natural-coordinate, displacement, direct covariant strain, and MITC shear-tying helpers into the Element module without changing the documented formulation.

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/MITC4_FORMULATION.md
  • /docs/VERIFICATION_PLAN.md
  • /phases/1-structure-alignment-refactor/step0-architecture-map.md
  • /phases/1-structure-alignment-refactor/step3.md

Scope

  • Extract MITC4 natural points, tying points, director frames, geometry, integration basis, displacement derivative helpers, direct strain rows, and MITC shear tying rows.
  • Keep the FESA/Abaqus S4 node order and tying-point labels unchanged.
  • Keep diagnostics for invalid thickness, singular center normal, singular basis, and singular Jacobian.
  • Keep drilling handling out of this step except where existing local rotation structures require it.

Allowed Files

  • include/fesa/fesa.hpp
  • include/fesa/Element/
  • src/Element/
  • include/fesa/Core/
  • include/fesa/Math/
  • tests/
  • CMakeLists.txt
  • phases/1-structure-alignment-refactor/index.json
  • PLAN.md
  • PROGRESS.md

Explicit Non-Goals

  • Do not change MITC4 formulas, signs, tying interpolation, basis construction, or tolerances.
  • Do not move stiffness integration or material matrix code in this step unless needed only to resolve declarations.
  • Do not add S4R, reduced integration, hourglass control, pressure loads, or nonlinear geometry.

Tests To Write First

  • Add or update include/link tests for MITC4 geometry/strain module headers.
  • Preserve finite-difference, tying interpolation, geometry, basis, and diagnostic tests as characterization tests.

Reference Artifacts

  • None.

Acceptance Commands

python scripts/validate_workspace.py

Evaluator Checklist

  • MITC4 geometry/strain helpers live in Element.
  • The implementation still matches docs/MITC4_FORMULATION.md.
  • FESA tying point sign convention remains unchanged.
  • No parser, assembly, or result behavior changes are mixed in.
  • Existing MITC4 geometry and strain tests still pass.

Handoff Requirements

  • Update this step status in phases/1-structure-alignment-refactor/index.json.
  • Record moved MITC4 geometry/strain files and any remaining Element symbols still left in fesa.hpp.

Do Not

  • Do not simplify or rewrite the formulation during relocation.
  • Do not tune tests around floating-point drift unless a real relocation-induced bug is found and fixed.