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

1.4 KiB

Step 7: boundary-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/BoundaryCondition.hpp

Task

Add boundary condition model base and single-point constraint object.

Allowed files:

  • Create /include/fesa/boundary/BoundaryCondition.hpp
  • Create /include/fesa/boundary/SinglePointConstraint.hpp
  • Create /src/boundary/SinglePointConstraint.cpp
  • Create /tests/boundary/boundary_base_test.cpp
  • Modify /CMakeLists.txt

Required behavior:

  • BoundaryCondition has virtual destructor and a boundary kind enum.
  • SinglePointConstraint derives from BoundaryCondition.
  • Stores node id, DOF, prescribed value.
  • No matrix elimination or reaction recovery in this phase.

Tests To Write First

Write /tests/boundary/boundary_base_test.cpp before production changes:

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

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

Do Not

  • Do not apply constraints to matrices or compute reactions.