1.4 KiB
1.4 KiB
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.cpponly if constructor/accessor definitions move or change - Modify
/tests/core/node_test.cpp
Required behavior:
Nodeexposesid(),coordinates(),x(),y(),z().Nodeexposesstatic constexpr std::size_t dofCount()or equivalent compile-time DOF count of 6.Nodedoes 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:
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.