modify tolerance policy

This commit is contained in:
KOKO\Mimi
2026-08-18 02:29:26 +09:00
parent 123a1b6ccc
commit 624ea4872c
36 changed files with 1909 additions and 672 deletions
@@ -1540,11 +1540,11 @@ or drilling-energy warning is part of this check.
### 17.5 Reference-comparison boundary
Abaqus comparison uses only the declared full-integration S4 case and blocks only
on matched global `U1/U2/U3` rows under the fixed absolute criterion
`abs(fesa-reference) <= 1.0e-5`. `UR1/UR2/UR3` uses the same fixed absolute value but
an exceedance emits only a deterministic nonblocking warning. A reported reference
scale is diagnostic only and does not enter the MITC4 decision or normalization.
Abaqus comparison uses only the declared full-integration S4 case. Matched global
`U1/U2/U3` families are blocking and `UR1/UR2/UR3` families are warning-only. Both use
the common family-scale row rule (`S=max(abs(reference))`, near-zero ratio `0.01`, relative
tolerance `0.05`) and scale-relative RMS tolerance `0.01`. `S=0` requires exact-zero FESA
values and there is no independent absolute-error gate.
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
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 |
| `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 |
| `058-064` | fixed absolute `1.0e-5`; U blocking and UR warning-only | reference verification |
| `058-064` | common family-scale row/RMS policy; 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 |
### 20.1 Numerical Review revision traceability
@@ -1685,7 +1685,8 @@ items or an expanded reference portfolio as missing 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 fixed absolute MITC4 tolerance `1.0e-5`; do not alter the separate B33 tolerance or add administrative metadata or portfolio gates.
- Use the project-wide common family-scale row/RMS tolerance; do not add an independent
absolute-error gate, administrative metadata or portfolio gates.
- Do not create, repair, rename, or run reference artifacts during this formulation
gate.
+26 -17
View File
@@ -36,8 +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
failure-atomicity conventions.
The approved requirements fix the drilling rule and the MITC4 fixed absolute
displacement tolerance `1.0e-5`.
The approved requirements fix the drilling rule and the project-wide common
family-scale reference tolerance.
Drilling calibration/output, `NR-O03`, `NR-O04`, bundle-administration metadata, and
an expanded reference portfolio are outside this contract.
@@ -515,22 +515,31 @@ Before tolerance evaluation:
Only `U1/U2/U3` affect pass/fail. `UR1/UR2/UR3` are always compared and reported but
can emit only an approved deterministic nonblocking warning.
For every matched displacement row:
Matched U rows form one blocking translation family and matched UR rows form one warning-only
rotation family. For each family:
```text
row_tolerance = 1.0e-5
row_pass = abs(fesa_value-reference_value) <= row_tolerance
S = max(abs(reference_value_i))
error_i = abs(fesa_value_i-reference_value_i)
near_zero_band = 0.01*S
if abs(reference_value_i) <= near_zero_band:
row_pass = error_i <= near_zero_band
else:
row_pass = error_i/abs(reference_value_i) <= 0.05
relative_rms = sqrt(mean(error_i^2))/S
family_pass = all(row_pass) and relative_rms <= 0.01
```
The `1.0e-5` value is in the user-consistent length unit for U and dimensionless for
UR. No reference or result value is zero-clamped and neither component scale nor a
row-specific denominator changes the fixed value. A reference scale may remain in the
report as diagnostic information only. U exceedance fails; UR exceedance emits a
deterministic warning only. The separate B33 mixed tolerance is unchanged.
Reference values alone define `S`; values are not zero-clamped or omitted and there is no
independent absolute-error gate. A zero-scale family passes only if every FESA value is exactly
zero, otherwise it fails without emitting NaN/Inf. U row or RMS exceedance fails; the same UR
exceedance emits a deterministic warning only.
The report records every U/UR row, blocking/nonblocking decision, absolute error,
fixed-tolerance-normalized error, RMS error, displacement/rotation vector-norm
error, worst source row/component, and every UR warning.
The report records every U/UR row, blocking/nonblocking decision, family scale,
near-zero branch, absolute and applicable row-relative error, scale-relative RMS,
worst source row/component, and every UR warning.
## 8. CLI and Diagnostics Contract
@@ -615,7 +624,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 |
| `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, fixed absolute `1.0e-5`, blocking/warning behavior, report inventory | Reference Verification |
| `058-064` | common-policy U/UR families, blocking/warning behavior, report inventory | Reference Verification |
| `065-072` | exact current S4 paths, S4R reference non-consumption, immutability and displacement-only gate | Reference Model |
## 11. Open Issues and Downstream Handoff
@@ -623,8 +632,8 @@ physics review, or release status follows from approval of this document alone.
### 11.1 Numerical Review boundary
No I/O-owned calibration value remains open. Numerical Review shall verify the exact
fixed drilling rule, basic geometry predicates, required HDF5 inventory, and fixed
absolute MITC4 tolerance mapping. Drilling calibration/energy output, `NR-O03`, `NR-O04`, bundle
fixed drilling rule, basic geometry predicates, required HDF5 inventory, and common
family-scale row/RMS tolerance mapping. Drilling calibration/energy output, `NR-O03`, `NR-O04`, bundle
administration and reference-portfolio expansion are removed scope.
### 11.2 Reference Model Agent
@@ -632,7 +641,7 @@ administration and reference-portfolio expansion are removed scope.
- Write `docs/linear-static-mitc4-shell/reference-model.md` using
this exact keyword/HDF5/reference-row contract.
- Record only the two exact existing input/displacement pairs, comparison components,
HDF5 projection, source-row identity, fixed absolute MITC4 tolerance and immutability rule.
HDF5 projection, source-row identity, common family-scale tolerance and immutability rule.
- Treat reaction/stress artifacts as nonblocking review evidence and do not create
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-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` | 모든 관련 문서가 sole S4 reference에 고정 절대오차 `1.0e-5`, U blocking, UR warning-only를 동일하게 정의한다. Reference scale은 판정에 사용하지 않으며 S4R은 reference gate가 아닌 common-path evidence다. |
| `NR-O05` U/UR tolerance | `resolved` | 모든 관련 문서가 sole S4 reference에 공통 family-scale row/RMS 규칙, U blocking, UR warning-only를 동일하게 정의한다. S4R은 reference gate가 아닌 common-path evidence다. |
이전의 `needs-reference-model` 판정에 포함됐던 canonical naming, README,
`metadata.json`, provenance, expanded portfolio 및 아직 없는 comparison result는 현재
@@ -223,9 +223,10 @@ confirmed mathematical defect는 없다.
not emitted, and `S13/S23` point stress is not synthesized. Different natural or
section locations are never averaged.
- Reference comparison first rejects missing, extra, duplicate, nonfinite or
identity-mismatched rows. Every U/UR row then uses fixed absolute tolerance
`1.0e-5`; no reference-scale decision term, zero clamp or row denominator is
introduced. U1/U2/U3 is blocking and UR1/UR2/UR3 is warning-only.
identity-mismatched rows. Every U/UR family then uses the common reference-only scale,
near-zero ratio `0.01`, row relative tolerance `0.05` and scale-relative RMS tolerance
`0.01`. `S=0` requires exact-zero FESA values; there is no zero clamp or independent
absolute-error gate. 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
preserving source type. This is an input mapping, not an Abaqus formulation,
integration, stabilization or recovery equivalence claim.
@@ -11,10 +11,39 @@
`docs/linear-static-mitc4-shell/reference-model.md`
- source_io_definition: `docs/linear-static-mitc4-shell/io.md`
- source_requirements: `docs/linear-static-mitc4-shell/requirements.md`
- status: `pass-for-physics-evaluation`
- historical_status: `pass-for-physics-evaluation`
- current_status: `pass-for-physics-evaluation`
- superseded_on: `2026-08-18`
- revalidated_on: `2026-08-18`
- owner_agent: `reference-verification-agent`
- date: `2026-08-13`
The fixed-absolute-tolerance evidence below is preserved as a historical record. ADR-022
supersedes that decision with the common family-scale row/RMS policy. The following revalidation
is the current reference-gate evidence.
## 2026-08-18 Common-policy Revalidation
`cmake --build .harness/build --config Debug` passed, followed by
`ctest --test-dir .harness/build -C Debug --output-on-failure`: 214/214 tests passed.
The S4 reference test generated
`.harness/build/reference/mitc4-shell-s4-comparison/comparison.json` from the declared
read-only input/CSV pair.
- exact canonical rows: 294
- blocking translation family: 147 rows, all row/RMS gates passed
- warning-only rotation family: 147 rows, all row/RMS gates passed; warnings 0
- identity/schema/nonfinite failures: 0
- overall verdict: `passed=true`
| family | rows | scale | near-zero rows | max absolute error | scale-relative RMS |
| --- | ---: | ---: | ---: | ---: | ---: |
| translation `U1/U2/U3` | 147 | `2.37408203e-5` | 122 | `1.903785349151439e-7` | `1.0332756650397166e-3` |
| rotation `UR1/UR2/UR3` | 147 | `7.60725743e-6` | 107 | `6.882854962740428e-8` | `2.9771372973060382e-3` |
All values above come from the generated JSON ledger. The historical report body starts below
and must not be read as the current identity/tolerance evidence.
The prerequisite build/test report has status `pass-for-reference-verification`.
This report verifies only the approved full-integration S4 displacement case. It
does not compare S4R artifacts, claim Abaqus formulation equivalence, approve
@@ -8,6 +8,7 @@
- status: `approved-for-implementation-planning`
- owner_agent: `reference-model-agent`
- date: `2026-08-13`
- comparison_revalidated_on: `2026-08-18`
- artifact_policy: `read-only-existing-files`
- authoritative_fesa_output: `results.h5`
@@ -80,26 +81,31 @@ zero-clamped and mismatched rows are not omitted, averaged, or synthesized.
## 5. Tolerance and decision rule
For every matched row:
Matched `U1/U2/U3` rows form one blocking translation family and matched
`UR1/UR2/UR3` rows form one warning-only rotation family. For each family:
```text
tolerance = 1.0e-5
absolute_error_i = abs(fesa_value_i - abaqus_value_i)
S = max(abs(abaqus_value_i))
absolute_error_i = abs(fesa_value_i-abaqus_value_i)
near_zero_band = 0.01*S
near-zero row: absolute_error_i <= near_zero_band
other row: absolute_error_i/abs(abaqus_value_i) <= 0.05
relative_rms = sqrt(mean(absolute_error_i^2))/S <= 0.01
```
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`. Neither a component reference scale
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.
The scale uses read-only Abaqus values only. No independent absolute-error gate, zero clamp or
row omission is permitted. A zero-scale family passes only when all FESA values are exactly zero;
otherwise it reports `zero-reference-scale-nonzero-error` without NaN/Inf. The U family controls
the verdict and the UR family uses the same numeric rule for deterministic warning-only evidence.
- Every matched `U1/U2/U3` row must satisfy `absolute_error_i <= tolerance`.
Any U exceedance fails that case and the feature reference comparison.
- `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
not change pass/fail.
- Every matched `U1/U2/U3` row and the translation family RMS must satisfy the common
row/RMS rule. Any U row or family-RMS exceedance fails the feature reference comparison.
- `UR1/UR2/UR3` uses the same family-scale row/RMS rule. Every row or family-RMS
exceedance produces deterministic warning evidence but does not change pass/fail.
The comparison report records every U/UR row decision, maximum absolute error,
fixed-tolerance-normalized error, RMS error, vector-norm error, worst source
The comparison report records every U/UR row decision, family scale, near-zero branch,
maximum absolute error, row relative error, scale-relative RMS, worst source
row/component, and every UR warning.
## 6. Coverage and handoff
+7 -1
View File
@@ -18,11 +18,17 @@
- source_physics_evaluation_report: `docs/linear-static-mitc4-shell/physics-evaluation.md`
- audited_source_head: `820ba30c717b3d0e113775608e20dfd5fbc05d53`
- audited_branch: `feat-linear-static-mitc4-shell`
- status: `ready-for-release`
- historical_status: `ready-for-release`
- current_status: `superseded-pending-revalidation`
- superseded_on: `2026-08-18`
- owner_agent: `release-agent`
- date: `2026-08-13`
- release_boundary: internal FESA feature release readiness only; no publish, deploy, package, tag, commit, or external release was performed
The readiness evidence below is historical. The 2026-08-18 common-policy reference revalidation
passed, but fresh physics and release audits are still required before a current
`ready-for-release` verdict may be issued.
## Release Scope
| item | included | excluded | notes |
@@ -184,13 +184,13 @@ Formulation, Numerical Review, I/O, Reference Model, Implementation Planning 및
## Tolerance Policy
- **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**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 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 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 fixed `1.0e-5` UR tolerance is dimensionless. No separate UR large-error or drilling-energy threshold is required.
- **FESA-REQ-LSMITC4-058** — Abaqus reference pass/fail shall apply only to matched global `U1/U2/U3` rows grouped as one blocking translation family with Abaqus-only scale `S=max(abs(reference))`.
- **FESA-REQ-LSMITC4-059**A U row with `abs(reference)<=0.01*S` shall pass when `abs(fesa-reference)<=0.01*S`; every other U row shall pass when its relative error is at most `0.05`; the U family shall also satisfy `RMS(error)/S<=0.01`.
- **FESA-REQ-LSMITC4-060**MITC4 shall use the project-wide family-scale policy without an independent absolute-error gate, zero clamp or row omission; a zero-scale family passes only when every FESA value is exactly zero.
- **FESA-REQ-LSMITC4-061** — Global `UR1/UR2/UR3` rows shall form one warning-only rotation family using the same near-zero, relative-row and scale-relative RMS constants; an exceedance emits a deterministic nonblocking warning and never changes pass/fail.
- **FESA-REQ-LSMITC4-062** — No separate UR large-error, fixed absolute or drilling-energy threshold is required; every row decision and family metric shall remain finite and auditable.
- **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, 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.
- **FESA-REQ-LSMITC4-064** — The comparison report shall record each U/UR row branch/decision, family identity/components, scale, near-zero band/count, maximum absolute error, scale-relative RMS, vector-norm diagnostic, worst source row/component and zero-scale diagnostic; nonblocking UR warnings shall not be omitted from an otherwise passing report.
## 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 |
| `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 |
| `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; 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 |
| `058-060` | Translational displacement pass/fail tolerance | tolerance | User approval; ADR-022 | must | Comparator unit/integration tests and report review | Every matched U row and U-family RMS use the common family-scale policy without clamp or omission | `0.01`, `0.05`, `0.01` | Reference Verification | approved |
| `061-062` | Rotational warning-only comparison | tolerance/warning | User approval; ADR-022 | must | Comparator/diagnostic tests and report review | UR never changes pass/fail; common-policy exceedance emits a deterministic warning | `0.01`, `0.05`, `0.01` | 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 |
| `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.
- 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 approved fixed absolute MITC4 tolerance `1.0e-5`; do not add bundle administration or portfolio gates.
- Define only the HDF5-to-CSV source-node/component projection and the approved common family-scale tolerance; do not add bundle administration or portfolio gates.
### Implementation Planning Agent