feat(linear-static-3d-euler-beam): step 19 - essential-constraints
This commit is contained in:
@@ -809,3 +809,54 @@
|
||||
| REVIEW1-targeted | `ctest --test-dir .harness/build -C Debug -R SparseAssembly --output-on-failure` | 0 | Exact SparseAssembly suite passed 5/5 |
|
||||
| REVIEW1-full | `ctest --test-dir .harness/build -C Debug --output-on-failure` | 0 | Full accumulated suite passed 47/47 |
|
||||
| REVIEW1-reference | `git diff --exit-code 59da6c6 -- reference/`; `git status --short -- reference/` | 0 | Approved reference artifacts remain unchanged and reference status is empty |
|
||||
|
||||
## Step 19 — essential-constraints
|
||||
|
||||
- task_id: `TASK-19`
|
||||
- status: `completed`
|
||||
- changed_files: `include/fesa/constraints/essential_constraints.hpp`,
|
||||
`src/fesa/constraints/essential_constraints.cpp`,
|
||||
`tests/unit/constraints/essential_constraints_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`
|
||||
- requirement_ids: `FESA-REQ-LS3DEB-007`, `FESA-REQ-LS3DEB-022`,
|
||||
`FESA-REQ-LS3DEB-027`, `FESA-REQ-LS3DEB-034`,
|
||||
`FESA-REQ-LS3DEB-035`
|
||||
- test_ids: `T19-CONSTRAINT-001`, `T19-CONSTRAINT-002`,
|
||||
`T19-CONSTRAINT-003`, `T19-CONSTRAINT-004`
|
||||
|
||||
| stage | exact command | exit_code | expected_or_observed_result | evidence_tail |
|
||||
| --- | --- | ---: | --- | --- |
|
||||
| RED-build | `cmake --build .harness/build --config Debug --target fesa_tests` | 1 | Exactly four planned tests were registered before production and the public constraint API was absent | MSVC C1083 reported missing `fesa/constraints/essential_constraints.hpp` from `essential_constraints_test.cpp` |
|
||||
| GREEN-build | `cmake --build .harness/build --config Debug --target fesa_tests` | 0 | Minimum partition/mapping implementation and all four tests compiled and linked | `essential_constraints.cpp`, its test, `fesa_solver.lib`, and `fesa_unit_tests.exe` built without a FESA warning under `/W4 /WX` |
|
||||
| GREEN-test | `ctest --test-dir .harness/build -C Debug -R EssentialConstraints --output-on-failure` | 0 | Hand-computed blocks, no/all/mixed constraints, nonzero reconstruction, and invalid dimensions passed | 4/4 exact `EssentialConstraints` 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 explicit-dependency MSVC x64 build tree generates | Windows SDK, oneMKL 2026.1, oneTBB, and HDF5 resolved; configure/generate completed |
|
||||
| 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 EssentialConstraints --output-on-failure` | 0 | Focused Step 19 suite remains green | 4/4 exact `EssentialConstraints` tests passed |
|
||||
| VERIFY-discovery | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | 0 | CTest discovers the accumulated suite and all four exact names | 51 tests discovered, including 4 `EssentialConstraints` tests |
|
||||
| VERIFY-full | `ctest --test-dir .harness/build -C Debug --output-on-failure` | 0 | Full accumulated C++ suite has zero failures | 51/51 tests passed |
|
||||
| VERIFY-contract-scans | Public backend and forbidden load/RHS/penalty/MPC scans, exact-test-count scan, `git diff --check`, and reference status/diff checks | 0 | Essential partition remains isolated behind backend-free public types | backend leaks 0; forbidden scope 0; exact tests 4; whitespace clean; reference unchanged |
|
||||
|
||||
- contract_checks: `partition` validates the input CSR, exact square/full-DOF
|
||||
dimensions, stable increasing free/constrained order, disjoint complete
|
||||
coverage, free-equation correspondence, and prescribed-vector size before
|
||||
extracting any block.
|
||||
- contract_checks: each full CSR slot maps at most once into
|
||||
`Kff/Kfc/Kcf/Kcc`. Filtering the stable full rows and sorted columns retains
|
||||
numeric values, local row/column order, and exact structural zeros; every
|
||||
returned block revalidates through the canonical 0-based CSR constructor.
|
||||
- contract_checks: no/all/mixed constraint cases include valid zero-sized
|
||||
rectangular blocks. `gatherFree`, `gatherConstrained`, and
|
||||
`reconstructFull` reject vector-size mismatch and preserve caller-supplied
|
||||
constrained values exactly, including nonzero prescribed displacement.
|
||||
- contract_checks: the module does not assemble loads, form an effective RHS,
|
||||
implement penalty/MPC behavior, or expose MKL/oneTBB/HDF5/PARDISO types.
|
||||
- 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: Step 20 may factorize the validated `kff`; Step 21 may use `kfc`
|
||||
with `DofManager::prescribedValues()` to form the nonzero prescribed
|
||||
effective RHS without changing this module's mapping responsibility.
|
||||
- concerns: none; no critical implementation or upstream contract conflict
|
||||
was found.
|
||||
|
||||
Reference in New Issue
Block a user