Files
FESADev/phases/property-model-foundation/step2.md
T
2026-06-09 11:56:42 +09:00

1.4 KiB

Step 2: shell-property-polymorphism

Read First

Read these files before editing:

  • /AGENTS.md
  • /docs/AGENT_RULES.md
  • /docs/implementation-plans/property-model-foundation-implementation-plan.md
  • /include/fesa/property/Property.hpp
  • /include/fesa/property/ShellProperty.hpp
  • /src/property/ShellProperty.cpp
  • /tests/property/shell_property_test.cpp

Task

Make ShellProperty derive from Property.

Required behavior:

  • ShellProperty::id() overrides Property::id().
  • ShellProperty::kind() returns PropertyKind::Shell.
  • ShellProperty keeps materialId() and thickness() accessors.
  • Constructor still rejects thickness <= 0.0.

Rules:

  • Do not rename ShellProperty in this phase.
  • Do not add shell section stiffness.
  • Do not add material lookup inside ShellProperty; Domain validates cross references.

Tests To Write First

  • Extend /tests/property/shell_property_test.cpp.
  • Test const Property& base = shell_property exposes id and kind.
  • Preserve positive-thickness validation tests.

Acceptance Criteria

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

Verification Notes

  1. Run targeted CTest before production edits and confirm failure.
  2. Keep ShellProperty free of solver state.
  3. Update phases/property-model-foundation/index.json for this step result.