1.7 KiB
1.7 KiB
Step 2: core-id-types
Read First
Read these files before editing:
/AGENTS.md/docs/AGENT_RULES.md/docs/ADR.md/docs/ARCHITECTURE.md/docs/implementation-plans/domain-model-foundation-implementation-plan.md/CMakeLists.txt/tests/core/domain_bootstrap_test.cpp
Task
Introduce core id aliases and DOF ordering constants.
Allowed files:
- Create
/include/fesa/core/ModelTypes.hpp - Modify
/tests/core/domain_bootstrap_test.cppor create/tests/core/model_types_test.cpp - Modify
/CMakeLists.txtonly to register the new test file if a separate test executable is created
Required API:
namespace fesa::core {
using Id = std::int64_t;
using NodeId = Id;
using ElementId = Id;
using MaterialId = Id;
using PropertyId = Id;
using StepId = Id;
enum class Dof : std::uint8_t {
U1 = 0,
U2 = 1,
U3 = 2,
UR1 = 3,
UR2 = 4,
UR3 = 5
};
constexpr std::size_t kDofPerNode = 6;
}
Tests To Write First
Write a failing C++ test that includes fesa/core/ModelTypes.hpp before creating the header.
The test must verify:
sizeof(fesa::core::Id) == 8kDofPerNode == 6Dof::U1throughDof::UR3have ordinal values 0 through 5
Run the targeted CTest and verify it fails because the header is missing. Then implement the header.
Acceptance Criteria
Run:
cmake --build build/msvc-debug --config Debug
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R domain
python scripts/validate_workspace.py
Update /phases/domain-model-foundation/index.json step 2 with completed, error, or blocked.
Do Not
- Do not add model storage in this step.
- Do not add equation numbering or solver state.