1.4 KiB
1.4 KiB
Step 4: material-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/MaterialDefinition.hpp
Task
Add material model base and linear elastic material model object.
Allowed files:
- Create
/include/fesa/material/Material.hpp - Create
/include/fesa/material/LinearElasticMaterial.hpp - Create
/src/material/LinearElasticMaterial.cpp - Create
/tests/material/material_base_test.cpp - Modify
/CMakeLists.txt
Required behavior:
Materialhas virtual destructor andMaterialId id() const noexcept.LinearElasticMaterialderives fromMaterial.- Stores Young's modulus and Poisson ratio.
- No constitutive matrix or stress update in this phase.
Tests To Write First
Write /tests/material/material_base_test.cpp before production changes:
- Access
LinearElasticMaterialthroughconst Material&. - Verify id, E, and nu.
- Verify deletion through
std::unique_ptr<Material>.
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 4 status.
Do Not
- Do not implement constitutive matrices, stress updates, or tangent stiffness.