refactor: store runtime objects in domain
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
# Step 3: step-and-set-runtime-references
|
||||
|
||||
## Read First
|
||||
|
||||
Read these files before editing:
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/AGENT_RULES.md`
|
||||
- `/docs/implementation-plans/domain-runtime-storage-implementation-plan.md`
|
||||
- `/include/fesa/core/Domain.hpp`
|
||||
- `/include/fesa/core/StepDefinition.hpp`
|
||||
- `/src/core/Domain.cpp`
|
||||
- `/tests/core/domain_storage_test.cpp`
|
||||
|
||||
## Task
|
||||
|
||||
Make Domain set and step validation reference runtime storage.
|
||||
|
||||
Rules:
|
||||
|
||||
- `Domain::addElementSet` must validate ids against runtime elements stored by `Domain::findElement`.
|
||||
- `Domain::addStep(LinearStaticStepDefinition)` may remain for now, but its boundary and load indices must validate against runtime boundary and load containers.
|
||||
- Failed insertions must not mutate Domain counts.
|
||||
- No equation ids, solver vectors, residuals, reactions, current time, or iteration state may be added to Domain.
|
||||
|
||||
## Tests To Write First
|
||||
|
||||
- Rewrite `/tests/core/domain_storage_test.cpp` set and step tests so they build elements, loads, and boundary conditions through runtime object APIs.
|
||||
- Preserve count-stability tests for failed insertions.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R domain
|
||||
python scripts/validate_workspace.py
|
||||
```
|
||||
|
||||
## Verification Notes
|
||||
|
||||
1. Run targeted CTest before production edits and confirm failure.
|
||||
2. Keep `LinearStaticStepDefinition` as the only remaining step record until a separate step-model phase exists.
|
||||
3. Update `phases/domain-runtime-storage/index.json` for this step result.
|
||||
Reference in New Issue
Block a user