2.4 KiB
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=S4mapped 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.mdPROGRESS.mdphases/1-linear-static-mitc4/index.json
Explicit Non-Goals
- Do not parse Abaqus files in this step.
- Do not create
AnalysisModel,AnalysisState, orDofManager. - 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.mdonly if Domain scope changes. - Update the matching phase index entry: use
completedwith a one-linesummary, orblockedwithblocked_reason, orerrorwitherror_message.
Verification
- Run the acceptance command.
- Inspect Domain APIs for architecture-boundary drift.
Do Not
- Do not make Domain depend on solver adapters, analysis strategies, or result writers.