refactor: add phase1 module scaffold

This commit is contained in:
NINI
2026-05-05 00:35:31 +09:00
parent 90307dc13c
commit 59dcc77a24
31 changed files with 239 additions and 6 deletions
+53 -1
View File
@@ -13,10 +13,62 @@ 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 completed rebaseline execution path in `phases/1-linear-static-mitc4-rebaseline`. Steps 0 through 15 are complete, and P1R-15 recorded a pass-with-documented-gaps evaluator closeout. A follow-up architecture refactor phase is now planned in `phases/1-structure-alignment-refactor` because the current production implementation is concentrated in `include/fesa/fesa.hpp` instead of the module directories documented in `docs/ARCHITECTURE.md`. `quad_02_phase1.inp` is 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, DofManager/reaction foundation, minimum result model metadata, displacement CSV comparator foundation, MITC4 geometry/director scaffolding, MITC4 displacement/strain/tying row scaffolding, MITC4 material/transform/integration scaffolding, MITC4 stiffness/drilling/internal-force scaffolding, MITC4 patch/locking-sensitivity tests, full-space assembly, reduced projection, sparse-pattern scaffold, solver adapter injection, full-vector internal/reaction force state, active AnalysisModel construction, input-to-AnalysisState-to-U/RF result workflow, and the first stored Abaqus displacement regression have been revalidated. Full PRD Phase 1 completion still depends on the open architecture/reference gaps R-014, R-010, and R-013. The old `phases/1-linear-static-mitc4` path is historical and superseded after the MITC4 formulation reset.
Phase 1 has a completed rebaseline execution path in `phases/1-linear-static-mitc4-rebaseline`. Steps 0 through 15 are complete, and P1R-15 recorded a pass-with-documented-gaps evaluator closeout. The follow-up architecture refactor phase in `phases/1-structure-alignment-refactor` is underway because the current production implementation is concentrated in `include/fesa/fesa.hpp` instead of the module directories documented in `docs/ARCHITECTURE.md`; P1A-00 and P1A-01 are complete, so the next step is P1A-02 Core/Util extraction. `quad_02_phase1.inp` is 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, DofManager/reaction foundation, minimum result model metadata, displacement CSV comparator foundation, MITC4 geometry/director scaffolding, MITC4 displacement/strain/tying row scaffolding, MITC4 material/transform/integration scaffolding, MITC4 stiffness/drilling/internal-force scaffolding, MITC4 patch/locking-sensitivity tests, full-space assembly, reduced projection, sparse-pattern scaffold, solver adapter injection, full-vector internal/reaction force state, active AnalysisModel construction, input-to-AnalysisState-to-U/RF result workflow, and the first stored Abaqus displacement regression have been revalidated. Full PRD Phase 1 completion still depends on the open architecture/reference gaps R-014, R-010, and R-013. The old `phases/1-linear-static-mitc4` path is historical and superseded after the MITC4 formulation reset.
## Completed Work
### 2026-05-05 - P1A-01 module scaffold and facade completed
Author: Codex
Changed files:
- `CMakeLists.txt`
- `include/fesa/ModuleInfo.hpp`
- `include/fesa/Analysis/Analysis.hpp`
- `include/fesa/Assembly/Assembly.hpp`
- `include/fesa/Boundary/Boundary.hpp`
- `include/fesa/Core/Core.hpp`
- `include/fesa/Element/Element.hpp`
- `include/fesa/IO/IO.hpp`
- `include/fesa/Load/Load.hpp`
- `include/fesa/Math/Math.hpp`
- `include/fesa/Material/Material.hpp`
- `include/fesa/Property/Property.hpp`
- `include/fesa/Results/Results.hpp`
- `include/fesa/Util/Util.hpp`
- `include/fesa/fesa.hpp`
- `src/Analysis/Analysis.cpp`
- `src/Assembly/Assembly.cpp`
- `src/Boundary/Boundary.cpp`
- `src/Core/Core.cpp`
- `src/Element/Element.cpp`
- `src/IO/IO.cpp`
- `src/Load/Load.cpp`
- `src/Math/Math.cpp`
- `src/Material/Material.cpp`
- `src/Property/Property.cpp`
- `src/Results/Results.cpp`
- `src/Util/Util.cpp`
- `tests/test_main.cpp`
- `phases/1-structure-alignment-refactor/index.json`
- `PLAN.md`
- `PROGRESS.md`
Summary:
- Added architecture module scaffold headers and matching source directories for `Analysis`, `Assembly`, `Boundary`, `Core`, `Element`, `IO`, `Load`, `Math`, `Material`, `Property`, `Results`, and `Util`.
- Added `include/fesa/ModuleInfo.hpp` to record the module list and stable umbrella facade header policy without changing solver behavior, and exposed it through the existing `fesa/fesa.hpp` umbrella.
- Updated CMake to discover current and future `src/**/*.cpp` files under the module directories.
- Added an include compatibility smoke test that includes all module headers before `fesa/fesa.hpp` and checks the module list plus existing DOF mapping still works.
- No production symbols were moved from `include/fesa/fesa.hpp` in this step.
Verification:
- First ran `python scripts/validate_workspace.py` after adding the smoke test; it failed as expected because `fesa/Analysis/Analysis.hpp` did not exist yet.
- After adding the scaffold and CMake wiring, `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 P1A-02 Core/Util extraction while preserving all public symbols and behavior.
- Keep R-014 open until P1A-09 independently accepts the final architecture alignment.
### 2026-05-05 - P1A-00 architecture drift audit completed
Author: Codex