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

2.4 KiB

Step 2: domain-model

Sprint Contract

Objective

Implement immutable-ish Domain entities for Phase 1 input data: nodes, elements, sets, materials, shell sections, loads, boundaries, and steps.

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
  • /docs/ABAQUS_INPUT_SUBSET.md
  • /phases/1-linear-static-mitc4/step1.md

Scope

  • Add Domain-level value objects and containers preserving input ids and labels.
  • Support Phase 1 shell elements as Abaqus TYPE=S4 mapped to FESA MITC4.
  • Represent node sets, element sets, linear elastic materials, shell sections, fixed boundary conditions, nodal loads, and linear static steps.
  • Provide lookup APIs and duplicate-id diagnostics without storing equation ids in entities.

Allowed Files

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

Explicit Non-Goals

  • Do not parse Abaqus files in this step.
  • Do not create AnalysisModel, AnalysisState, or DofManager.
  • Do not add support for S4R, pressure loads, nonzero prescribed displacement, Part/Assembly/Instance, dynamics, nonlinear steps, or thermal coupling.

Tests To Write First

  • Domain construction tests for nodes, elements, sets, materials, shell sections, loads, boundaries, and steps.
  • Duplicate id/name tests with diagnostics.
  • Lookup tests proving labels and ids are preserved.

Reference Artifacts

  • None.

Acceptance Commands

python scripts/validate_workspace.py

Evaluator Checklist

  • Domain preserves model definition and is treated as immutable after construction.
  • Node and element objects do not own global equation numbers.
  • Phase 1 object set matches docs/ABAQUS_INPUT_SUBSET.md.
  • Tests cover duplicate and missing lookup behavior.

Handoff Requirements

  • Record changed files and validation in PROGRESS.md.
  • Update future tasks in PLAN.md only if Domain scope changes.
  • 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 Domain APIs for architecture-boundary drift.

Do Not

  • Do not make Domain depend on solver adapters, analysis strategies, or result writers.