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

1.2 KiB

Step 6: load-base-interface

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/LoadDefinition.hpp

Task

Add load model base and nodal load object.

Allowed files:

  • Create /include/fesa/load/Load.hpp
  • Create /include/fesa/load/NodalLoad.hpp
  • Create /src/load/NodalLoad.cpp
  • Create /tests/load/load_base_test.cpp
  • Modify /CMakeLists.txt

Required behavior:

  • Load has virtual destructor and a load kind enum.
  • NodalLoad derives from Load.
  • Stores node id, DOF, and value.
  • No global vector assembly in this phase.

Tests To Write First

Write /tests/load/load_base_test.cpp before production changes:

  • Access NodalLoad through const Load&.
  • Verify kind, node id, DOF, value.
  • Verify deletion through std::unique_ptr<Load>.

Run targeted build and confirm RED.

Acceptance Criteria

Run:

python scripts/validate_workspace.py
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R model-object

Update step 6 status.

Do Not

  • Do not assemble forces or apply time/load factors.