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

56 lines
1.2 KiB
Markdown

# 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:
```powershell
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.