feat: add mitc4 covariant strain tying

This commit is contained in:
NINI
2026-05-04 22:02:25 +09:00
parent fa492f994d
commit d550e13e77
5 changed files with 369 additions and 6 deletions
+27 -1
View File
@@ -13,10 +13,36 @@ 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 7 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, DofManager/reaction foundation, minimum result model metadata, displacement CSV comparator foundation, and MITC4 geometry/director scaffolding 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 8 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, DofManager/reaction foundation, minimum result model metadata, displacement CSV comparator foundation, MITC4 geometry/director scaffolding, and MITC4 displacement/strain/tying row scaffolding 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-08 MITC4 covariant strain tying 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 MITC4 tests for global rotation to local `alpha`, `beta`, `gamma` mapping and verified drilling `gamma` does not enter the physical director increment.
- Added degenerated-continuum displacement interpolation tests at the midsurface and through-thickness points, including rotation-driven `q_k = -V2_k alpha_k + V1_k beta_k` behavior.
- Added direct covariant strain-row finite-difference tests in the documented order `[eps11, eps22, eps33, gamma23, gamma13, gamma12]`.
- Added MITC tying tests proving FESA `A/C` signs for `gamma13` and `B/D` signs for `gamma23`, and proving Gauss-point shear rows are interpolated from tying rows rather than using direct Gauss-point transverse shear.
- Implemented reusable MITC4 displacement derivative, direct strain evaluation, direct strain-row, tied strain-row, and row-evaluation helpers for later material/integration and stiffness steps.
Verification:
- First ran `python scripts/validate_workspace.py` after adding Step 8 tests; it failed as expected because the MITC4 displacement/strain/tying APIs did not exist yet.
- After implementation, `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-09 material matrix, transform, and `2 x 2 x 2` integration scaffolding.
- The existing stiffness kernel still needs to be rebuilt against the new row APIs in steps 9 and 10; Step 8 intentionally did not integrate stiffness, add material transforms, or add S4R behavior.
### 2026-05-04 - P1R-07 MITC4 geometry and directors completed
Author: Codex