docs: use S4-only MITC4 reference gate

This commit is contained in:
KOKO\Mimi
2026-08-13 00:48:26 +09:00
parent cf769aa44f
commit 91b2df9e4d
12 changed files with 142 additions and 140 deletions
+5 -3
View File
@@ -374,6 +374,8 @@ rotational stiffness block의 positive minimum diagonal에 `1e-3`을 곱한 고
stabilization만 둔다. Drilling calibration, artificial-energy policy와 별도 drilling result
dataset은 이 기능 범위가 아니다.
Reference comparison은 `reference/shell/` S4`reference/shellR/` S4R의 기존 input 및
displacement CSV 사용한다. Global `U1/U2/U3`만 blocking이고 B33과 같은 component-scale
mixed tolerance를 적용한다. `UR1/UR2/UR3`은 같은 기준의 warning-only evidence다.
Full-integration FESA-MITC4의 reference comparison은 `reference/shell/` S4의 기존 input 및
displacement CSV 사용한다. Global `U1/U2/U3`만 blocking이고 B33과 같은 component-scale
mixed tolerance를 적용한다. `UR1/UR2/UR3`은 같은 기준의 warning-only evidence다. S4R은
같은 kernel을 선택하는 source mapping과 metadata를 unit/integration tests로 검증하며
`reference/shellR/` artifact는 acceptance comparison에 포함하지 않는다.
+13 -9
View File
@@ -8,7 +8,7 @@
- source_numerical_review: `docs/numerical-reviews/linear-static-mitc4-shell-review.md`
- status: `approved-for-implementation-planning`
- owner_agent: `formulation-agent`
- date: `2026-08-12`
- date: `2026-08-13`
- revision_basis: approved independent-reference policy, fixed drilling rule, and
removal of calibration gates `NR-O01` through `NR-O04`
- revision_state: `numerical-review-passed`
@@ -1540,13 +1540,15 @@ or drilling-energy warning is part of this check.
### 17.5 Reference-comparison boundary
Abaqus comparisons block only on matched global `U1/U2/U3` rows under
Abaqus comparison uses only the declared full-integration S4 case and blocks only
on matched global `U1/U2/U3` rows under
`tolerance_c=1e-9+1e-6*reference_scale_c`, where `reference_scale_c` is the maximum
absolute finite Abaqus value for the same component. `UR1/UR2/UR3` uses the same
formula but an exceedance emits only a deterministic nonblocking warning.
FESA `S4` and `S4R` inputs must produce the same internal numerical rows for identical
supported models while preserving distinct source metadata. Abaqus S4 and S4R are
not expected to be numerically identical on finite meshes.
supported models while preserving distinct source metadata. This common-path property
is verified without consuming an S4R Abaqus artifact; Abaqus S4R is not an acceptance
reference for this full-integration FESA formulation.
### 17.6 Future nonlinear tangent verification
@@ -1628,9 +1630,9 @@ research brief remain the project source of truth.
| `017-020` | global 24-DOF virtual work; `rho_M <= 1e-12`; distributed loads excluded | I/O diagnostic/schema |
| `024-029` | deterministic element buffers, partitioned linear lifecycle, full-residual reaction | planning |
| `039-048` | nodal/global and shell/local recovery inventory, units, identities, physical shell energy | I/O schema |
| `049-057` | normalized invariants, patches, fixed drilling, declared references and equilibrium | Numerical Review/reference/physics |
| `049-057` | normalized invariants, patches, fixed drilling, declared S4 reference and equilibrium | Numerical Review/reference/physics |
| `058-064` | exact B33 mixed tolerance; U blocking and UR warning-only | reference verification |
| `065-072` | exact existing S4/S4R paths, immutability and displacement-only boundary | reference model |
| `065-072` | exact existing S4 paths, S4R reference non-consumption, immutability and displacement-only boundary | reference model |
### 20.1 Numerical Review revision traceability
@@ -1678,9 +1680,11 @@ items or an expanded reference portfolio as missing evidence.
### 21.3 Reference Model handoff
- Record the existing `reference/shell/` S4 and `reference/shellR/` S4R input and
displacement CSV paths, but compare only formulation-independent global displacement
evidence rather than claiming element equivalence.
- Record only the existing `reference/shell/` S4 input and displacement CSV as the
acceptance pair and compare formulation-independent global displacement evidence
without claiming element equivalence.
- Do not consume `reference/shellR/` in acceptance comparison; preserve S4R support
through source-mapping/common-kernel/metadata tests.
- Use the exact B33 mixed tolerance; do not add administrative metadata or portfolio gates.
- Do not create, repair, rename, or run reference artifacts during this formulation
gate.
@@ -13,7 +13,7 @@
- status: `ready-for-implementation`
- approval_state: `harness-step-draft-approved-2026-08-12`
- owner_agent: `implementation-planning-agent`
- date: `2026-08-12`
- date: `2026-08-13`
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md`
- source_research: `docs/research/linear-static-mitc4-shell-research.md`
- source_formulation: `docs/formulations/mitc4-shell-formulation.md`
@@ -37,7 +37,7 @@
승인된 Abaqus `.inp` subset의 `S4``S4R` source element를 하나의 FESA
`FESA-MITC4` 선형 정적 shell formulation으로 해석하고, 물리적으로 분리된 fixed
drilling stabilization, deterministic sparse assembly, mandatory HDF5 shell results,
declared displacement reference case를 end-to-end로 연결한다.
sole declared S4 displacement reference case를 end-to-end로 연결한다.
### Architecture
@@ -84,7 +84,7 @@ HDF5 temporary/self-check/atomic replacement는 재사용한다.
| Formulation | `docs/formulations/mitc4-shell-formulation.md`, `approved-for-implementation-planning` | pass | linear sections만 구현; Section 15 future nonlinear 제외 |
| Numerical Review | `docs/numerical-reviews/linear-static-mitc4-shell-review.md` | pass | critical blocker 없음; planning authorized |
| I/O | `docs/io-definitions/linear-static-mitc4-shell-io.md`, `approved-for-implementation-planning` | pass | keyword, diagnostic, HDF5 schema를 그대로 구현 |
| Reference Model | `docs/reference-models/linear-static-mitc4-shell-reference-models.md` | pass | input/CSV pair만 read-only 사용 |
| Reference Model | `docs/reference-models/linear-static-mitc4-shell-reference-models.md` | pass | sole S4 input/CSV pair만 read-only acceptance input으로 사용 |
| Repository seams | parser/model, element/analysis, result/reference 영역 read-only 조사 | pass | candidate files와 current signatures 확인 |
| Toolchain paths | GoogleTest/MKL/TBB/HDF5 config directories 존재 | pass | Section 10의 exact configure command 사용 가능 |
@@ -99,7 +99,6 @@ Declared read-only reference inventory:
| case | source | displacement CSV | SHA-256 |
| --- | --- | --- | --- |
| S4 | `reference/shell/shell.inp` | `reference/shell/shell displacements.csv` | input `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF`; CSV `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` |
| S4R | `reference/shellR/shellR.inp` | `reference/shellR/shellR displacements.csv` | input `1325940FB42B78961CF25E84379BF2693846FAD22473E7688AC5456B37B18CB4`; CSV `8887ACC5ED007CB97583A9FDC1150B48B9297E269A5BA8EBA6C1A5F6306E98CB` |
README, `metadata.json`, Abaqus provenance/version, canonical naming 및 추가 portfolio는
readiness gate가 아니다. 현재 열린 product/numerical 결정은 없다. 남은 승인 항목은
@@ -161,7 +160,7 @@ order even when the minimal dependency set below is smaller.
| TASK-12 | TASK-01, TASK-07, TASK-08, TASK-10, TASK-11 |
| TASK-13 | TASK-11, TASK-12 |
| TASK-14 | TASK-13 |
| TASK-15 | TASK-13 |
| TASK-15 | TASK-01, TASK-07, TASK-11 |
| TASK-16 | TASK-00 through TASK-15 |
### TASK-00: `shell-semantic-model`
@@ -291,14 +290,15 @@ order even when the minimal dependency set below is smaller.
- Assert source type `S4`, internal `FESA-MITC4` and U pass/UR report behavior.
- Tests: `MITC4-E2E-S4-001`, `MITC4-E2E-S4-002`.
### TASK-15: `shell-s4r-end-to-end`
### TASK-15: `shell-s4r-common-path-verification`
- This is declared-case sub-work owned by TASK-13/Step 13's test-only reference module,
not an independent production-module Step.
- Run the declared S4R deck through the identical numerical route.
- Assert only source metadata differs from an otherwise identical S4 semantic fixture;
no reduced integration/hourglass branch exists.
- Tests: `MITC4-E2E-S4R-001`, `MITC4-E2E-S4R-002`.
- This is non-reference coverage distributed across the existing domain-mapping,
sparse-assembly and HDF5 tests; Step 13 does not consume an S4R Abaqus artifact.
- Assert S4R selects the same FESA-MITC4 integration/kernel/assembly path as an
otherwise identical S4 semantic fixture while preserving only source metadata.
- Tests: `InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity`,
`SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness`, and the
existing shell HDF5 source-type metadata coverage.
### TASK-16: `mitc4-full-verification`
@@ -370,8 +370,6 @@ order even when the minimal dependency set below is smaller.
| MITC4-REF-006 | comparator may require administrative files | only declared input/CSV/HDF5 required | `Mitc4ReferenceComparison.*` |
| MITC4-E2E-S4-001 | S4 deck cannot produce valid shell HDF5 | CLI succeeds with exact S4 metadata/schema | `Mitc4S4Reference.*` |
| MITC4-E2E-S4-002 | S4 U comparison unavailable | all U rows pass; UR fully reported | `Mitc4S4Reference.*` |
| MITC4-E2E-S4R-001 | S4R deck selects no/other path | same FESA-MITC4 integration rule | `Mitc4S4RReference.*` |
| MITC4-E2E-S4R-002 | S4R U comparison unavailable | all U rows pass; UR fully reported | `Mitc4S4RReference.*` |
| MITC4-VERIFY-001 | feature tests not discoverable | all planned suites discovered/labeled | CTest JSON inventory |
| MITC4-VERIFY-002 | warnings/regressions unknown | MSVC Debug full build passes /W4 /WX | full build |
| MITC4-VERIFY-003 | nondeterminism unknown | repeated focused/full tests pass | full CTest |
@@ -505,7 +503,7 @@ once without gap or overlapping requirement range.
| requirement range | owning tasks | test/evidence id | reference model id | acceptance |
| --- | --- | --- | --- | --- |
| 001 | TASK-01, TASK-12 | MAP-004, FLOW-001 | N/A | one static step only; deterministic rejection otherwise |
| 002-004 | TASK-00, TASK-01, TASK-11, TASK-14, TASK-15 | MODEL-001, MAP-001, H5-001, both E2E suites | `shell-s4`, `shell-s4r` | S4/S4R one kernel; distinct stable source identity |
| 002-004 | TASK-00, TASK-01, TASK-11, TASK-14, TASK-15 | MODEL-001, MAP-001, H5-001, S4 E2E plus S4R common-path tests | `shell-s4` for reference; S4R N/A | S4/S4R one kernel; distinct stable source identity |
| 005 | TASK-00, TASK-06, TASK-11 | MODEL-001, DOF-001/003, H5-001/002 | N/A | exact six-component order; no distributed equation ownership |
| 006-010 | TASK-00, TASK-01 | MODEL-002, MAP-002/003 | N/A | finite E,nu,t; one assignment; unsupported meanings fail |
| 011-016 | TASK-02, TASK-03 | GEO-001..004, KIN-002 | N/A | deterministic unit directors; exact geometry predicates |
@@ -514,21 +512,21 @@ once without gap or overlapping requirement range.
| 024-030 | TASK-00, TASK-06, TASK-07, TASK-09, TASK-10, TASK-12, TASK-16 | MODEL, DOF, ASM, STATE, REC, FLOW, VERIFY suites | N/A | ownership, deterministic assembly, lifecycle, residual reaction |
| 031-038 | TASK-03, TASK-04, TASK-05, TASK-07, TASK-10 | KIN, KERNEL, PHYSREC, ASM-003, REC-003 | N/A | physical 5-DOF embedding, exact drilling, same quadrature, invariants |
| 039-048 | TASK-09, TASK-10, TASK-11, TASK-12 | STATE-001..003, REC-001..005, H5-001..004, FLOW-004 | N/A | mandatory finite schema/results and atomic commit |
| 049 | TASK-00 through TASK-16 | every production Task records RED/failure/GREEN/focused/full VERIFY; VERIFY-001..003 | `shell-s4`, `shell-s4r` where reference-dependent | TDD evidence, related C++ tests, MSVC Debug no-warning build and full CTest |
| 049 | TASK-00 through TASK-16 | every production Task records RED/failure/GREEN/focused/full VERIFY; VERIFY-001..003 | `shell-s4` where reference-dependent | TDD evidence, related C++ tests, MSVC Debug no-warning build and full CTest |
| 050 | TASK-02 through TASK-05, TASK-07 | GEO-001/002, KIN-001/002, KERNEL-001..004, ASM-002 | N/A | frames, Jacobian, symmetry, transformation, six modes, positivity and repeatability |
| 051 | TASK-02 through TASK-05, TASK-10, TASK-12 | GEO-001, KERNEL-001..003, REC-004, FLOW-002 | N/A | exact normalized 1e-12 and 1e-10 algebraic thresholds |
| 052 | TASK-03 through TASK-05, TASK-10 | KIN-003/004, KERNEL-004, PHYSREC-001, REC-001/002 | N/A | independent membrane, bending, shear, twist fields and recovery signs/order |
| 053 | TASK-04, TASK-05, TASK-14, TASK-15 | KERNEL-001..007, PHYSREC-001, both declared E2E suites | `shell-s4`, `shell-s4r` | formulation invariants/patches and both reference cases pass |
| 053 | TASK-04, TASK-05, TASK-14 | KERNEL-001..007, PHYSREC-001, declared S4 E2E suite | `shell-s4` | formulation invariants/patches and the S4 reference case pass |
| 054 | TASK-02 | GEO-001..004 | N/A | exact valid/rejected geometry inventory; no NR-O03/O04 |
| 055 | TASK-16 | VERIFY scope audit | N/A | extra benchmark portfolio is explicitly nonblocking and absent from completion gate |
| 056 | TASK-04, TASK-05, TASK-07, TASK-10 | KERNEL-005..007, PHYSREC-001, ASM-001/002, REC-003 | N/A | exact fixed drilling, deterministic rank/action and physical-output exclusion |
| 057 | TASK-10, TASK-12, downstream Physics Evaluation | REC-002..004, FLOW-002, later physics report | `shell-s4`, `shell-s4r` | implementation exposes equilibrium/sign/energy evidence; physical plausibility verdict is downstream |
| 058-060 | TASK-13, TASK-14, TASK-15 | REF-003, both E2E comparison tests | `shell-s4`, `shell-s4r` | exact U mixed tolerance without clamp |
| 061-062 | TASK-13, TASK-14, TASK-15 | REF-004/005, both E2E tests | `shell-s4`, `shell-s4r` | UR same tolerance, deterministic warning only |
| 063-064 | TASK-13 | REF-001/002/005 | `shell-s4`, `shell-s4r` | schema/row failure before numeric comparison; full metrics |
| 065-068 | TASK-13, TASK-14, TASK-15 | REF-001/002/006, both case prechecks | `shell-s4`, `shell-s4r` | exact four read-only paths; unique finite mapped rows |
| 069-071 | TASK-14, TASK-15 | both E2E suites | `shell-s4`, `shell-s4r` | declared S4/S4R; U blocks and UR warns; no other equality gate |
| 072 | TASK-13 through TASK-16 | REF-006, VERIFY-004 and git/hash audit | `shell-s4`, `shell-s4r` | no reference solver run or artifact mutation |
| 057 | TASK-10, TASK-12, downstream Physics Evaluation | REC-002..004, FLOW-002, later physics report | `shell-s4` | implementation exposes equilibrium/sign/energy evidence; physical plausibility verdict is downstream |
| 058-060 | TASK-13, TASK-14 | REF-003 and S4 E2E comparison | `shell-s4` | exact U mixed tolerance without clamp |
| 061-062 | TASK-13, TASK-14 | REF-004/005 and S4 E2E test | `shell-s4` | UR same tolerance, deterministic warning only |
| 063-064 | TASK-13 | REF-001/002/005 | `shell-s4` | schema/row failure before numeric comparison; full metrics |
| 065-068 | TASK-13, TASK-14, TASK-15 | REF-001/002/006, S4 case precheck and S4R non-consumption/common-path evidence | `shell-s4` | exact two S4 paths; unique finite mapped rows; no S4R artifact consumption |
| 069-071 | TASK-14, TASK-15 | S4 E2E suite and S4R common-path tests | `shell-s4` | S4 U blocks/UR warns; S4R mapping has no Abaqus equality gate |
| 072 | TASK-13 through TASK-16 | REF-006, VERIFY-004 and git/hash audit | `shell-s4` | no reference solver run or artifact mutation |
## 10. Validation Commands
@@ -571,7 +569,7 @@ cmake --build .harness/build --config Debug --target fesa_integration_tests
ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|Mitc4ShellCli" --output-on-failure
cmake --build .harness/build --config Debug --target fesa_reference_tests
ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference|Mitc4S4RReference" --output-on-failure
ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure
```
Planning-document verification:
@@ -588,8 +586,6 @@ Reference immutability audit is read-only and fails on any mismatch:
$expectedReferenceHashes = [ordered]@{
"reference/shell/shell.inp" = "4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"
"reference/shell/shell displacements.csv" = "C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B"
"reference/shellR/shellR.inp" = "1325940FB42B78961CF25E84379BF2693846FAD22473E7688AC5456B37B18CB4"
"reference/shellR/shellR displacements.csv" = "8887ACC5ED007CB97583A9FDC1150B48B9297E269A5BA8EBA6C1A5F6306E98CB"
}
foreach ($referencePath in $expectedReferenceHashes.Keys) {
$actualHash = (Get-FileHash -Algorithm SHA256 -LiteralPath $referencePath).Hash
@@ -656,8 +652,9 @@ user separately authorizes execution.
This approved draft is materialized under `phases/linear-static-mitc4-shell/`.
Every Step is zero-based, kebab-case and closes RED/GREEN/VERIFY before the
Executor advances it. TASK-14/TASK-15 are declared-case sub-work inside Step 13's
single test-only reference module; TASK-16 is downstream Build/Test Executor evidence,
Executor advances it. TASK-14 is declared-case sub-work inside Step 13's single
test-only reference module; TASK-15 is non-reference coverage already owned by
Steps 1/7/11; TASK-16 is downstream Build/Test Executor evidence,
not an Implementation Agent phase Step. During materialization, the exact required-reading
paths, configure block, focused command and full VERIFY block shown here are copied
verbatim into every `stepN.md`; a materialized Step never refers back to this draft or
@@ -696,7 +693,7 @@ Step-specific path ledger copied into the corresponding materialized Step:
| 10 | Steps 5/9 paths; `include/fesa/results/result_recovery.hpp`; `src/fesa/results/result_recovery.cpp`; `tests/unit/results/result_recovery_test.cpp` |
| 11 | Steps 9/10 paths; `include/fesa/io/hdf5/hdf5_results_writer.hpp`; `src/fesa/io/hdf5/hdf5_results_writer.cpp`; `tests/unit/io/hdf5/hdf5_results_writer_test.cpp` |
| 12 | Steps 7-11 paths; `include/fesa/analysis/linear_static_analysis.hpp`; `src/fesa/analysis/linear_static_analysis.cpp`; `tests/integration/analysis/linear_static_analysis_test.cpp`; `tests/integration/app/fesa_application_test.cpp` |
| 13 | Steps 11/12 paths; candidate new `tests/reference/mitc4_reference_comparison.hpp`, `tests/reference/mitc4_reference_comparison.cpp`, `tests/reference/mitc4_reference_comparison_test.cpp`, `tests/reference/mitc4_reference_cases_test.cpp`; `tests/CMakeLists.txt`; the four exact read-only reference paths in Section 2 |
| 13 | Steps 11/12 paths; candidate new `tests/reference/mitc4_reference_comparison.hpp`, `tests/reference/mitc4_reference_comparison.cpp`, `tests/reference/mitc4_reference_comparison_test.cpp`, `tests/reference/mitc4_reference_cases_test.cpp`; `tests/CMakeLists.txt`; the two exact read-only S4 reference paths in Section 2 |
The configure command copied before each Step's RED build is:
@@ -880,20 +877,20 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
### Step 13 — `shell-reference-comparison`
- Required reading: requirements 058-072, I/O Section 7, Reference Model contract,
both declared S4/S4R paths and hashes, and current B33 comparator only as reusable
the sole declared S4 paths and hashes, and current B33 comparator only as reusable
identity/report precedent.
- Scope ownership: this one test-only reference module owns TASK-13 comparator behavior
plus TASK-14/TASK-15 declared-case tests; it owns no solver production module.
plus TASK-14 declared-case tests; it owns no solver production module.
- Prerequisite: Step 12 `completed` and valid MITC4 HDF5 fixture.
- RED: add REF-001..006 plus E2E-S4-001/002 and E2E-S4R-001/002 before the comparator
- RED: add REF-001..006 plus E2E-S4-001/002 before the comparator
implementation; build the reference target and run
`ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference|Mitc4S4RReference" --output-on-failure`.
`ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure`.
Record the missing comparator/declared-case failure.
- GREEN: minimally add test-only comparator for exact shell CSV/HDF5 contract.
- If a declared case exposes a production defect outside this reference-test module,
stop the Step and route a focused correction to the owning prior module; do not patch
unrelated production layers inside this Step.
- VERIFY: focused comparator and both declared-case tests, then common full VERIFY.
- VERIFY: focused comparator and the declared S4 tests, then common full VERIFY.
- Prohibitions: no reference artifact writes/Abaqus run, no metadata/README gate, no UR blocking.
After explicit approval, planning may create only:
@@ -10,10 +10,10 @@
- source_commits: requirements/research/formulation policy revision `73df844`
- status: `approved-for-implementation-planning`
- owner_agent: `io-definition-agent`
- date: `2026-08-12`
- date: `2026-08-13`
- authoritative_output: `results.h5`
- hdf5_schema_version: `0`
- reference_cases: read-only S4 at `reference/shell/`; read-only S4R at `reference/shellR/`
- reference_cases: sole acceptance case is read-only full-integration S4 at `reference/shell/`; S4R is covered by non-reference source-mapping/kernel/metadata tests
- implementation_planning_authorized: `true`
This document defines the approved semantic input and output contract for the
@@ -23,14 +23,15 @@ comparison-tool C++ APIs and does not claim full Abaqus compatibility or Abaqus
The user approved the following I/O-specific decisions on `2026-08-12`:
1. `S4` and `S4R` reference artifacts remain separate even though both source types
map to one internal `FESA-MITC4` formulation.
1. `S4` and `S4R` source types map to one internal full-integration `FESA-MITC4`
formulation, while only S4 is an Abaqus acceptance reference.
2. The optional positive integer on a `*SHELL SECTION` thickness row is accepted
without a warning and has no semantic effect on FESA quadrature. FESA always uses
the formulation's `2 x 2 x 2` rule.
3. The existing `reference/shell/` S4 and `reference/shellR/` S4R input/displacement
files are retained under their current names without mutation. No canonical or
legacy-alias classification is required.
3. The existing `reference/shell/` S4 input/displacement files are the sole declared
acceptance pair and remain under their current names without mutation. Existing
`reference/shellR/` files are untouched optional evidence and are not consumed by
acceptance comparison. No canonical or legacy-alias classification is required.
4. HDF5 schema version `0` is extended additively with MITC4-specific datasets while
retaining the existing common metadata, nodal-result, diagnostic, CLI, and
failure-atomicity conventions.
@@ -440,15 +441,12 @@ Authoritative comparison reads `results.h5` and read-only Abaqus CSV artifacts.
A deterministic FESA CSV projection is a debugging/review view only; it is neither
solver output nor a reference artifact.
### 7.1 S4/S4R case separation
### 7.1 Full-integration reference boundary
- S4 and S4R use their existing distinct input and displacement CSV paths.
- FESA maps both source types to `FESA-MITC4`, but Abaqus S4 and S4R values are not
expected to equal each other on a finite mesh.
- Reference comparison always compares one FESA run with Abaqus rows generated from
the same source model/type.
- FESA maps S4 and S4R source types to the same full `2 x 2 x 2` FESA-MITC4 path.
- Reference comparison consumes only the declared S4 input/displacement pair.
- Equality of FESA internal numerical rows after changing only source type is a
separate implementation test, not an Abaqus S4-versus-S4R comparison.
separate implementation test; it does not consume or compare Abaqus S4R rows.
### 7.2 Declared S4 case
@@ -463,23 +461,18 @@ The files must not be renamed, rewritten, zero-clamped, normalized, or repaired.
The reaction and stress CSV files in the same directory are optional review evidence
and are not comparison inputs.
### 7.3 Declared S4R case
### 7.3 S4R non-reference coverage
The blocking S4R case uses:
| role | exact path | SHA-256 | observed inventory |
| --- | --- | --- | --- |
| input | `reference/shellR/shellR.inp` | `1325940FB42B78961CF25E84379BF2693846FAD22473E7688AC5456B37B18CB4` | `TYPE=S4R`; declared comparison input |
| displacement | `reference/shellR/shellR displacements.csv` | `8887ACC5ED007CB97583A9FDC1150B48B9297E269A5BA8EBA6C1A5F6306E98CB` | 49 finite data rows; U and UR columns |
These files follow the same immutability rule. The reaction and stress CSV files in
the directory are optional review evidence and are not comparison inputs. No README,
No file under `reference/shellR/` is required or consumed by this acceptance
comparison. S4R source support is verified by parser mapping, S4/S4R common-kernel
and deterministic-assembly equivalence, plus preserved HDF5 source-type metadata.
Any existing S4R artifacts remain immutable optional inspection evidence. No README,
`metadata.json`, canonical name, legacy alias, provenance record, or duplicated model
description is required for either case.
description is required.
### 7.4 Displacement header mapping
After trimming header whitespace, both declared displacement CSVs use:
After trimming header whitespace, the declared S4 displacement CSV uses:
| CSV column | comparison field/component | FESA HDF5 source |
| --- | --- | --- |
@@ -604,7 +597,7 @@ warning behavior.
| HDF5 model | exact paths, dtypes, shapes, IDs, source types, directors, sections, and finite values | output, exit 6 |
| HDF5 results | every mandatory row/location/component exists in stable order and is finite | output, exit 6 |
| S4 case | exact declared input/displacement paths and unique finite U/UR rows | reference precheck |
| S4R case | exact declared input/displacement paths and unique finite U/UR rows | reference precheck |
| S4R source support | parser/common-kernel/deterministic-assembly/HDF5 metadata tests; no Abaqus artifact consumption | implementation verification |
| comparison | exact normalized row-set; U blocking; UR warning-only; approved tolerance | reference verification |
No successful parser/HDF5 implementation, numerical solution, reference comparison,
@@ -623,7 +616,7 @@ physics review, or release status follows from approval of this document alone.
| `039-048` | additive HDF5 v0 paths, mandatory quantities, location identity, atomic output | Reference Model and Implementation Planning |
| `049-057` | diagnostic/schema hooks and required verification-metric/physical-energy evidence | Numerical Review and planning |
| `058-064` | normalized U/UR rows, exact B33 tolerance, blocking/warning behavior, report inventory | Reference Verification |
| `065-072` | exact current S4/S4R paths, immutability and displacement-only gate | Reference Model |
| `065-072` | exact current S4 paths, S4R reference non-consumption, immutability and displacement-only gate | Reference Model |
## 11. Open Issues and Downstream Handoff
@@ -10,11 +10,11 @@
- source_reference_inventory: `docs/reference-models/linear-static-mitc4-shell-reference-models.md`
- repository_policy: `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`,
`docs/numerical-reviews/README.md`
- reviewed_head: `a058ef7`
- reviewed_head: `cf769aa` (`mathematical implementation baseline`)
- prior_pass_commit: `60b42f4` (`context-only; verdict not inherited`)
- status: `pass-for-implementation-planning`
- owner_agent: `numerical-review-agent`
- date: `2026-08-12`
- date: `2026-08-13`
- implementation_planning_authorized: `true`
- implementation_complete: `false`
- build_test_complete: `false`
@@ -75,7 +75,7 @@ confirmed mathematical defect는 없다.
| `NR-O02` drilling-energy ratio | `removed from scope` | Drilling energy는 내부 quadratic identity일 뿐 physical energy나 mandatory output이 아니며 ratio/warning threshold도 요구하지 않는다. |
| `NR-O03` smooth-director calibration | `removed from scope` | Pairwise positive incident-normal orientation, finite/nonzero averaging 및 duplicate-node fold modeling이 승인된 exact predicate다. 별도 angle calibration은 gate가 아니다. |
| `NR-O04` distortion/warp calibration | `removed from scope` | Basic topology, finite/nonzero surface measure 및 required-point `J>0`가 승인된 predicate다. Quality sweep이나 cutoff는 gate가 아니다. |
| `NR-O05` U/UR tolerance | `resolved` | 모든 관련 문서가 `1e-9+1e-6*reference_scale_c`, U blocking, UR warning-only를 동일하게 정의한다. |
| `NR-O05` U/UR tolerance | `resolved` | 모든 관련 문서가 sole S4 reference에 `1e-9+1e-6*reference_scale_c`, U blocking, UR warning-only를 동일하게 정의한다. S4R은 reference gate가 아닌 common-path evidence다. |
이전의 `needs-reference-model` 판정에 포함됐던 canonical naming, README,
`metadata.json`, provenance, expanded portfolio 및 아직 없는 comparison result는 현재
@@ -91,9 +91,9 @@ confirmed mathematical defect는 없다.
- optional_characterization: near-singular positive-J geometry의 conditioning과 original
MITC4의 distorted-curved membrane locking을 더 넓게 정량화할 수 있으나 현재 승인된
planning/completion gate는 아니다.
- downstream_results: implementation rank/patch evidence S4/S4R comparison 결과는
아직 없으며 해당 후속 Agent가 판정한다. 부재 자체는 pre-implementation review의
결함이 아니다.
- downstream_results: implementation rank/patch evidence, S4 reference comparison
S4R common-path test 결과는 해당 후속 Agent가 판정한다. 부재 자체는
pre-implementation review의 결함이 아니다.
## 4. Numerical Risk Assessment
@@ -104,13 +104,13 @@ confirmed mathematical defect는 없다.
| `symmetry` | `B^T C B`, `T_p^T K20 T_p`, `T_d^T(k_d I)T_d`는 exact arithmetic에서 symmetric이다. | Scaled Frobenius check `<=1e-12`; deterministic assembly가 대칭을 깨지 않는지 확인한다. |
| `positive_definiteness` | Free element는 six-mode semidefinite이고, 충분히 구속된 nonsingular `Kff`는 positive definite가 기대된다. Geometry 또는 supports가 부적절하면 singularity가 정당하다. | Scaled spectrum/rank, non-rigid positive physical energy, constrained solve 및 singular negative cases를 분리한다. |
| `hourglass` | `1 x 1` reduced integration을 쓰지 않으므로 Abaqus-style hourglass path는 `N/A`다. | Full `2 x 2` midsurface rank test는 유지한다. S4R source label로 reduced rule을 선택하지 않는다. |
| `shear_locking` | Edge-midpoint MITC projection이 transverse-shear locking을 다루지만 모든 mesh/thickness에서 완전 제거를 주장할 수 없다. | Required shear/bending patch와 declared references를 통과한다. Broader thin/thick convergence는 nonblocking characterization이다. |
| `shear_locking` | Edge-midpoint MITC projection이 transverse-shear locking을 다루지만 모든 mesh/thickness에서 완전 제거를 주장할 수 없다. | Required shear/bending patch와 declared S4 reference를 통과한다. Broader thin/thick convergence는 nonblocking characterization이다. |
| `membrane_locking` | Original MITC4는 membrane strain을 수정하지 않아 distorted curved meshes에서 알려진 locking 위험이 남는다. | Known limitation을 유지하고 MITC4+ 성능을 주장하지 않는다. Expanded curved/distorted portfolio는 optional이다. |
| `volumetric_locking` | 승인된 homogeneous plane-stress shell에는 `N/A`다. | `C5`를 3D nearly-incompressible law로 확장하지 않는다. |
| `distortion` | 양의 `J`를 유지하는 심한 distortion/warpage는 정확도와 rank/conditioning을 악화할 수 있다. | 모든 required location의 exact predicates와 rank/finite-result checks를 시행한다. 승인되지 않은 quality cutoff를 추가하지 않는다. |
| `singular_jacobian` | Nonfinite/nonpositive `J`, zero surface measure, invalid reciprocal basis는 mapping을 무효화한다. | Center, stiffness, tying 및 recovery inventory 전체를 omission/clamp 없이 fail closed한다. |
| `conditioning` | Thin shells, near-degenerate positive-J geometry 및 작은 fixed drill scale에서 `Kff` conditioning이 나빠질 수 있다. | Spectrum/condition evidence는 오직 length-scaled matrix를 사용한다. Threshold calibration은 gate가 아니지만 factorization failure는 결정적으로 진단한다. |
| `convergence` | Current solve는 direct linear solve라 Newton convergence는 `N/A`; spatial convergence와 locking trend는 모델 의존이다. | Free residual/global equilibrium `<=1e-10`과 declared reference cases를 확인한다. Broader mesh sequences는 optional이다. |
| `convergence` | Current solve는 direct linear solve라 Newton convergence는 `N/A`; spatial convergence와 locking trend는 모델 의존이다. | Free residual/global equilibrium `<=1e-10`과 declared S4 reference case를 확인한다. Broader mesh sequences는 optional이다. |
| `drilling_contamination` | Numerical drill이 physical strain/recovery에 들어가면 비물리 결과가 생긴다. | `T_p`/`T_d`를 분리하고 pure drill에서 physical strain/resultant/stress/energy가 zero임을 시험한다. Full residual은 의도대로 stabilized system 전체를 포함한다. |
| `future_nonlinear_misuse` | Section 15만으로 global nonlinear element를 만들면 nonobjective drill 또는 inconsistent tangent가 된다. | Current plan에서 완전히 제외하고 별도 승인 전 실행하지 않는다. |
@@ -276,12 +276,14 @@ Implementation Planning shall convert the following to `RED -> GREEN -> VERIFY`:
### 6.3 Reference and physics handoff readiness
The declared read-only pairs are:
The sole declared read-only acceptance pair is:
- `reference/shell/shell.inp` with
`reference/shell/shell displacements.csv` for S4;
- `reference/shellR/shellR.inp` with
`reference/shellR/shellR displacements.csv` for S4R.
`reference/shell/shell displacements.csv` for full-integration S4.
S4R remains required input coverage through source mapping, common-kernel,
deterministic-assembly and HDF5 metadata tests, but no S4R Abaqus artifact is
consumed by reference acceptance.
The Reference Model and I/O documents define deterministic HDF5-to-CSV identity,
precheck and tolerance sufficiently for later comparison. This review did not assert
@@ -321,8 +323,9 @@ symmetry, result signs, recovered-resultant consistency and physical plausibilit
### Reference Model Agent
- None for the current numerical verdict. Preserve the four declared files read-only
and do not add administrative or portfolio gates.
- None for the current numerical verdict. Preserve the two declared S4 files and every
optional existing reference artifact read-only, exclude S4R artifacts from acceptance
comparison, and do not add administrative or portfolio gates.
## 8. Downstream Handoff
@@ -7,14 +7,14 @@
- source_io_definition: `docs/io-definitions/linear-static-mitc4-shell-io.md`
- status: `approved-for-implementation-planning`
- owner_agent: `reference-model-agent`
- date: `2026-08-12`
- date: `2026-08-13`
- artifact_policy: `read-only-existing-files`
- authoritative_fesa_output: `results.h5`
## 1. Purpose and boundary
This document is the lightweight inventory and comparison contract for the two
approved MITC4 reference cases. Abaqus supplies an external displacement reference;
This document is the lightweight inventory and comparison contract for the sole
approved full-integration S4 reference case. Abaqus supplies an external displacement reference;
it does not define FESA element equations, integration, stabilization, recovery, or
implementation structure. FESA and Abaqus are not required to operate identically.
@@ -37,13 +37,12 @@ input, CSV, row mapping, or tolerance.
| --- | --- | --- | --- | --- | --- |
| `shell-s4` | `S4` | input | `reference/shell/shell.inp` | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | `TYPE=S4`; one linear-static case |
| `shell-s4` | `S4` | required reference | `reference/shell/shell displacements.csv` | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | 49 data rows; U and UR components |
| `shell-s4r` | `S4R` | input | `reference/shellR/shellR.inp` | `1325940FB42B78961CF25E84379BF2693846FAD22473E7688AC5456B37B18CB4` | `TYPE=S4R`; one linear-static case |
| `shell-s4r` | `S4R` | required reference | `reference/shellR/shellR displacements.csv` | `8887ACC5ED007CB97583A9FDC1150B48B9297E269A5BA8EBA6C1A5F6306E98CB` | 49 data rows; U and UR components |
The existing reaction and stress CSVs in both directories are optional inspection
evidence only. They are not pass/fail inputs. No agent may rename, rewrite, normalize,
repair, regenerate, or restore any reference artifact unless a later phase explicitly
authorizes that operation.
The existing reaction and stress CSVs in `reference/shell/` are optional inspection
evidence only. Existing files under `reference/shellR/` are also optional inspection
evidence and are not consumed by acceptance comparison. They are not pass/fail inputs.
No agent may rename, rewrite, normalize, repair, regenerate, or restore any reference
artifact unless a later phase explicitly authorizes that operation.
## 3. Required CSV mapping
@@ -62,8 +61,8 @@ Trim surrounding whitespace from header names, then apply this exact projection:
The normalized row key is
`(case_id,instance_name,source_node_label,component)`. Stable comparison order is
case order `shell-s4`, `shell-s4r`; then FESA instance declaration order; stable
source-node order; and component order `[U1,U2,U3,UR1,UR2,UR3]`.
case `shell-s4`; then FESA instance declaration order; stable source-node order; and
component order `[U1,U2,U3,UR1,UR2,UR3]`.
## 4. Precheck
@@ -105,10 +104,12 @@ row/component, and every UR warning.
## 6. Coverage and handoff
The two cases are the complete required reference inventory for this feature:
The S4 case is the complete required reference inventory for this feature:
- `shell-s4` proves the approved `S4 -> FESA-MITC4` input path against Abaqus U;
- `shell-s4r` proves the approved `S4R -> FESA-MITC4` input path against Abaqus U.
- `shell-s4` checks the approved full-integration `S4 -> FESA-MITC4` input path against Abaqus U.
- `S4R -> FESA-MITC4` support is verified by parser, common-kernel,
deterministic-assembly and HDF5 source-metadata tests without consuming an Abaqus
S4R reference artifact.
They do not prove Abaqus formulation equivalence or general MITC4 accuracy outside
the modeled cases. Additional flat/thin/thick/distorted/curved models, mesh studies,
+15 -13
View File
@@ -6,11 +6,11 @@
- title: `Linear Static MITC4 Shell`
- status: `approved`
- owner_agent: `requirement-agent`
- date: `2026-08-12`
- date: `2026-08-13`
- approval_basis: 사용자와 확정한 선형 정적 범위, `S4`/`S4R` 매핑, 6자유도 외부 계약, drilling 안정화, 자동 director 생성, 결과 및 검증 계약
- current_product_state: `requirements-approved-not-implemented`
- formulation_alignment: `docs/formulations/mitc4-shell-formulation.md`는 이 baseline의 6자유도 및 고정 drilling 안정화 계약과 정렬함
- reference_inventory_state: `reference/shell/`의 S4와 `reference/shellR/`의 S4R input/displacement CSV 기존 경로와 이름 그대로 사용함
- reference_inventory_state: full-integration FESA-MITC4의 Abaqus acceptance comparison은 `reference/shell/`의 S4 input/displacement CSV 기존 경로와 이름 그대로 사용함; S4R source support는 reference artifact 없이 mapping/kernel/HDF5 tests로 검증함
## Purpose
@@ -59,7 +59,7 @@ Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및
- DOF 1~6의 nodal `*BOUNDARY`와 nodal `*CLOAD`
- deterministic assembly와 기존 linear-static partition/factorization/substitution lifecycle
- HDF5 nodal displacement/reaction, shell generalized strain/resultant, in-plane stress, residual 및 energy output
- element invariant, patch, 현재 S4/S4R displacement reference 및 physics verification
- element invariant, patch, 현재 S4 displacement reference 및 physics verification
## Out Of Scope
@@ -165,7 +165,7 @@ Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및
- **FESA-REQ-LSMITC4-050** — Element invariant tests shall cover frame orthonormality/handedness, Jacobian sign, stiffness symmetry, coordinate-transformation energy invariance, six physical rigid modes, deformation-mode positivity and deterministic repeatability.
- **FESA-REQ-LSMITC4-051** — Normalized algebraic acceptance shall use `1e-12` for symmetry, frame orthonormality and transformation-energy invariance and `1e-10` for rigid-mode action, linear-system residual and global equilibrium unless Numerical Review approves and documents an evidence-backed scale-aware replacement before Implementation Planning.
- **FESA-REQ-LSMITC4-052** — Patch verification shall independently cover constant membrane strain/stress, pure bending, transverse shear and twist, including sign and component-order checks for generalized strain, resultant and recovered in-plane stress.
- **FESA-REQ-LSMITC4-053** — The implementation shall pass the formulation-defined element invariants and patch/manufactured tests plus the two declared S4/S4R displacement reference cases; an expanded locking, distortion or curved-shell benchmark portfolio is not an implementation-completion gate for this feature.
- **FESA-REQ-LSMITC4-053** — The implementation shall pass the formulation-defined element invariants and patch/manufactured tests plus the declared S4 displacement reference case; an expanded locking, distortion or curved-shell benchmark portfolio is not an implementation-completion gate for this feature.
- **FESA-REQ-LSMITC4-054** — Geometry validation tests shall cover the exact accepted/rejected conditions defined by the formulation and I/O contract; `NR-O03` smooth-director calibration and `NR-O04` distortion/warp threshold sweeps are not required tests.
- **FESA-REQ-LSMITC4-055** — Additional pinched-cylinder, hemispherical-shell, Scordelis-Lo or mesh-convergence studies may be added later as nonblocking research or release evidence, but are not required for Implementation Planning or feature completion.
- **FESA-REQ-LSMITC4-056** — Drilling verification shall check the fixed formula in Requirement 034, symmetry, positivity, deterministic assembly, removal of the four nonphysical local drilling null modes, and exclusion from physical recovery; coefficient sweeps and drilling-energy checks are not required.
@@ -194,14 +194,15 @@ Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및
## Reference Artifact Requirements
The approved lightweight inventory uses the existing S4 and S4R paths below. These files
remain read-only; their names are identities, not canonical/legacy-policy decisions.
The approved lightweight acceptance inventory uses only the existing S4 paths below.
Every file under `reference/` remains read-only; its name is an identity, not a
canonical/legacy-policy decision.
- **FESA-REQ-LSMITC4-065** — The S4 case shall use `reference/shell/shell.inp` and `reference/shell/shell displacements.csv` without creating, renaming, rewriting or repairing either file.
- **FESA-REQ-LSMITC4-066**The S4R case shall use `reference/shellR/shellR.inp` and `reference/shellR/shellR displacements.csv` without creating, renaming, rewriting or repairing either file.
- **FESA-REQ-LSMITC4-066**No S4R Abaqus artifact shall be required or consumed by this feature's reference acceptance comparison. S4R source support shall instead be verified by parser, common-kernel, deterministic assembly and HDF5 source-metadata tests; any existing `reference/shellR/` files remain untouched optional evidence.
- **FESA-REQ-LSMITC4-067** — Reference readiness requires only the declared input and required displacement CSV, FESA `results.h5`, deterministic source-node/component mapping, and Requirements 058-063 tolerance/precheck rules. README, `metadata.json`, canonical naming, provenance, Abaqus version, duplicated model semantics, and a schema version are not required gates; a present `metadata.json` is optional read-only context.
- **FESA-REQ-LSMITC4-068** — Artifact validation shall require unique finite displacement rows and deterministic source-node/component identity before comparison; it shall not attempt to establish Abaqus internal formulation equivalence.
- **FESA-REQ-LSMITC4-069** — The two declared cases satisfy the required source-label coverage: `reference/shell/` covers S4 and `reference/shellR/` covers S4R. No expanded reference portfolio is required for this feature.
- **FESA-REQ-LSMITC4-069** — The sole declared Abaqus comparison case is `reference/shell/` S4 because FESA-MITC4 uses full `2 x 2 x 2` integration. S4R source-label coverage is satisfied by the non-reference tests in Requirement 066; no expanded reference portfolio is required for this feature.
- **FESA-REQ-LSMITC4-070** — Reference verification shall compare FESA HDF5 global nodal displacement rows directly against Abaqus displacement CSV rows by model, step/frame, source node and component identity; a FESA-generated CSV view shall not become the authoritative comparison source.
- **FESA-REQ-LSMITC4-071** — Abaqus reaction, stress, strain and shell force/moment output may be retained as review evidence if present but shall not change the approved `U1/U2/U3` pass/fail boundary or become an undeclared equality gate.
- **FESA-REQ-LSMITC4-072** — FESA agents shall not execute Abaqus or another reference solver and shall not generate, modify, restore or normalize reference artifacts during requirements, research, formulation, implementation or verification unless a later phase explicitly authorizes that operation.
@@ -224,12 +225,12 @@ without gaps or overlap.
| `024-030` | Ownership, deterministic assembly and linear-static execution | architecture/execution | PRD; ADR-004/007/008/009/016/017 | must | Unit, orchestration and repeated-thread-count tests | Ownership boundaries, event order, residual reaction and deterministic bytes/rows match | `1e-12` deterministic numeric target where applicable | Numerical Review; Implementation Planning | approved |
| `031-038` | 5-DOF physics embedded in 6-DOF with fixed drilling stabilization | numerical boundary | User approval; MITC literature and thesis 6-DOF discussion | must | Formulation review, invariant and rank tests | Exact `10^-3` positive rotational-diagonal rule; physical outputs exclude drilling | Fixed by Requirements 033-036 | Formulation; Numerical Review; Implementation Planning | approved |
| `039-048` | Mandatory HDF5 output and failure atomicity | output | User approval; ADR-005/016/018 | must | Recovery, schema, identity, nonfinite and atomicity tests | Every quantity/location/unit/identity exists; failure commits no partial success | Exact component/location inventory; I/O Definition owns schema | Formulation; I/O Definition; Implementation Planning | approved |
| `049-057` | TDD, invariants, patch, declared references and physics | verification | User approval; shell formulation evidence; project process | must | CTest evidence, analytical/patch tests, two reference cases and physics review | Required tests pass; removed calibration/portfolio checks are not reintroduced | `1e-12` symmetry/frame; `1e-10` rigid/residual | Numerical Review; Implementation Planning | approved |
| `049-057` | TDD, invariants, patch, declared reference and physics | verification | User approval; shell formulation evidence; project process | must | CTest evidence, analytical/patch tests, the S4 reference case and physics review | Required tests pass; removed calibration/portfolio checks are not reintroduced | `1e-12` symmetry/frame; `1e-10` rigid/residual | Numerical Review; Implementation Planning | approved |
| `058-060` | Translational displacement pass/fail tolerance | tolerance | User approval; B33 baseline | must | Comparator unit/integration tests and report review | Every matched U row uses `1e-9 + 1e-6*reference_scale_c` without clamp/omission | Fixed by Requirements 058-060 | Reference Verification | approved |
| `061-062` | Rotational warning-only comparison | tolerance/warning | User approval; B33 baseline | must | Comparator/diagnostic tests and report review | UR never changes pass/fail; same mixed-tolerance exceedance emits a deterministic warning | Fixed by Requirements 061-062 | Reference Verification | approved |
| `063-064` | Row/schema failure and report completeness | reference verification | User approval; ADR-005/014/018 | must | Negative comparator and report-schema tests | Invalid inventory fails before numeric comparison; all U/UR metrics remain visible | No ignored invalid rows | I/O Definition; Reference Verification | approved |
| `065-068` | Exact S4/S4R reference-case inventory and row validity | reference | User declaration; ADR-019 | must | Read-only inventory and source-row/component precheck | Four declared paths exist; required rows are unique, finite and deterministically mapped | Requirements `058-063` | Reference Model; Reference Verification | approved |
| `069-071` | S4/S4R coverage and displacement-only comparison | reference | User approval | must | HDF5-to-CSV comparison | Declared S4/S4R cases; only U blocks and UR only warns | Requirements `058-064` | Reference Verification; Physics Evaluation | approved |
| `065-068` | Exact S4 reference-case inventory, S4R exclusion and row validity | reference | User declaration; ADR-019 | must | Read-only S4 inventory, source-row/component precheck and S4R non-consumption test | Two declared S4 paths exist; required rows are unique, finite and deterministically mapped; S4R artifacts are not required or consumed | Requirements `058-063` | Reference Model; Reference Verification | approved |
| `069-071` | S4 reference coverage and displacement-only comparison | reference | User approval | must | HDF5-to-CSV comparison | Declared S4 case only; U blocks and UR only warns; S4R mapping remains independently tested | Requirements `058-064` | Reference Verification; Physics Evaluation | approved |
| `072` | Reference solver/artifact immutability | governance | User/project policy; ADR-010 | must | Process audit and Git diff | No unapproved execution or artifact mutation | Exact zero mutations | All downstream agents | approved |
## Open Questions and Required Downstream Decisions
@@ -267,7 +268,8 @@ and tangent derivation may remain in the formulation document.
### Reference Model Agent
- Record the exact existing S4 and S4R input/displacement CSV paths from Requirements 065-066 and keep them read-only.
- Record only the exact existing S4 input/displacement CSV paths from Requirement 065 as acceptance artifacts and keep every existing reference artifact read-only.
- Do not consume the S4R bundle in reference verification; route S4R source support to parser/common-kernel/HDF5 tests from Requirement 066.
- Define only the HDF5-to-CSV source-node/component projection and the already approved B33 mixed tolerance; do not add bundle administration or portfolio gates.
### Implementation Planning Agent
@@ -275,4 +277,4 @@ and tangent derivation may remain in the formulation document.
- Do not start until Research, revised Formulation, Numerical Review, I/O and lightweight Reference Model inventory are mutually consistent.
- Trace every `must` requirement to RED/GREEN/VERIFY tests and preserve current solver ownership, deterministic assembly and failure-atomic HDF5 boundaries.
- Use the project Harness skill to propose self-contained implementation Steps for user approval, then write only the approved phase-planning files; do not execute Harness without a separate explicit request.
- Include tests for source-type mapping, auto directors, fixed drilling rank/separation, required recovery quantities, row failures and U-versus-UR comparison behavior; exclude coefficient sweeps, drilling energy and `NR-O03`/`NR-O04`.
- Include tests for source-type mapping, auto directors, fixed drilling rank/separation, required recovery quantities, row failures and S4-only U-versus-UR comparison behavior; retain non-reference S4R source mapping coverage and exclude coefficient sweeps, drilling energy and `NR-O03`/`NR-O04`.
@@ -6,10 +6,10 @@
- source_requirement: `docs/requirements/linear-static-mitc4-shell.md`
- status: `approved`
- owner_agent: `research-agent`
- date: `2026-08-12`
- date: `2026-08-13`
- product_scope: small-displacement, small-rotation, single-step linear static analysis
- evidence_route: local papers in `docs/reference-papers/MITC4/`, the configured FEM wiki, original peer-reviewed papers, and official Abaqus documentation
- reference_inventory_state: existing read-only S4 case at `reference/shell/` and S4R case at `reference/shellR/`; exact comparison paths are fixed by the approved requirements
- reference_inventory_state: the sole acceptance comparison is the existing read-only full-integration S4 case at `reference/shell/`; S4R source support is verified without consuming an Abaqus reference artifact
- source_policy: each external claim below is assigned a reliability tier; FESA decisions are labeled `Project contract`, and derived recommendations are labeled `Inference` or `Research recommendation`
This brief supplies evidence to the Formulation, Numerical Review, I/O Definition, and
@@ -25,7 +25,7 @@ formulation-equivalent to Abaqus S4 or S4R.
4. What evidence and dimensional restriction support the approved fixed drilling stabilization without turning it into a physical strain or load channel?
5. What evidence supports connectivity-derived thickness directions, nodal-normal smoothing, local tangent frames, and geometry rejection?
6. What may and may not be inferred when Abaqus S4 and S4R input types are both mapped to one FESA MITC4 formulation?
7. Which element-level checks and the declared S4/S4R source-solver cases fit the approved implementation scope?
7. Which element-level checks and the declared full-integration S4 source-solver case fit the approved implementation scope while retaining non-reference S4R mapping coverage?
## Source Reliability Tiers
@@ -146,7 +146,7 @@ problems must not be mixed.
- **Locking and convergence:** thin/thick cantilevers, pinched cylinder, LE3, and ScordelisLo remain useful future studies. They are not additional completion gates for the approved two-case implementation scope.
- **Geometry verification:** tests must evaluate every formulation-required Gauss and tying location, not only the element center. Director smoothing and Jacobian quality are separate checks; a smooth director cannot rescue a self-intersecting or inverted mapping.
- **Drilling verification:** verify the fixed formula, dimensional family, symmetry, positivity, four-mode regularization, and absence from physical `E/N/M/Q/stress` recovery. Sensitivity and artificial-energy evidence are excluded.
- **Reference comparison:** the declared S4 and S4R cases test source mapping and global displacement. They cannot prove formulation identity. Missing, extra, duplicate, nonfinite, or source-node/component-mismatched required rows fail before P1's mixed displacement tolerance is evaluated.
- **Reference comparison:** the declared S4 case tests full-integration source mapping and global displacement. It cannot prove formulation identity. Missing, extra, duplicate, nonfinite, or source-node/component-mismatched required rows fail before P1's mixed displacement tolerance is evaluated. S4R source support is established separately by FESA mapping/kernel/metadata tests.
- **Physics sanity:** force and global moment balance, symmetry, displacement direction, reaction sign, positive physical energy, free residual, and consistency of recovered resultants remain mandatory even when all reference displacement rows pass.
- **Validation boundary:** the identified sources provide analytical, benchmark, and source-solver verification. No experimental dataset was established for the approved homogeneous linear-static feature; physical validation remains N/A unless separately added.
@@ -181,7 +181,7 @@ problems must not be mixed.
1. **Drilling:** P1 fixes the positive physical-rotational-diagonal scale and `10^-3` factor. Alternative-family comparison, coefficient sweep, conditioning plateau and artificial-energy threshold are not required.
2. **Director/geometry:** `NR-O03` and `NR-O04` are removed. The absence of a calibrated smooth angle or distortion/warp cutoff is not missing evidence.
3. **Reference tolerance:** P1 reuses the B33 formula `1e-9 + 1e-6*reference_scale_c`; U exceedance fails and UR exceedance only warns.
4. **Reference cases:** the existing `reference/shell/` S4 and `reference/shellR/` S4R input/displacement pairs are the complete required inventory. Administrative bundle metadata and an expanded portfolio are not gates.
4. **Reference case:** the existing `reference/shell/` S4 input/displacement pair is the complete required acceptance inventory because FESA-MITC4 uses full integration. `reference/shellR/` is not consumed by acceptance comparison. Administrative bundle metadata and an expanded portfolio are not gates.
No research-owned numerical decision remains blocking for Implementation Planning.
@@ -196,7 +196,7 @@ No research-owned numerical decision remains blocking for Implementation Plannin
| `039-048` shell outputs | F-09F-11/F-18 | physical shell output and bottom/mid/top stress locations; no drilling-specific dataset |
| `049-057` element verification | F-28/F-29 and Candidate Benchmarks | required invariant/patch/fixed-drill checks; broader portfolio remains optional |
| `058-064` U/UR tolerance | F-25F-27 plus P1 | exact B33 mixed tolerance; U blocking and UR warning-only |
| `065-072` reference artifacts | S11/S12 and current inventory state | exact existing S4/S4R paths, source-row/component mapping, and immutability |
| `065-072` reference artifacts | S11/S12 and current inventory state | exact existing S4 paths, source-row/component mapping, S4R non-consumption, and immutability |
## Downstream Handoff
@@ -87,12 +87,12 @@
**Interfaces:**
- Consumes: Task 3 requirements/formulation
- Produces: exact lightweight S4/S4R input-to-displacement-CSV pairing and HDF5 comparison mapping
- Produces: exact lightweight full-integration S4 input-to-displacement-CSV pairing and HDF5 comparison mapping; S4R non-reference coverage
- [ ] Remove canonical/legacy/metadata/provenance/schema-version readiness requirements.
- [ ] Remove mandatory drilling stiffness, ratio, and energy output evidence.
- [ ] Keep minimal source-node plus U/UR component matching and finite/unique-row checks.
- [ ] Inventory the exact existing `reference/shell` and `reference/shellR` paths read-only.
- [ ] Inventory only the exact existing `reference/shell` S4 paths as acceptance inputs; keep `reference/shellR` optional and read-only without consuming it.
- [ ] Verify no file under `reference/` changed.
- [ ] Commit with `docs: define lightweight MITC4 reference cases`.
@@ -71,12 +71,14 @@ duplicated descriptive fields.
## MITC4 Reference Acceptance
Both source element types map to the same internal `FESA-MITC4` formulation:
Both source element types map to the same internal `FESA-MITC4` formulation, but the
2026-08-13 feature-scope amendment uses only the full-integration S4 case for Abaqus
acceptance comparison:
- `reference/shell/shell.inp` and `reference/shell/shell displacements.csv` cover
source `S4`;
- `reference/shellR/shellR.inp` and
`reference/shellR/shellR displacements.csv` cover source `S4R`.
- source `S4R` is covered by parser/common-kernel/deterministic-assembly/HDF5 metadata
tests without consuming an Abaqus S4R artifact.
Only matched global `U1/U2/U3` rows are blocking. `UR1/UR2/UR3` rows are compared and
reported as warning-only evidence. Reactions and stresses may be inspected but are not