feat: strengthen dof manager foundation

This commit is contained in:
NINI
2026-05-04 13:18:28 +09:00
parent ac72f4ccd7
commit b9b0963d50
5 changed files with 223 additions and 22 deletions
+26 -1
View File
@@ -13,10 +13,35 @@ Every new agent session must read this file together with `PLAN.md` before plann
- Do not remove history unless the user explicitly asks for archival cleanup.
## Current Status
Phase 1 has a new rebaseline phase definition in `phases/1-linear-static-mitc4-rebaseline`. Steps 0 through 4 are complete. `quad_02_phase1.inp` is now the normalized Phase 1-compatible input path for the stored `quad_02` S4 reference pair, while the original `quad_02.inp` remains preserved unsupported provenance. Core numeric aliases, DOF mapping, validation harness, model diagnostic context, the Phase 1 parser/domain subset, and validation/singular diagnostics have been revalidated. The old `phases/1-linear-static-mitc4` path is historical and superseded after the MITC4 formulation reset.
Phase 1 has a new rebaseline phase definition in `phases/1-linear-static-mitc4-rebaseline`. Steps 0 through 5 are complete. `quad_02_phase1.inp` is now the normalized Phase 1-compatible input path for the stored `quad_02` S4 reference pair, while the original `quad_02.inp` remains preserved unsupported provenance. Core numeric aliases, DOF mapping, validation harness, model diagnostic context, the Phase 1 parser/domain subset, validation/singular diagnostics, and DofManager/reaction foundation have been revalidated. The old `phases/1-linear-static-mitc4` path is historical and superseded after the MITC4 formulation reset.
## Completed Work
### 2026-05-04 - P1R-05 DofManager and reaction foundation completed
Author: Codex
Changed files:
- `include/fesa/fesa.hpp`
- `tests/test_main.cpp`
- `phases/1-linear-static-mitc4-rebaseline/index.json`
- `PLAN.md`
- `PROGRESS.md`
Summary:
- Added DofManager tests for six-DOF global ordering, noncontiguous node-id stability, constrained/free partitioning, equation numbering, full-vector reduction/reconstruction, element sparse-connectivity inputs, and a full-system reaction recovery formula.
- Extended `DofManager` with full DOF addresses, constrained full-index lists, full-vector reduction, element full-index connectivity, and element equation-id connectivity while keeping equation ids outside `Node` and `Element`.
- Added `recoverFullReaction(K_full, U_full, F_full)` and routed `LinearStaticAnalysis` through it so reaction recovery remains a full-vector operation rather than a reduced-vector shortcut.
- Updated assembly to consume element full DOF indices from `DofManager`, preserving DofManager ownership of sparse-pattern inputs.
Verification:
- First ran `python scripts/validate_workspace.py` after adding tests; it failed as expected because the new DofManager/reaction APIs did not exist yet.
- After implementing the DofManager and reaction-foundation APIs, `python scripts/validate_workspace.py` configured CMake, built `fesa_core` and `fesa_tests`, and ran CTest successfully.
- CTest result: 1 test executable passed.
Follow-up:
- Continue with P1R-06 results model and displacement CSV comparator foundation.
- Keep RF reference CSV availability open; current RF verification remains internal full-vector equilibrium until a stored `*_reactions.csv` artifact is provided.
### 2026-05-04 - P1R-04 validation and singular diagnostics completed
Author: Codex