feat(linear-static-3d-euler-beam): step 10 - domain-model
This commit is contained in:
@@ -144,3 +144,48 @@
|
||||
`git diff --exit-code -- reference/` exited 0.
|
||||
- scope: the deferred empty-dot review minor was not changed, reference artifacts
|
||||
remain untouched, and phase Step 9 status/timestamps were not modified.
|
||||
|
||||
## Step 10 — domain-model
|
||||
|
||||
- task_id: `TASK-10`
|
||||
- status: `completed`
|
||||
- changed_files: `include/fesa/model/model_types.hpp`,
|
||||
`include/fesa/model/domain.hpp`, `src/fesa/model/domain.cpp`,
|
||||
`tests/unit/model/model_types_test.cpp`, `tests/unit/model/domain_test.cpp`,
|
||||
`src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt`,
|
||||
`docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`,
|
||||
`phases/linear-static-3d-euler-beam/index.json`,
|
||||
`.superpowers/sdd/linear-static-3d-euler-beam/task-10-report.md`
|
||||
- requirement_ids: `FESA-REQ-LS3DEB-015`, `FESA-REQ-LS3DEB-016`,
|
||||
`FESA-REQ-LS3DEB-021`, `FESA-REQ-LS3DEB-030`,
|
||||
`FESA-REQ-LS3DEB-034`
|
||||
- test_ids: `T10-DOM-001`, `T10-DOM-002`, `T10-DOM-003`
|
||||
|
||||
| stage | exact command | exit_code | expected_or_observed_result | evidence_tail |
|
||||
| --- | --- | ---: | --- | --- |
|
||||
| RED | `cmake --build .harness/build --config Debug --target fesa_tests` | 1 | Both planned test translation units are registered before production and fail for the missing model API | MSVC C1083 for `fesa/model/domain.hpp` and `fesa/model/model_types.hpp`; the subsequent `ctest --test-dir .harness/build -C Debug -R DomainModel --output-on-failure` exited 0 with `No tests were found` because the new test executable could not build |
|
||||
| GREEN-build | `cmake --build .harness/build --config Debug --target fesa_tests` | 0 | Minimal model records, immutable Domain ownership, and both tests compile and link | `domain.cpp`, `domain_test.cpp`, and `model_types_test.cpp` built; `fesa_solver.lib` and `fesa_unit_tests.exe` linked without a FESA warning under `/W4 /WX` |
|
||||
| GREEN-test | `ctest --test-dir .harness/build -C Debug -R DomainModel --output-on-failure` | 0 | Source/internal identity, stable immutable ownership, and multiple-instance distinction pass | 3/3 exact `DomainModel` tests passed |
|
||||
| VERIFY-configure | `cmake -S . -B .harness/build -A x64 -DFESA_GTEST_SOURCE_DIR=C:/git/googletest "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake"` | 0 | Approved MSVC x64 build tree regenerates with explicit dependencies | Configure and generate completed; oneMKL 2026.1 and the existing dependency targets resolved |
|
||||
| VERIFY-build | `cmake --build .harness/build --config Debug` | 0 | Full Debug build passes without a new FESA warning | `fesa_solver.lib` and `fesa_unit_tests.exe` built under `/W4 /WX` |
|
||||
| VERIFY-targeted | `ctest --test-dir .harness/build -C Debug -R DomainModel --output-on-failure` | 0 | Focused Step 10 suite remains green | 3/3 `DomainModel` tests passed |
|
||||
| VERIFY-discovery | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | 0 | CTest discovers the accumulated suite and all exact DomainModel names | 10 tests discovered with `linear-static-3d-euler-beam` and `unit` labels |
|
||||
| VERIFY-full | `ctest --test-dir .harness/build -C Debug --output-on-failure` | 0 | Full accumulated C++ suite has zero failures | 10/10 tests passed |
|
||||
| VERIFY-dependency-direction | Backend scan over `include/fesa`; upward-include scan from `include/fesa/model`; core-to-model include scan from `include/fesa/core` using `rg -n` and fail-on-match wrappers | 0 | Public headers expose no MKL/PARDISO/TBB/HDF5 API and preserve `core -> model` dependency direction | backend leaks 0; model upward dependencies 0; core-to-model dependencies 0 |
|
||||
| VERIFY-diff | `git diff --check` | 0 | Patch has no whitespace errors | Exit 0; only Git LF-to-CRLF working-copy notices were emitted |
|
||||
| VERIFY-reference | `git diff --exit-code -- reference/` | 0 | Approved reference artifacts remain unchanged | Exit 0 and `git status --short -- reference/` produced no entries |
|
||||
|
||||
- contract_checks: every ledger record preserves `SourceLocation`; the static
|
||||
step retains all four timing values; `PartDefinition`, `InstanceDefinition`,
|
||||
and `SourceIndexMapping` retain source-to-internal identity; `ModelDefinition`
|
||||
retains source path/content identity, heading, warnings, and all semantic
|
||||
vectors. `Domain` owns the complete definition and returns const references;
|
||||
declaration-order vector positions remain stable internal indices. Node and
|
||||
beam definitions contain no equation-numbering state, and same-part identity
|
||||
instances retain distinct source identities and connectivity.
|
||||
- generated_evidence: `.harness/build/src/fesa/Debug/fesa_solver.lib`,
|
||||
`.harness/build/tests/Debug/fesa_unit_tests.exe`
|
||||
- reference_diff: unchanged; `git diff --exit-code -- reference/` exit 0
|
||||
- handoff: backend-free `EntityIndex`, semantic model records,
|
||||
`ModelDefinition`, and immutable `Domain::create`/const accessors are
|
||||
available to Step 11 syntax parsing and Step 12 semantic mapping.
|
||||
|
||||
Reference in New Issue
Block a user