1.4 KiB
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:
BoundaryConditionhas virtual destructor and a boundary kind enum.SinglePointConstraintderives fromBoundaryCondition.- 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
SinglePointConstraintthroughconst 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.