78 lines
2.6 KiB
Markdown
78 lines
2.6 KiB
Markdown
# Step 0: domain-contract
|
|
|
|
## Read First
|
|
|
|
Read these files before editing:
|
|
|
|
- `/AGENTS.md`
|
|
- `/docs/PLAN.md`
|
|
- `/docs/PROGRESS.md`
|
|
- `/docs/WORKNOTE.md`
|
|
- `/docs/AGENT_RULES.md`
|
|
- `/docs/PRD.md`
|
|
- `/docs/ADR.md`
|
|
- `/docs/ARCHITECTURE.md`
|
|
- `/docs/implementation-plans/README.md`
|
|
|
|
## Task
|
|
|
|
Create `/docs/implementation-plans/domain-model-foundation-implementation-plan.md`.
|
|
|
|
The document must define the first C++ implementation slice for the `Domain` model container. It must explicitly state:
|
|
|
|
- `Domain` owns parsed model definitions only.
|
|
- Included model definitions: nodes, elements, materials, shell properties, node sets, element sets, boundary conditions, nodal loads, and analysis step definitions.
|
|
- Excluded state: equation ids, sparse matrix state, displacement vectors, residuals, reactions, current time, iteration counters, and element integration point state.
|
|
- `DofManager` owns equation numbering.
|
|
- `AnalysisModel` owns step-local execution views.
|
|
- `AnalysisState` owns mutable solution and iteration state.
|
|
- All ids use signed 64-bit storage.
|
|
- Node DOF order is `U1, U2, U3, UR1, UR2, UR3`.
|
|
- Units are user-consistent and not enforced by `Domain`.
|
|
- No Abaqus, Nastran, reference solver, HDF5 result, MKL, or TBB behavior is implemented in this phase.
|
|
|
|
Use the implementation-plan README template. Set:
|
|
|
|
- `feature_id: domain-model-foundation`
|
|
- `status: ready-for-implementation`
|
|
- `owner_agent: implementation-planning-agent`
|
|
- `date: 2026-06-08`
|
|
|
|
Include a work breakdown and TDD test plan for the following downstream steps:
|
|
|
|
1. CMake/CTest bootstrap.
|
|
2. Core id and DOF types.
|
|
3. Node and node storage.
|
|
4. Element definition storage.
|
|
5. Material, property, and set storage.
|
|
6. Boundary condition, nodal load, and step storage.
|
|
7. Domain invariant tests.
|
|
8. Validation report and handoff.
|
|
|
|
## Tests To Write First
|
|
|
|
This is a documentation planning step. Do not write C++ production code in this step.
|
|
|
|
## Acceptance Criteria
|
|
|
|
Run:
|
|
|
|
```powershell
|
|
python -m unittest discover -s scripts -p "test_*.py"
|
|
python scripts/validate_workspace.py
|
|
```
|
|
|
|
The current repository may still take the no-CMake informational path until Step 1 creates CMake files.
|
|
|
|
Update `/phases/domain-model-foundation/index.json` step 0:
|
|
|
|
- On success: `"status": "completed"` and a one-line `"summary"`.
|
|
- On repeated failure: `"status": "error"` and a concrete `"error_message"`.
|
|
- On user decision needed: `"status": "blocked"` and a concrete `"blocked_reason"`.
|
|
|
|
## Do Not
|
|
|
|
- Do not create C++ headers, sources, tests, or CMake files in this step.
|
|
- Do not change requirements, formulation, I/O contracts, reference artifacts, or tolerance policy.
|
|
- Do not run Abaqus, Nastran, or any reference solver.
|