feat: add analysis model objects
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# Step 1: node-model-class
|
||||
|
||||
## Read First
|
||||
|
||||
Read these files before editing:
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/AGENT_RULES.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/implementation-plans/analysis-model-objects-implementation-plan.md`
|
||||
- `/include/fesa/core/Node.hpp`
|
||||
- `/tests/core/node_test.cpp`
|
||||
|
||||
## Task
|
||||
|
||||
Refine the existing `Node` model class contract without adding solver state.
|
||||
|
||||
Allowed files:
|
||||
|
||||
- Modify `/include/fesa/core/Node.hpp`
|
||||
- Modify `/src/core/Domain.cpp` only if constructor/accessor definitions move or change
|
||||
- Modify `/tests/core/node_test.cpp`
|
||||
|
||||
Required behavior:
|
||||
|
||||
- `Node` exposes `id()`, `coordinates()`, `x()`, `y()`, `z()`.
|
||||
- `Node` exposes `static constexpr std::size_t dofCount()` or equivalent compile-time DOF count of 6.
|
||||
- `Node` does not store equation ids, displacements, residuals, reactions, or constraints.
|
||||
|
||||
## Tests To Write First
|
||||
|
||||
Extend `/tests/core/node_test.cpp` before production changes:
|
||||
|
||||
- Verify `Node::dofCount() == 6`.
|
||||
- Verify coordinate order is preserved.
|
||||
- Verify the returned coordinate data is const from a const `Node`.
|
||||
|
||||
Run the targeted build and confirm RED before implementation.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
Run:
|
||||
|
||||
```powershell
|
||||
python scripts/validate_workspace.py
|
||||
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R domain
|
||||
```
|
||||
|
||||
Update `/phases/analysis-model-objects/index.json` step 1 with status and summary.
|
||||
|
||||
## Do Not
|
||||
|
||||
- Do not add equation ids or solver state to `Node`.
|
||||
Reference in New Issue
Block a user