feat: add domain model foundation
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user