Files
FESADev/phases/analysis-model-objects/step1.md
T
2026-06-09 09:04:21 +09:00

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.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:

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.