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

1.5 KiB

Step 0: property-base-contract

Read First

Read these files before editing:

  • /AGENTS.md
  • /docs/PLAN.md
  • /docs/PROGRESS.md
  • /docs/WORKNOTE.md
  • /docs/AGENT_RULES.md
  • /docs/ARCHITECTURE.md
  • /docs/ADR.md
  • /docs/implementation-plans/domain-runtime-storage-implementation-plan.md
  • /include/fesa/property/ShellProperty.hpp
  • /include/fesa/core/Domain.hpp
  • /src/core/Domain.cpp

Task

Create /docs/implementation-plans/property-model-foundation-implementation-plan.md.

The plan must define the runtime property model contract:

  • Property is the base class for element properties and sections.
  • PropertyKind identifies concrete property families; phase 1 supports only Shell.
  • ShellProperty derives from Property.
  • Domain owns property objects through RAII.
  • Domain validates duplicate property ids and missing material ids.
  • Element::propertyId() remains an id reference; elements do not own property objects.

Keep out of scope:

  • shell section stiffness;
  • material constitutive matrices;
  • shear correction;
  • element formulation;
  • assembly, solver, HDF5 output, and reference comparison.

Tests To Write First

  • Documentation-only step. No C++ test is required in this step.

Acceptance Criteria

python -m unittest discover -s scripts -p "test_*.py"

Verification Notes

  1. Confirm the plan does not change MITC4 formulation or tolerance policy.
  2. Confirm the plan keeps solver state out of Domain.
  3. Update phases/property-model-foundation/index.json for this step result.