Files
FESADev/phases/1-linear-static-mitc4/step6.md
T
2026-05-01 02:40:19 +09:00

2.3 KiB

Step 6: analysis-model-dof-manager

Sprint Contract

Objective

Implement AnalysisModelBuilder and DofManager for one active linear static step with six-DOF nodes, constrained/free mapping, equation numbering, sparse-pattern input, and full/reduced vector reconstruction.

Required Reading

  • /AGENTS.md
  • /PROGRESS.md
  • /PLAN.md
  • /docs/README.md
  • /docs/HARNESS_ENGINEERING.md
  • /docs/PRD.md
  • /docs/ARCHITECTURE.md
  • /docs/ADR.md
  • /docs/NUMERICAL_CONVENTIONS.md
  • /phases/1-linear-static-mitc4/step5.md

Scope

  • Build an AnalysisModel active view from validated Domain.
  • Assign six shell DOFs per active node in documented order.
  • Apply fixed boundary conditions by constrained DOF elimination.
  • Produce int64 equation numbers for free DOFs and mappings for constrained DOFs.
  • Provide reconstruction helpers between reduced vectors and full vectors.

Allowed Files

  • include/**
  • src/**
  • tests/**
  • PLAN.md
  • PROGRESS.md
  • phases/1-linear-static-mitc4/index.json

Explicit Non-Goals

  • Do not assemble element stiffness or loads.
  • Do not store equation ids on Node or Element objects.
  • Do not solve linear systems or write HDF5 results.

Tests To Write First

  • DOF numbering tests for simple models with all six components.
  • Constrained/free partition tests for fixed boundary conditions.
  • Reduced/full reconstruction tests including constrained values set to zero for Phase 1.
  • Sparse-pattern input tests using active element connectivity without assembling values.

Reference Artifacts

  • None.

Acceptance Commands

python scripts/validate_workspace.py

Evaluator Checklist

  • DofManager owns global equation numbering.
  • ids, sparse indices, and equations remain int64-based.
  • Fixed constraints are handled by elimination, not penalty.
  • Reconstruction supports later full-vector RF recovery.

Handoff Requirements

  • Record DOF behavior, tests, and validation in PROGRESS.md.
  • Update PLAN.md only for future work or resolved blockers.
  • Update the matching phase index entry: use completed with a one-line summary, or blocked with blocked_reason, or error with error_message.

Verification

  1. Run the acceptance command.
  2. Inspect tests for constrained/free and full/reduced mapping edge cases.

Do Not

  • Do not make constrained DOF elimination depend on reduced-only reaction recovery.