docs: use fixed MITC4 reference tolerance

This commit is contained in:
KOKO\Mimi
2026-08-13 10:06:45 +09:00
parent 8994ce93f8
commit f1be807e40
14 changed files with 110 additions and 80 deletions
+4 -3
View File
@@ -96,9 +96,10 @@
`reference/shell/`의 S4 input/displacement CSV만 현재 이름 그대로 사용한다. `reference/shell/`의 S4 input/displacement CSV만 현재 이름 그대로 사용한다.
S4R source 지원은 parser/common-kernel/deterministic assembly/HDF5 metadata test로 S4R source 지원은 parser/common-kernel/deterministic assembly/HDF5 metadata test로
검증하며 `reference/shellR/` artifact를 acceptance comparison에 사용하지 않는다. 검증하며 `reference/shellR/` artifact를 acceptance comparison에 사용하지 않는다.
- Global `U1/U2/U3`만 blocking reference quantity다. 각 case/component에 B33과 같은 - Global `U1/U2/U3`만 blocking reference quantity다. 모든 matched U row에는 고정
`1e-9 + 1e-6 * reference_scale` 적용한다. `UR1/UR2/UR3`은 같은 기준을 초과하면 절대오차 `1.0e-5` 적용한다. `UR1/UR2/UR3`도 고정 절대오차 `1.0e-5`로 비교하되
warning만 남긴다. 초과 시 warning만 남긴다. MITC4 tolerance 판정에는 `reference_scale`을 사용하지 않으며
B33의 component-scale 혼합 tolerance는 변경하지 않는다.
- MITC4 drilling calibration, coefficient sweep, energy-ratio threshold와 별도 geometry/director - MITC4 drilling calibration, coefficient sweep, energy-ratio threshold와 별도 geometry/director
calibration(`NR-O01`~`NR-O04`)은 구현 범위가 아니다. 6-DOF 선형계에는 물리 회전 calibration(`NR-O01`~`NR-O04`)은 구현 범위가 아니다. 6-DOF 선형계에는 물리 회전
stiffness block의 양의 최소 대각항에 `1e-3`을 곱한 고정 numerical drilling stiffness block의 양의 최소 대각항에 `1e-3`을 곱한 고정 numerical drilling
+19
View File
@@ -211,3 +211,22 @@ nonfinite required row는 tolerance 전에 실패한다.
대신 비교 대상과 source-row/component mapping, tolerance, artifact immutability는 유지해 대신 비교 대상과 source-row/component mapping, tolerance, artifact immutability는 유지해
false match와 결과 보정을 방지한다. 더 강한 provenance가 필요한 기능은 해당 요구조건이 false match와 결과 보정을 방지한다. 더 강한 provenance가 필요한 기능은 해당 요구조건이
명시적으로 추가할 수 있으나 프로젝트 기본 gate로 자동 승격하지 않는다. 명시적으로 추가할 수 있으나 프로젝트 기본 gate로 자동 승격하지 않는다.
### ADR-020: MITC4 displacement reference는 고정 절대오차로 판정한다
**결정**: Full-integration FESA-MITC4의 sole S4 reference comparison은 matched global
`U1/U2/U3` row에 고정 절대오차 `1.0e-5`를 적용해 pass/fail을 판정한다.
`UR1/UR2/UR3`도 고정 절대오차 `1.0e-5`로 비교하지만 초과는 deterministic warning만
생성한다. Reference scale은 보고용 통계로 남을 수 있으나 MITC4 row tolerance 또는
normalized error의 분모를 결정하지 않는다. ADR-014의 B33 component-scale 혼합
tolerance는 변경하지 않는다.
**이유**: Abaqus S4는 FESA-MITC4와 동일한 요소 정식화가 아니므로 B33에서 승인한 매우
엄격한 component-scale tolerance를 그대로 재사용하는 것은 독립 솔버의 observable
displacement 검증 목적에 맞지 않는다. 고정 절대오차는 현재 사용자 단위계에서 승인된
차이를 명시적으로 제한하면서 zero clamp나 row omission 없이 모든 displacement row를
동일하게 판정한다.
**트레이드오프**: Model scale이 크게 달라지면 고정 절대오차의 상대적 엄격도가 달라질 수
있다. 따라서 이 값은 현재 승인된 MITC4 S4 case의 기능 완료 기준이며 개발 완료 후
별도 reference-verification evidence와 함께 재점검한다.
+4 -2
View File
@@ -375,7 +375,9 @@ stabilization만 둔다. Drilling calibration, artificial-energy policy와 별
dataset은 이 기능 범위가 아니다. dataset은 이 기능 범위가 아니다.
Full-integration FESA-MITC4의 reference comparison은 `reference/shell/` S4의 기존 input 및 Full-integration FESA-MITC4의 reference comparison은 `reference/shell/` S4의 기존 input 및
displacement CSV만 사용한다. Global `U1/U2/U3`만 blocking이고 B33과 같은 component-scale displacement CSV만 사용한다. Global `U1/U2/U3`만 blocking이고 모든 matched row에 고정
mixed tolerance를 적용한다. `UR1/UR2/UR3`은 같은 기준의 warning-only evidence다. S4R은 절대오차 `1.0e-5`를 적용한다. `UR1/UR2/UR3`도 고정 절대오차 `1.0e-5`로 비교하되
warning-only evidence다. MITC4 판정에는 component scale을 사용하지 않으며 B33의 기존
혼합 tolerance는 변경하지 않는다. S4R은
같은 kernel을 선택하는 source mapping과 metadata를 unit/integration tests로 검증하며 같은 kernel을 선택하는 source mapping과 metadata를 unit/integration tests로 검증하며
`reference/shellR/` artifact는 acceptance comparison에 포함하지 않는다. `reference/shellR/` artifact는 acceptance comparison에 포함하지 않는다.
+3 -2
View File
@@ -124,8 +124,9 @@ Parser keyword, element kernel, solver backend 또는 output dataset 중 하나
- B33 reference tolerance는 model, step/frame, quantity, component별 Abaqus scale만 사용한다. - B33 reference tolerance는 model, step/frame, quantity, component별 Abaqus scale만 사용한다.
- 승인된 SI B33 bundle의 absolute floor는 displacement/rotation `1e-9`, force/moment - 승인된 SI B33 bundle의 absolute floor는 displacement/rotation `1e-9`, force/moment
`1e-3`이며 relative coefficient는 `1e-6`이다. `1e-3`이며 relative coefficient는 `1e-6`이다.
- MITC4 U/UR comparison은 같은 component-scale 형식을 사용한다. `U1/U2/U3` - MITC4 U/UR comparison은 고정 절대오차 `1.0e-5` 사용한다. `U1/U2/U3`
blocking이고 `UR1/UR2/UR3` 초과는 warning-only다. blocking이고 `UR1/UR2/UR3` 초과는 warning-only다. B33의 component-scale 혼합
tolerance는 별도 기존 계약으로 유지한다.
- parser, solver, HDF5 writer는 실패 원인을 구조화된 diagnostic으로 보고한다. - parser, solver, HDF5 writer는 실패 원인을 구조화된 diagnostic으로 보고한다.
- oneMKL, oneTBB, HDF5는 CMake에서 명시 탐지하고 실패 원인을 분류한다. - oneMKL, oneTBB, HDF5는 CMake에서 명시 탐지하고 실패 원인을 분류한다.
- 대규모 모델 성능 최적화보다 V0의 명확성, 테스트 가능성, 검증 traceability를 우선한다. - 대규모 모델 성능 최적화보다 V0의 명확성, 테스트 가능성, 검증 traceability를 우선한다.
+6 -6
View File
@@ -1541,10 +1541,10 @@ or drilling-energy warning is part of this check.
### 17.5 Reference-comparison boundary ### 17.5 Reference-comparison boundary
Abaqus comparison uses only the declared full-integration S4 case and blocks only Abaqus comparison uses only the declared full-integration S4 case and blocks only
on matched global `U1/U2/U3` rows under on matched global `U1/U2/U3` rows under the fixed absolute criterion
`tolerance_c=1e-9+1e-6*reference_scale_c`, where `reference_scale_c` is the maximum `abs(fesa-reference) <= 1.0e-5`. `UR1/UR2/UR3` uses the same fixed absolute value but
absolute finite Abaqus value for the same component. `UR1/UR2/UR3` uses the same an exceedance emits only a deterministic nonblocking warning. A reported reference
formula but an exceedance emits only a deterministic nonblocking warning. scale is diagnostic only and does not enter the MITC4 decision or normalization.
FESA `S4` and `S4R` inputs must produce the same internal numerical rows for identical FESA `S4` and `S4R` inputs must produce the same internal numerical rows for identical
supported models while preserving distinct source metadata. This common-path property 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 is verified without consuming an S4R Abaqus artifact; Abaqus S4R is not an acceptance
@@ -1631,7 +1631,7 @@ research brief remain the project source of truth.
| `024-029` | deterministic element buffers, partitioned linear lifecycle, full-residual reaction | planning | | `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 | | `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 S4 reference 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 | | `058-064` | fixed absolute `1.0e-5`; U blocking and UR warning-only | reference verification |
| `065-072` | exact existing S4 paths, S4R reference non-consumption, 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 ### 20.1 Numerical Review revision traceability
@@ -1685,7 +1685,7 @@ items or an expanded reference portfolio as missing evidence.
without claiming element equivalence. without claiming element equivalence.
- Do not consume `reference/shellR/` in acceptance comparison; preserve S4R support - Do not consume `reference/shellR/` in acceptance comparison; preserve S4R support
through source-mapping/common-kernel/metadata tests. through source-mapping/common-kernel/metadata tests.
- Use the exact B33 mixed tolerance; do not add administrative metadata or portfolio gates. - Use the fixed absolute MITC4 tolerance `1.0e-5`; do not alter the separate B33 tolerance or add administrative metadata or portfolio gates.
- Do not create, repair, rename, or run reference artifacts during this formulation - Do not create, repair, rename, or run reference artifacts during this formulation
gate. gate.
@@ -277,8 +277,9 @@ order even when the minimal dependency set below is smaller.
- Consume exactly one declared input and displacement CSV per case; map instance, - Consume exactly one declared input and displacement CSV per case; map instance,
source node and six displacement components directly to HDF5. source node and six displacement components directly to HDF5.
- Precheck header/row set/duplicates/nonfinite/schema/identity before numeric work. - Precheck header/row set/duplicates/nonfinite/schema/identity before numeric work.
- Apply `1e-9+1e-6*reference_scale_c`; U blocks, UR only emits deterministic warning; - Apply fixed absolute `1.0e-5` to every U/UR row without a scale-dependent decision
record all required metrics and worst row. term; U blocks, UR only emits deterministic warning; record all required metrics
and worst row.
- Tests: `MITC4-REF-001` through `MITC4-REF-006`. - Tests: `MITC4-REF-001` through `MITC4-REF-006`.
### TASK-14: `shell-s4-end-to-end` ### TASK-14: `shell-s4-end-to-end`
@@ -364,7 +365,7 @@ order even when the minimal dependency set below is smaller.
| MITC4-FLOW-004 | failed output may commit state | candidate state/output commits only after validation | `LinearStaticCli.*` | | MITC4-FLOW-004 | failed output may commit state | candidate state/output commits only after validation | `LinearStaticCli.*` |
| MITC4-REF-001 | six-column CSV header unsupported | exact MITC4 header maps instance/node/U/UR | `Mitc4ReferenceComparison.*` | | MITC4-REF-001 | six-column CSV header unsupported | exact MITC4 header maps instance/node/U/UR | `Mitc4ReferenceComparison.*` |
| MITC4-REF-002 | invalid row inventory may be ignored | missing/extra/duplicate/nonfinite/schema mismatch fails first | `Mitc4ReferenceComparison.*` | | MITC4-REF-002 | invalid row inventory may be ignored | missing/extra/duplicate/nonfinite/schema mismatch fails first | `Mitc4ReferenceComparison.*` |
| MITC4-REF-003 | tolerance could clamp/row-normalize | exact component group scale and mixed tolerance | `Mitc4ReferenceComparison.*` | | MITC4-REF-003 | tolerance could remain scale-dependent or clamp/row-normalize | exact fixed absolute `1.0e-5` for every U/UR row | `Mitc4ReferenceComparison.*` |
| MITC4-REF-004 | UR may block verdict | U blocks; UR only warns | `Mitc4ReferenceComparison.*` | | MITC4-REF-004 | UR may block verdict | U blocks; UR only warns | `Mitc4ReferenceComparison.*` |
| MITC4-REF-005 | report metrics/order incomplete | row decisions, max, normalized, RMS, vector, worst row deterministic | `Mitc4ReferenceComparison.*` | | MITC4-REF-005 | report metrics/order incomplete | row decisions, max, normalized, RMS, vector, worst row deterministic | `Mitc4ReferenceComparison.*` |
| MITC4-REF-006 | comparator may require administrative files | only declared input/CSV/HDF5 required | `Mitc4ReferenceComparison.*` | | MITC4-REF-006 | comparator may require administrative files | only declared input/CSV/HDF5 required | `Mitc4ReferenceComparison.*` |
@@ -521,8 +522,8 @@ once without gap or overlapping requirement range.
| 055 | TASK-16 | VERIFY scope audit | N/A | extra benchmark portfolio is explicitly nonblocking and absent from completion gate | | 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 | | 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` | implementation exposes equilibrium/sign/energy evidence; physical plausibility verdict is downstream | | 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 | | 058-060 | TASK-13, TASK-14 | REF-003 and S4 E2E comparison | `shell-s4` | exact fixed absolute U tolerance `1.0e-5` without scale/clamp |
| 061-062 | TASK-13, TASK-14 | REF-004/005 and S4 E2E test | `shell-s4` | UR same tolerance, deterministic warning only | | 061-062 | TASK-13, TASK-14 | REF-004/005 and S4 E2E test | `shell-s4` | UR fixed absolute `1.0e-5`, deterministic warning only |
| 063-064 | TASK-13 | REF-001/002/005 | `shell-s4` | schema/row failure before numeric comparison; full metrics | | 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 | | 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 | | 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 |
@@ -882,16 +883,18 @@ ctest --test-dir .harness/build -C Debug --output-on-failure
- Scope ownership: this one test-only reference module owns TASK-13 comparator behavior - Scope ownership: this one test-only reference module owns TASK-13 comparator behavior
plus TASK-14 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. - Prerequisite: Step 12 `completed` and valid MITC4 HDF5 fixture.
- RED: add REF-001..006 plus E2E-S4-001/002 before the comparator - RED: update REF-003 first so the existing scale-dependent comparator fails against
implementation; build the reference target and run literal fixed-boundary cases around `1.0e-5`; build the reference target and run
`ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure`. `ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure`.
Record the missing comparator/declared-case failure. Record the expected old-tolerance assertion failure.
- GREEN: minimally add test-only comparator for exact shell CSV/HDF5 contract. - GREEN: minimally replace only the MITC4 comparator decision value with fixed absolute
`1.0e-5`; keep reference scale as diagnostic report data only.
- If a declared case exposes a production defect outside this reference-test module, - 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 stop the Step and route a focused correction to the owning prior module; do not patch
unrelated production layers inside this Step. unrelated production layers inside this Step.
- VERIFY: focused comparator and the declared S4 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. - Prohibitions: no reference artifact writes/Abaqus run, no metadata/README gate, no UR
blocking, no B33 comparator change, and no scale/clamp substitution for fixed `1.0e-5`.
After explicit approval, planning may create only: After explicit approval, planning may create only:
@@ -36,7 +36,8 @@ The user approved the following I/O-specific decisions on `2026-08-12`:
retaining the existing common metadata, nodal-result, diagnostic, CLI, and retaining the existing common metadata, nodal-result, diagnostic, CLI, and
failure-atomicity conventions. failure-atomicity conventions.
The approved requirements fix the drilling rule and B33 mixed displacement tolerance. The approved requirements fix the drilling rule and the MITC4 fixed absolute
displacement tolerance `1.0e-5`.
Drilling calibration/output, `NR-O03`, `NR-O04`, bundle-administration metadata, and Drilling calibration/output, `NR-O03`, `NR-O04`, bundle-administration metadata, and
an expanded reference portfolio are outside this contract. an expanded reference portfolio are outside this contract.
@@ -514,22 +515,21 @@ Before tolerance evaluation:
Only `U1/U2/U3` affect pass/fail. `UR1/UR2/UR3` are always compared and reported but Only `U1/U2/U3` affect pass/fail. `UR1/UR2/UR3` are always compared and reported but
can emit only an approved deterministic nonblocking warning. can emit only an approved deterministic nonblocking warning.
For each model, step/frame, quantity, and component group: For every matched displacement row:
```text ```text
reference_scale_c = max(abs(reference_value_i)) row_tolerance = 1.0e-5
row_tolerance_c = 1e-9 + 1e-6 * reference_scale_c row_pass = abs(fesa_value-reference_value) <= row_tolerance
row_pass = abs(fesa_value-reference_value) <= row_tolerance_c
``` ```
Reference scale uses finite Abaqus values only. A zero scale makes the relative term The `1.0e-5` value is in the user-consistent length unit for U and dimensionless for
zero. No reference or result value is zero-clamped and no row-specific relative UR. No reference or result value is zero-clamped and neither component scale nor a
denominator replaces the component scale. The formula is the approved B33 rule: row-specific denominator changes the fixed value. A reference scale may remain in the
the `1e-9` floor is in the user-consistent length unit for U and dimensionless for UR. report as diagnostic information only. U exceedance fails; UR exceedance emits a
U exceedance fails; UR exceedance emits a deterministic warning only. deterministic warning only. The separate B33 mixed tolerance is unchanged.
The report records every U/UR row, blocking/nonblocking decision, absolute error, The report records every U/UR row, blocking/nonblocking decision, absolute error,
component-scale normalized error, RMS error, displacement/rotation vector-norm fixed-tolerance-normalized error, RMS error, displacement/rotation vector-norm
error, worst source row/component, and every UR warning. error, worst source row/component, and every UR warning.
## 8. CLI and Diagnostics Contract ## 8. CLI and Diagnostics Contract
@@ -615,7 +615,7 @@ physics review, or release status follows from approval of this document alone.
| `031-038` | source-independent MITC4 identity, fixed drilling stabilization and full-integration policy; no drilling output | Implementation Planning tests | | `031-038` | source-independent MITC4 identity, fixed drilling stabilization and full-integration policy; no drilling output | Implementation Planning tests |
| `039-048` | additive HDF5 v0 paths, mandatory quantities, location identity, atomic output | Reference Model and Implementation Planning | | `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 | | `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 | | `058-064` | normalized U/UR rows, fixed absolute `1.0e-5`, blocking/warning behavior, report inventory | Reference Verification |
| `065-072` | exact current S4 paths, S4R reference non-consumption, 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 ## 11. Open Issues and Downstream Handoff
@@ -623,8 +623,8 @@ physics review, or release status follows from approval of this document alone.
### 11.1 Numerical Review boundary ### 11.1 Numerical Review boundary
No I/O-owned calibration value remains open. Numerical Review shall verify the exact No I/O-owned calibration value remains open. Numerical Review shall verify the exact
fixed drilling rule, basic geometry predicates, required HDF5 inventory, and B33 fixed drilling rule, basic geometry predicates, required HDF5 inventory, and fixed
tolerance mapping. Drilling calibration/energy output, `NR-O03`, `NR-O04`, bundle absolute MITC4 tolerance mapping. Drilling calibration/energy output, `NR-O03`, `NR-O04`, bundle
administration and reference-portfolio expansion are removed scope. administration and reference-portfolio expansion are removed scope.
### 11.2 Reference Model Agent ### 11.2 Reference Model Agent
@@ -632,7 +632,7 @@ administration and reference-portfolio expansion are removed scope.
- Write `docs/reference-models/linear-static-mitc4-shell-reference-models.md` using - Write `docs/reference-models/linear-static-mitc4-shell-reference-models.md` using
this exact keyword/HDF5/reference-row contract. this exact keyword/HDF5/reference-row contract.
- Record only the two exact existing input/displacement pairs, comparison components, - Record only the two exact existing input/displacement pairs, comparison components,
HDF5 projection, source-row identity, B33 tolerance and immutability rule. HDF5 projection, source-row identity, fixed absolute MITC4 tolerance and immutability rule.
- Treat reaction/stress artifacts as nonblocking review evidence and do not create - Treat reaction/stress artifacts as nonblocking review evidence and do not create
location-equivalence claims absent from this contract. location-equivalence claims absent from this contract.
@@ -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-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-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-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` | 모든 관련 문서가 sole S4 reference에 `1e-9+1e-6*reference_scale_c`, U blocking, UR warning-only를 동일하게 정의한다. S4R은 reference gate가 아닌 common-path evidence다. | | `NR-O05` U/UR tolerance | `resolved` | 모든 관련 문서가 sole S4 reference에 고정 절대오차 `1.0e-5`, U blocking, UR warning-only를 동일하게 정의한다. Reference scale은 판정에 사용하지 않으며 S4R은 reference gate가 아닌 common-path evidence다. |
이전의 `needs-reference-model` 판정에 포함됐던 canonical naming, README, 이전의 `needs-reference-model` 판정에 포함됐던 canonical naming, README,
`metadata.json`, provenance, expanded portfolio 및 아직 없는 comparison result는 현재 `metadata.json`, provenance, expanded portfolio 및 아직 없는 comparison result는 현재
@@ -223,9 +223,8 @@ confirmed mathematical defect는 없다.
not emitted, and `S13/S23` point stress is not synthesized. Different natural or not emitted, and `S13/S23` point stress is not synthesized. Different natural or
section locations are never averaged. section locations are never averaged.
- Reference comparison first rejects missing, extra, duplicate, nonfinite or - Reference comparison first rejects missing, extra, duplicate, nonfinite or
identity-mismatched rows. For each case/component, identity-mismatched rows. Every U/UR row then uses fixed absolute tolerance
`reference_scale_c=max(abs(finite Abaqus values))` and `1.0e-5`; no reference-scale decision term, zero clamp or row denominator is
`tolerance_c=1e-9+1e-6*reference_scale_c`; no zero clamp or row denominator is
introduced. U1/U2/U3 is blocking and UR1/UR2/UR3 is warning-only. introduced. U1/U2/U3 is blocking and UR1/UR2/UR3 is warning-only.
- Source S4 and S4R select the same FESA MITC4 kernel/quadrature/recovery path while - Source S4 and S4R select the same FESA MITC4 kernel/quadrature/recovery path while
preserving source type. This is an input mapping, not an Abaqus formulation, preserving source type. This is an input mapping, not an Abaqus formulation,
@@ -80,26 +80,26 @@ zero-clamped and mismatched rows are not omitted, averaged, or synthesized.
## 5. Tolerance and decision rule ## 5. Tolerance and decision rule
For each case and component `c` independently, using only finite Abaqus rows: For every matched row:
```text ```text
reference_scale_c = max(abs(abaqus_value_i)) tolerance = 1.0e-5
tolerance_c = 1e-9 + 1e-6 * reference_scale_c
absolute_error_i = abs(fesa_value_i - abaqus_value_i) absolute_error_i = abs(fesa_value_i - abaqus_value_i)
``` ```
The `1e-9` floor is expressed in the model's user-consistent length unit for The fixed `1.0e-5` value is expressed in the model's user-consistent length unit for
`U1/U2/U3` and is dimensionless for `UR1/UR2/UR3`. A zero reference scale leaves only `U1/U2/U3` and is dimensionless for `UR1/UR2/UR3`. Neither a component reference scale
the absolute floor; no alternate denominator is introduced. nor a row-specific denominator changes the value. Reference scale may be reported as
non-decision diagnostic information. The separate B33 mixed tolerance is unchanged.
- Every matched `U1/U2/U3` row must satisfy `absolute_error_i <= tolerance_c`. - Every matched `U1/U2/U3` row must satisfy `absolute_error_i <= tolerance`.
Any U exceedance fails that case and the feature reference comparison. Any U exceedance fails that case and the feature reference comparison.
- `UR1/UR2/UR3` uses the same formula. Every exceedance produces a deterministic - `UR1/UR2/UR3` uses the same fixed value. Every exceedance produces a deterministic
warning containing the case, source row, component, error, and tolerance, but does warning containing the case, source row, component, error, and tolerance, but does
not change pass/fail. not change pass/fail.
The comparison report records every U/UR row decision, maximum absolute error, The comparison report records every U/UR row decision, maximum absolute error,
component-scale normalized error, RMS error, vector-norm error, worst source fixed-tolerance-normalized error, RMS error, vector-norm error, worst source
row/component, and every UR warning. row/component, and every UR warning.
## 6. Coverage and handoff ## 6. Coverage and handoff
@@ -184,13 +184,13 @@ Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및
## Tolerance Policy ## Tolerance Policy
- **FESA-REQ-LSMITC4-058** — Abaqus reference pass/fail shall apply only to matched global `U1/U2/U3` rows using `tolerance_c = 1e-9 + 1e-6 * reference_scale_c`, exactly reusing the approved B33 displacement rule. - **FESA-REQ-LSMITC4-058** — Abaqus reference pass/fail shall apply only to matched global `U1/U2/U3` rows using the fixed absolute tolerance `abs(fesa-reference) <= 1.0e-5` for every row.
- **FESA-REQ-LSMITC4-059**`reference_scale_c` shall be computed only from finite Abaqus values in the same model, step/frame, quantity and component group; reference values shall not be zero-clamped and row-specific relative denominators shall not replace the group scale. - **FESA-REQ-LSMITC4-059**MITC4 row tolerance and tolerance-normalized error shall not depend on `reference_scale`, a row-specific denominator, zero clamp or component magnitude; a reference scale may be reported only as non-decision diagnostic information.
- **FESA-REQ-LSMITC4-060** — The `1e-9` absolute floor is expressed in the model's user-consistent length unit for U; no additional MITC4 tolerance calibration is required. - **FESA-REQ-LSMITC4-060** — The fixed `1.0e-5` U tolerance is expressed in the model's user-consistent length unit and is independent of the approved B33 component-scale mixed tolerance.
- **FESA-REQ-LSMITC4-061** — Global `UR1/UR2/UR3` rows shall use the same component-scale formula as Requirement 058 and shall be fully reported; an exceedance emits a deterministic nonblocking warning and never changes pass/fail. - **FESA-REQ-LSMITC4-061** — Global `UR1/UR2/UR3` rows shall use the same fixed absolute value `1.0e-5` and shall be fully reported; an exceedance emits a deterministic nonblocking warning and never changes pass/fail.
- **FESA-REQ-LSMITC4-062** — The `1e-9` UR floor is dimensionless. No separate UR large-error or drilling-energy threshold is required. - **FESA-REQ-LSMITC4-062** — The fixed `1.0e-5` UR tolerance is dimensionless. No separate UR large-error or drilling-energy threshold is required.
- **FESA-REQ-LSMITC4-063** — Missing, extra, duplicate, nonfinite, schema-mismatched or source-identity-mismatched rows shall fail artifact/schema validation before numeric tolerance evaluation for both U and UR inventories. - **FESA-REQ-LSMITC4-063** — Missing, extra, duplicate, nonfinite, schema-mismatched or source-identity-mismatched rows shall fail artifact/schema validation before numeric tolerance evaluation for both U and UR inventories.
- **FESA-REQ-LSMITC4-064** — The comparison report shall record each U/UR row decision, maximum absolute error, component-scale normalized error, RMS error, vector-norm error and worst source row/component; nonblocking UR warnings shall not be omitted from an otherwise passing report. - **FESA-REQ-LSMITC4-064** — The comparison report shall record each U/UR row decision, maximum absolute error, fixed-tolerance-normalized error, RMS error, vector-norm error and worst source row/component; nonblocking UR warnings shall not be omitted from an otherwise passing report.
## Reference Artifact Requirements ## Reference Artifact Requirements
@@ -226,8 +226,8 @@ without gaps or overlap.
| `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 | | `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 | | `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 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 | | `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 | | `058-060` | Translational displacement pass/fail tolerance | tolerance | User approval; ADR-020 | must | Comparator unit/integration tests and report review | Every matched U row uses fixed absolute `1.0e-5` without scale, clamp or 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 | | `061-062` | Rotational warning-only comparison | tolerance/warning | User approval; ADR-020 | must | Comparator/diagnostic tests and report review | UR never changes pass/fail; fixed absolute `1.0e-5` 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 | | `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 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 | | `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 | | `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 |
@@ -270,7 +270,7 @@ and tangent derivation may remain in the formulation document.
- Record only the exact existing S4 input/displacement CSV paths from Requirement 065 as acceptance artifacts and keep every existing reference artifact 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. - 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. - Define only the HDF5-to-CSV source-node/component projection and the approved fixed absolute MITC4 tolerance `1.0e-5`; do not add bundle administration or portfolio gates.
### Implementation Planning Agent ### Implementation Planning Agent
@@ -180,7 +180,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. 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. 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. 3. **Reference tolerance:** The approved downstream contract uses fixed absolute `1.0e-5` for every U/UR row without a reference-scale decision term; U exceedance fails and UR exceedance only warns. The B33 mixed tolerance remains unchanged and separate.
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. 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. No research-owned numerical decision remains blocking for Implementation Planning.
@@ -195,7 +195,7 @@ No research-owned numerical decision remains blocking for Implementation Plannin
| `037` S4/S4R common path | F-25F-27, `MITC4-S4-S4R-SAME-PATH` | source mapping supported only as a FESA product decision, never an Abaqus formulation claim | | `037` S4/S4R common path | F-25F-27, `MITC4-S4-S4R-SAME-PATH` | source mapping supported only as a FESA product decision, never an Abaqus formulation claim |
| `039-048` shell outputs | F-09F-11/F-18 | physical shell output and bottom/mid/top stress locations; no drilling-specific dataset | | `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 | | `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 | | `058-064` U/UR tolerance | F-25F-27 plus approved user decision | fixed absolute `1.0e-5`; U blocking and UR warning-only |
| `065-072` reference artifacts | S11/S12 and current inventory state | exact existing S4 paths, source-row/component mapping, S4R non-consumption, 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 ## Downstream Handoff
@@ -223,7 +223,7 @@ No research-owned numerical decision remains blocking for Implementation Plannin
### Reference Model Agent ### Reference Model Agent
- Record the exact existing S4 and S4R input/displacement paths without creating, renaming, repairing, or normalizing artifacts. - Record the exact existing S4 and S4R input/displacement paths without creating, renaming, repairing, or normalizing artifacts.
- Define deterministic HDF5-to-CSV source-node/component mapping and the fixed B33 tolerance; do not require provenance, naming policy, README/metadata, duplicated model descriptions, or an expanded portfolio. - Define deterministic HDF5-to-CSV source-node/component mapping and the fixed absolute MITC4 tolerance `1.0e-5`; do not require provenance, naming policy, README/metadata, duplicated model descriptions, or an expanded portfolio.
### Implementation Planning Agent ### Implementation Planning Agent
@@ -14,7 +14,8 @@
- Do not run Abaqus or another reference solver. - Do not run Abaqus or another reference solver.
- Do not modify C++ source, tests, or CMake. - Do not modify C++ source, tests, or CMake.
- Preserve HDF5 as authoritative FESA output. - Preserve HDF5 as authoritative FESA output.
- Use the B33 mixed tolerance exactly for MITC4 U; U blocks and UR warns only. - Use fixed absolute `1.0e-5` for MITC4 U/UR; U blocks and UR warns only. Keep the
separate B33 mixed tolerance unchanged.
- Retain fixed numerical drilling stabilization but exclude calibration and drilling evidence outputs. - Retain fixed numerical drilling stabilization but exclude calibration and drilling evidence outputs.
- Remove `NR-O03` and `NR-O04` from MITC4 implementation readiness. - Remove `NR-O03` and `NR-O04` from MITC4 implementation readiness.
- Implementation Planning may create Harness phase files only after user approval of the Step draft. - Implementation Planning may create Harness phase files only after user approval of the Step draft.
@@ -38,7 +39,7 @@
- [ ] Replace canonical/legacy/provenance bundle governance with the minimal reference-case contract. - [ ] Replace canonical/legacy/provenance bundle governance with the minimal reference-case contract.
- [ ] Separate Abaqus input syntax and external comparison from FESA formulation behavior. - [ ] Separate Abaqus input syntax and external comparison from FESA formulation behavior.
- [ ] Record the new decision as a superseding ADR while preserving historical decisions. - [ ] Record the new decision as a superseding ADR while preserving historical decisions.
- [ ] State the MITC4 B33 tolerance reuse and fixed drilling scope without claiming implementation exists. - [ ] State the MITC4 fixed absolute tolerance and fixed drilling scope without claiming implementation exists.
- [ ] Verify changed policy terms with targeted `rg` checks and `git diff --check`. - [ ] Verify changed policy terms with targeted `rg` checks and `git diff --check`.
- [ ] Commit with `docs: simplify FESA reference validation policy`. - [ ] Commit with `docs: simplify FESA reference validation policy`.
@@ -71,7 +72,7 @@
- Consumes: Tasks 1-2 policy and approved fixed drilling rule - Consumes: Tasks 1-2 policy and approved fixed drilling rule
- Produces: implementation-ready feature scope without removed calibration gates - Produces: implementation-ready feature scope without removed calibration gates
- [ ] Correct the observed S4/S4R reference inventory and adopt the B33 U/UR mixed tolerance. - [ ] Correct the observed S4/S4R reference inventory and adopt fixed absolute `1.0e-5` for MITC4 U/UR.
- [ ] Replace drilling candidate/sweep language with the fixed positive rotational-diagonal rule. - [ ] Replace drilling candidate/sweep language with the fixed positive rotational-diagonal rule.
- [ ] Remove drilling calibration, drilling-energy warning, `NR-O03`, `NR-O04`, and expanded portfolio requirements. - [ ] Remove drilling calibration, drilling-energy warning, `NR-O03`, `NR-O04`, and expanded portfolio requirements.
- [ ] Preserve the future nonlinear derivation as documentation-only. - [ ] Preserve the future nonlinear derivation as documentation-only.
@@ -84,18 +84,19 @@ Only matched global `U1/U2/U3` rows are blocking. `UR1/UR2/UR3` rows are compare
reported as warning-only evidence. Reactions and stresses may be inspected but are not reported as warning-only evidence. Reactions and stresses may be inspected but are not
reference pass/fail quantities. reference pass/fail quantities.
For each case and component `c`: For every matched U/UR row:
```text ```text
reference_scale_c = max_i(abs(abaqus_value_i,c)) tolerance = 1.0e-5
tolerance_c = 1e-9 + 1e-6 * reference_scale_c
``` ```
The `1e-9` absolute floor is expressed in the model's user-consistent length unit for The fixed value is expressed in the model's user-consistent length unit for translation
translation and as a dimensionless rotation value for warning-only UR. Values are not and as a dimensionless rotation value for warning-only UR. Reference scale may remain
zero-clamped. Missing, duplicate, unmatched, or nonfinite required rows fail before diagnostic report data but does not enter the tolerance or normalized-error denominator.
numeric tolerance evaluation. U tolerance failure fails reference verification; UR Values are not zero-clamped. Missing, duplicate, unmatched, or nonfinite required rows
tolerance exceedance emits a deterministic warning only. fail before numeric tolerance evaluation. U tolerance failure fails reference
verification; UR tolerance exceedance emits a deterministic warning only. The B33 mixed
tolerance remains unchanged.
No additional locking, convergence, distorted, curved, director-angle, or invalid No additional locking, convergence, distorted, curved, director-angle, or invalid
geometry reference portfolio is required for this MITC4 implementation acceptance. geometry reference portfolio is required for this MITC4 implementation acceptance.
@@ -146,7 +147,7 @@ For MITC4:
- fixed drilling stabilization closes `NR-O01` and removes `NR-O02` by scope; - fixed drilling stabilization closes `NR-O01` and removes `NR-O02` by scope;
- `NR-O03` and `NR-O04` are removed from the approved verification scope; - `NR-O03` and `NR-O04` are removed from the approved verification scope;
- the B33 mixed tolerance closes the blocking part of `NR-O05`; - the fixed absolute MITC4 tolerance `1.0e-5` closes the blocking part of `NR-O05`;
- missing heavyweight reference metadata is `not-required-by-policy`; - missing heavyweight reference metadata is `not-required-by-policy`;
- confirmed formulation defects remain blocking. - confirmed formulation defects remain blocking.
+8 -5
View File
@@ -31,14 +31,16 @@
## 작업 ## 작업
1. `MITC4-REF-001..006`, `MITC4-E2E-S4-001/002`를 comparator 구현 전에 작성한다. 1. 기존 `MITC4-REF-003`을 먼저 고정 절대 tolerance boundary test로 바꾸고 현재
scale-dependent comparator에서 예상대로 실패하는 RED를 확인한다. 나머지
`MITC4-REF-001..006`, `MITC4-E2E-S4-001/002` coverage는 유지한다.
2. Test-only comparator는 각 case의 exact input/displacement CSV와 FESA HDF5만 요구한다. 2. Test-only comparator는 각 case의 exact input/displacement CSV와 FESA HDF5만 요구한다.
`Part Instance Name``Node Label`을 HDF5 node identity에 match하고 CSV `Part Instance Name``Node Label`을 HDF5 node identity에 match하고 CSV
`U-U1..U-U3, UR-UR1..UR-UR3`를 displacement columns 0..5에 match한다. `U-U1..U-U3, UR-UR1..UR-UR3`를 displacement columns 0..5에 match한다.
3. Header/schema/row set/missing/extra/duplicate/nonfinite/source identity를 numeric 3. Header/schema/row set/missing/extra/duplicate/nonfinite/source identity를 numeric
comparison 전에 fail한다. comparison 전에 fail한다.
4. Component group의 finite Abaqus scale로 4. 모든 matched U/UR row에 고정 절대 tolerance `1.0e-5`를 scale/clamp/row denominator
`tol_c=1e-9+1e-6*reference_scale_c`를 clamp/row denominator 없이 적용한다. 없이 적용한다. Reference scale은 report diagnostic으로만 남길 수 있다.
U1/U2/U3만 blocking이고 UR1/UR2/UR3 exceedance는 deterministic warning-only다. U1/U2/U3만 blocking이고 UR1/UR2/UR3 exceedance는 deterministic warning-only다.
5. 모든 row decision, max absolute, normalized, RMS, vector norm, worst source row/component를 5. 모든 row decision, max absolute, normalized, RMS, vector norm, worst source row/component를
deterministic report/JSON에 남긴다. deterministic report/JSON에 남긴다.
@@ -74,7 +76,7 @@ cmake --build .harness/build --config Debug --target fesa_reference_tests
ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure
``` ```
Missing comparator/case RED를 확인하고 test-only minimal GREEN. 이후: 기존 mixed-tolerance 구현에 대한 fixed-boundary RED를 확인하고 test-only minimal GREEN. 이후:
```powershell ```powershell
cmake --build .harness/build --config Debug --target fesa_reference_tests cmake --build .harness/build --config Debug --target fesa_reference_tests
@@ -98,6 +100,7 @@ RED/comparator/E2E/full/hash evidence를 기록하고 current Step 상태 payloa
- Abaqus/reference solver를 실행하거나 reference 파일을 생성·수정·rename·repair하지 마라. - Abaqus/reference solver를 실행하거나 reference 파일을 생성·수정·rename·repair하지 마라.
- README, metadata.json, provenance, Abaqus version을 gate로 만들지 마라. - README, metadata.json, provenance, Abaqus version을 gate로 만들지 마라.
- UR warning을 blocking으로 바꾸거나 tolerance를 calibration/clamp하지 마라. - UR warning을 blocking으로 바꾸거나 고정 `1.0e-5`를 scale/calibration/clamp로 대체하지 마라.
- B33 comparator 또는 B33 tolerance를 수정하지 마라.
- Reaction/stress equality gate나 Abaqus formulation equivalence를 추가하지 마라. - Reaction/stress equality gate나 Abaqus formulation equivalence를 추가하지 마라.
- Solver production file을 수정하거나 직접 commit/hook 실행을 하지 마라. - Solver production file을 수정하거나 직접 commit/hook 실행을 하지 마라.