docs: use S4-only MITC4 reference gate
This commit is contained in:
@@ -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에 포함하지 않는다.
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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 Scordelis–Lo 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-09–F-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-25–F-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
|
||||
|
||||
Reference in New Issue
Block a user