feat: implement phase 1 solver baseline
This commit is contained in:
+37
-7
@@ -13,10 +13,45 @@ 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
|
||||
The project is in documentation and readiness planning. Solver implementation has not started. The first stored Abaqus reference pair exists under `references/`: `quad_01.inp` and `quad_01_displacements.csv`.
|
||||
P1-01 through P1-14 have an initial C++17 implementation with CMake/CTest validation. P1-15 and P1-16 remain blocked because the repository does not yet contain a Phase 1-compatible Abaqus `TYPE=S4` input with matching `*_displacements.csv`; the first stored pair remains `quad_01.inp` and `quad_01_displacements.csv`, with `quad_01.inp` documented as S4R/NLGEOM provenance rather than Phase 1 parser input.
|
||||
|
||||
## Completed Work
|
||||
|
||||
### 2026-05-01 - P1-01 through P1-14 implementation pass
|
||||
Author: Codex
|
||||
|
||||
Changed files:
|
||||
- `CMakeLists.txt`
|
||||
- `include/fesa/fesa.hpp`
|
||||
- `src/fesa.cpp`
|
||||
- `tests/test_main.cpp`
|
||||
- `scripts/validate_workspace.py`
|
||||
- `README.md`
|
||||
- `docs/ADR.md`
|
||||
- `docs/MITC4_FORMULATION.md`
|
||||
- `PLAN.md`
|
||||
- `PROGRESS.md`
|
||||
- `phases/index.json`
|
||||
- `phases/1-linear-static-mitc4/index.json`
|
||||
|
||||
Summary:
|
||||
- Added a CMake/CTest C++17 build and test harness, and updated `scripts/validate_workspace.py` to run CMake configure, build, and CTest directly.
|
||||
- Added core numeric aliases, DOF mapping, diagnostics, Domain entities, Abaqus Phase 1 parser, Domain validation, DofManager, dense test matrix, deterministic Gaussian solver, in-memory result model, displacement CSV loader/comparator, MITC4 baseline stiffness kernel, full-system assembly, and `LinearStaticAnalysis`.
|
||||
- Closed the Phase 1 MITC4 baseline decisions in `docs/MITC4_FORMULATION.md`: midside shear tying interpolation, averaged-edge local basis, 2x2 integration, `drilling_stiffness_scale = 1.0e-6`, and mandatory `U`/`RF` output scope.
|
||||
- Added ADR-017 for the CMake/CTest build harness and ADR-018 for the Phase 1 MITC4 baseline closure.
|
||||
- Added tests for parser acceptance/rejection, `quad_01` unsupported provenance, validation diagnostics, DOF reconstruction, singular solve diagnostics, result fields, CSV loading/comparison, MITC4 shape/stiffness behavior, and end-to-end linear static RF recovery.
|
||||
- Marked phase steps P1-01 through P1-14 completed in `phases/1-linear-static-mitc4/index.json`.
|
||||
- Marked P1-15 blocked because no Phase 1-compatible Abaqus S4 reference case exists yet; P1-16 remains pending behind that blocker.
|
||||
|
||||
Verification:
|
||||
- `python scripts/validate_workspace.py` configured CMake, built `fesa_core` and `fesa_tests`, and ran CTest successfully.
|
||||
- CTest result: 1 test executable passed, covering 12 named in-repo test cases.
|
||||
|
||||
Follow-up:
|
||||
- Add at least one Phase 1-compatible Abaqus `TYPE=S4` linear static input and matching `*_displacements.csv`.
|
||||
- Add or explicitly defer `*_reactions.csv`; current RF validation is by internal full-vector equilibrium/reaction tests.
|
||||
- After reference artifacts are added, unblock P1-15 and run stored-reference regression, then complete P1-16 evaluator closeout.
|
||||
|
||||
### 2026-05-01 - P1-00 Phase 1 sprint contracts generated
|
||||
Author: Codex
|
||||
|
||||
@@ -317,14 +352,9 @@ Verification:
|
||||
## Known Blockers
|
||||
- No reaction-force reference artifact exists yet under `references/`.
|
||||
- The current initial `quad_01.inp` reference contains `S4R`, `Part/Assembly/Instance`, `*Density`, and `NLGEOM=YES`, so it is not a Phase 1 parser acceptance case as-is.
|
||||
- MITC4 transverse shear tying-point equations are not finalized in `docs/MITC4_FORMULATION.md`.
|
||||
- MITC4 local shell basis algorithm is not finalized.
|
||||
- Artificial drilling stiffness default scale is not finalized.
|
||||
- Build system is not decided.
|
||||
- Validation script has no concrete build/lint/test commands configured.
|
||||
- No Phase 1-compatible Abaqus `TYPE=S4` input with matching `*_displacements.csv` exists yet for stored-reference regression.
|
||||
|
||||
## Current Risks
|
||||
- Implementation could start from the `quad_01` reference input without accounting for its unsupported Abaqus features.
|
||||
- MITC4 formulation could drift if tying-point equations are inferred from memory instead of cited sources.
|
||||
- Reaction output may be wrong if full-space stiffness/load data is not preserved or reconstructed.
|
||||
- Large-model support may be weakened if any module narrows ids or sparse indices below int64.
|
||||
|
||||
Reference in New Issue
Block a user