# Conflicts: # docs/nonlinear-static-newton-raphson/coordination.md # docs/nonlinear-static-newton-raphson/formulation.md # docs/nonlinear-static-newton-raphson/implementation-plan.md # docs/nonlinear-static-newton-raphson/io.md # docs/nonlinear-static-newton-raphson/numerical-review.md # docs/nonlinear-static-newton-raphson/reference-model.md # phases/index.json # phases/nonlinear-static-newton-raphson/index.json # phases/nonlinear-static-newton-raphson/step0.md # phases/nonlinear-static-newton-raphson/step1.md # phases/nonlinear-static-newton-raphson/step10.md # phases/nonlinear-static-newton-raphson/step11.md # phases/nonlinear-static-newton-raphson/step12.md # phases/nonlinear-static-newton-raphson/step2.md # phases/nonlinear-static-newton-raphson/step3.md # phases/nonlinear-static-newton-raphson/step4.md # phases/nonlinear-static-newton-raphson/step5.md # phases/nonlinear-static-newton-raphson/step6.md # phases/nonlinear-static-newton-raphson/step7.md # phases/nonlinear-static-newton-raphson/step8.md # phases/nonlinear-static-newton-raphson/step9.md
25 KiB
Nonlinear Static Newton-Raphson Reference Model
1. Metadata
- feature_id:
nonlinear-static-newton-raphson - source_requirements:
docs/nonlinear-static-newton-raphson/requirements.md - source_requirements_sha256:
89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E - source_research:
docs/nonlinear-static-newton-raphson/research.md - source_formulation:
docs/nonlinear-static-newton-raphson/formulation.md - source_numerical_review:
docs/nonlinear-static-newton-raphson/numerical-review.md - decision_source:
USER-DECISION-004 option 1 - balance_gate_decision: user-approved factor-one global force/moment normalized gate
<=1e-8 - status:
pass-for-io-definition - owner_agent:
numerical-review-agent - date:
2026-08-28 - post_closure_addendum_date:
2026-08-29 - post_closure_additive_case:
shellnl-meshfine-02-s4-final - artifact_policy:
read-only-existing-files - external_tolerance_policy:
docs/TOLERANCE.md
이 문서는 logical quantity, source identity, component matching, row precheck와 blocking/warning-only/review-only 분류를 정의한다. 최종 HDF5 dataset projection은 I/O Definition Agent 소유이며 이 문서에는 dataset path를 정의하지 않는다.
2. Reference Acceptance Scope
승인 closure 계약의 세 stored case를 유지하고 merge 후 별도 검증할 한 case를 추가한다.
shellnl-meshfine-s4-final: 사용자가 추가하고 검증을 요청한 729-node/676-element mesh-refined nonlinear primary case. ExternalU1/U2/U3와 factor-one internal equilibrium은 blocking이다.shellnl-s4-final: 49-node/36-element coarse nonlinear companion regression. Fine case와 별도 reference에 대해 externalU1/U2/U3와 factor-one internal equilibrium을 blocking으로 검증한다.shell-s4-linear-limit: 같은 coarse topology의NLGEOM=NOlinear-limit/source-identity regression. Nonlinear response evidence로 부르지 않는다.shellnl-meshfine-02-s4-final: 729-node/676-element post-closure nonlinear additive case. 과거 canonical Stage 6reference-comparison.md에는 포함되지 않았으며 merge된 current code로 별도 verification한다. 이 pending comparison은 기존 세 case의 승인 gate 또는 Release verdict를 소급 변경하지 않는다.
모든 selected case에서 displacement U1/U2/U3는 blocking, UR1/UR2/UR3는
warning-only다. Coarse/fine/post-closure local nodal RF1/RF2/RF3와 physical spatial RM1/RM2는
common external policy로 exact error/precheck evidence를 만들되 review-only이고 전체 blocking
verdict를 바꾸지 않는다. Local RM3와 stress는 numerical comparison에서 제외한다.
Coarse와 fine은 각자의 input/CSV에 독립적으로 비교한다. 두 mesh 사이 node interpolation,
row pairing, averaging, collapse, observed convergence order 또는 direct coarse/fine equality
gate를 만들지 않는다. Fine case 추가는 Abaqus S4와 FESA MITC4의 element formulation,
integration, stabilization 또는 internal behavior equivalence를 의미하지 않는다.
shellnl-meshfine-02-s4-final도 자기 input/CSV에만 독립적으로 비교하고 기존 fine case와
cross-case equality 또는 mesh-convergence gate를 만들지 않는다.
3. Reference Case Inventory
3.1 Exact input and CSV paths
| case id | purpose | exact path | required disposition | observed status |
|---|---|---|---|---|
shell-s4-linear-limit |
linear input | reference/shell/shell.inp |
required | readable; S4, 49 nodes, 36 elements, NLGEOM=NO |
shell-s4-linear-limit |
displacement reference | reference/shell/shell displacements.csv |
required blocking/warning | 49 unique finite rows; single final static state |
shell-s4-linear-limit |
reaction inventory | reference/shell/shell reactions.csv |
inspection-only | 49 unique finite rows |
shell-s4-linear-limit |
stress ordering inventory | reference/shell/shell stresses.csv |
optional inspection | 288 rows; element labels 1..36 in contiguous ascending blocks |
shellnl-s4-final |
coarse nonlinear input | reference/shellNL/shellNL.inp |
required | readable; S4, 49 nodes, 36 elements, NLGEOM=YES |
shellnl-s4-final |
displacement reference | reference/shellNL/shellNL displacements.csv |
required blocking/warning | 49 unique finite rows; exact factor-one Frame |
shellnl-s4-final |
local reaction reference | reference/shellNL/shellNL reactions.csv |
required review-only | 49 unique finite inventory rows; exact factor-one Frame |
shellnl-s4-final |
stress inventory | reference/shellNL/shellNL stresses.csv |
optional inspection | 288 rows; element labels 1..36 in contiguous ascending blocks |
shellnl-meshfine-s4-final |
fine nonlinear input | reference/shellNL-meshfine/shellNL-meshfine.inp |
required | readable; S4, 729 nodes, 676 elements, NLGEOM=YES |
shellnl-meshfine-s4-final |
displacement reference | reference/shellNL-meshfine/shellNL-meshfine displacements.csv |
required blocking/warning | 729 unique finite rows; exact factor-one Frame |
shellnl-meshfine-s4-final |
local reaction reference | reference/shellNL-meshfine/shellNL-meshfine reactions.csv |
required review-only | 729 unique finite inventory rows; exact factor-one Frame |
shellnl-meshfine-s4-final |
stress inventory | reference/shellNL-meshfine/shellNL-meshfine stresses.csv |
optional inspection | 5,408 rows in ascending element blocks; one malformed optional node label ss |
shellnl-meshfine-02-s4-final |
post-closure nonlinear input | reference/shellNL-meshfine_02/shellNL-meshfine_02.inp |
required for separate verification | readable; S4, 729 nodes, 676 elements, NLGEOM=YES |
shellnl-meshfine-02-s4-final |
displacement reference | reference/shellNL-meshfine_02/shellNL-meshfine_02 displacements.csv |
required blocking/warning | 729 unique finite rows; exact factor-one Frame |
shellnl-meshfine-02-s4-final |
local reaction reference | reference/shellNL-meshfine_02/shellNL-meshfine_02 reactions.csv |
required review-only | 729 unique finite inventory rows; exact factor-one Frame |
shellnl-meshfine-02-s4-final |
stress inventory | reference/shellNL-meshfine_02/shellNL-meshfine_02 stresses.csv |
optional inspection | 5,408 unique finite inventory rows; excluded from numerical comparison |
reference/shell/shell stresses.csv는 사용자 변경 후 element label 1..36 순서로 저장되어
있음을 확인했다. Row order는 matching identity가 아니며 deterministic inspection display에만
사용한다. Fine stress의 Element Label=1, SNEG, Node Label=ss 한 행은 optional excluded
artifact issue다. 이 파일을 rename, repair, normalize 또는 rewrite하지 않는다.
Coarse와 fine nonlinear input은 homogeneous isotropic material E=2.1e11, nu=0.3,
shell thickness 0.5, center node-set load DOF 3 = -100000, all-six-DOF perimeter support,
*STATIC 0.1,1.,0.001,0.1을 사용한다. Fine case는 같은 physical setup의 refined topology다.
Post-closure _02 input은 같은 fine topology, material, section, Set-2 104-node all-six-DOF
support와 *STATIC을 사용하지만 source load는 F1=+1e8, F2=+1e8, F3=-1e8이다.
따라서 기존 fine case의 F3=-1e5와 동일 case로 취급하지 않는다.
3.2 Read-only artifact hashes
| exact path | SHA-256 |
|---|---|
reference/shell/shell.inp |
4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF |
reference/shell/shell displacements.csv |
C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B |
reference/shell/shell reactions.csv |
0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41 |
reference/shell/shell stresses.csv |
2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7 |
reference/shellNL/shellNL.inp |
4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2 |
reference/shellNL/shellNL displacements.csv |
4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786 |
reference/shellNL/shellNL reactions.csv |
001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069 |
reference/shellNL/shellNL stresses.csv |
5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F |
reference/shellNL-meshfine/shellNL-meshfine.inp |
40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220 |
reference/shellNL-meshfine/shellNL-meshfine displacements.csv |
740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F |
reference/shellNL-meshfine/shellNL-meshfine reactions.csv |
AEB01C98C596792B0E5F2B86A81945CAB0BEB0C6969CFC6738C6F81DF1F94363 |
reference/shellNL-meshfine/shellNL-meshfine stresses.csv |
6D6213AB5DB9D6B1F5FBD641367D08BACC805967B6C5A95BCE0E1A5395377782 |
reference/shellNL-meshfine_02/shellNL-meshfine_02.inp |
DAEC7592489837B165D55382CAEAF53E21D84D804AA38C73CBF35E5CC0BAC3E5 |
reference/shellNL-meshfine_02/shellNL-meshfine_02 displacements.csv |
18EC051D265E0BD2C441FE73C08E097B83EE85BC2EB32FFBE3AF0DCB9CB89672 |
reference/shellNL-meshfine_02/shellNL-meshfine_02 reactions.csv |
59348996E0CE80687C9EB2747EEABF84ACED4CE97F8A56F0FFDDBDCA404A57A3 |
reference/shellNL-meshfine_02/shellNL-meshfine_02 stresses.csv |
933A72025A0E897FD65F81C913E53D1730BD551CE95CBDEA96F9F99B10BE8B18 |
Post-closure artifact byte counts는 input 56,554, displacement 110,555, reaction
109,000, stress 1,036,916이다. Hash와 byte count는 read-only audit evidence이며 artifact를
rewrite하거나 canonical Stage 6 evidence로 소급 재분류하지 않는다.
4. Source Identity and Component Contract
4.1 Case and accepted-state identity
- Instance identity는 case-insensitive semantic match다. Artifact spelling
Part-1-1과PART-1-1은 같은 instance이지만 file text를 rewrite하지 않는다. - 세 nonlinear case required rows의 exact CSV Frame은
Increment 10: Step Time = 1.000이며 accepted factor-one state에 대응한다. - Linear case에는
Framecolumn이 없고 single final static state로 해석한다. - Row order는 identity가 아니다. Stable key match 후 deterministic reporting order로만 정렬한다.
4.2 Nodal displacement and rotation
CSV U-U1/U-U2/U-U3는 logical U1/U2/U3, UR-UR1/UR-UR2/UR-UR3는
logical UR1/UR2/UR3에 대응한다. Key는
(case_id, accepted_state, canonical_instance_name, source_node_label, component)
이다. Coarse/linear은 labels 1..49, fine과 post-closure _02는 1..729를 각각 정확히 한 번 요구한다.
U는 global length/blocking, UR은 fixed-initial global rotation-vector/warning-only다.
4.3 Local reaction review contract
Reaction source rows는 input Set-2 constraint mask로 선택한다.
- coarse:
1, 3..9, 14..17, 22..33— 24 nodes, all six DOFs constrained. - fine:
1, 3..9, 34..57, 82..153— 104 nodes, all six DOFs constrained. - post-closure
_02: fine과 같은 exactSet-2inventory — 104 nodes, all six DOFs constrained.
다른 CSV node rows는 file/schema/finite inventory지만 local reaction numerical rows가 아니다. Free FESA entries는 reaction이 아니라 accepted free residual evidence다.
| CSV components | logical quantity | matching FESA meaning | disposition |
|---|---|---|---|
RF-RF1, RF-RF2 |
in-plane local reaction force | constrained translational full residual, global force | review-only |
RF-RF3 |
transverse local reaction force | constrained translational full residual, global force | review-only |
RM-RM1, RM-RM2 |
tangent-plane physical reaction moment | constrained generalized residual converted by J_l(phi)^(-T), global spatial force-length |
review-only |
RM-RM3 |
director/drilling-axis row | no approved physical external equivalence target | excluded |
Raw generalized rotational residual을 CSV RM에 직접 match하지 않는다. Review-only는 row omission을 허용한다는 뜻이 아니다. Exact row precheck와 common-policy error/RMS를 모두 보고하되 그 결과가 blocking verdict를 변경하지 않는다는 뜻이다.
4.4 Distinct factor-one equilibrium quantities
각 nonlinear case에서 같은 accepted factor-one state를 사용한다.
| logical quantity | source identity / projection | components | disposition |
|---|---|---|---|
| accepted free residual | input mask로 결정한 stable free (instance,node,global DOF component) rows; force와 moment channel 분리 |
free UX/UY/UZ; free URX/URY/URZ generalized covectors |
blocking-internal |
| constrained reaction resultant | constrained source rows만 current arm과 spatial physical moment로 합산 | force [1,2,3]; moment [1,2,3] |
review-only-summary |
| applied-plus-reaction balance error | all resolved applied sources plus constrained reactions; global origin [0,0,0]; x=X+u; physical spatial nodal moments |
force [1,2,3]; moment [1,2,3] |
blocking-internal |
Constrained reaction resultant force is sum(F_react). Its moment is
sum(x cross F_react + M_react). Balance error adds the corresponding applied force and
x cross F_appl + M_appl. Accepted free residual is neither sum. 세 quantity는 exact
source/state identity를 공유하지만 interchangeable하지 않다.
현재 stored case의 constrained prescribed u=phi=0 때문에 support current arm과 initial arm,
generalized moment와 spatial moment가 수치적으로 일치한다. 이는 supported general nonzero
prescribed translation/rotation에서 initial arm/raw rotational residual을 재사용할 근거가 아니다.
4.5 Stress inventory and exclusion
Stress inspection key는
(case_id, accepted_state, instance, element label,
element-corner node label, SPOS/SNEG section surface, component)
이다. Stored stress는 element-corner SPOS/SNEG rows이고 FESA 승인 recovery는 midsurface Gauss
locations의 direct bottom/middle/top [S11,S22,S12]다. Nodal extrapolation/averaging을 만들지
않으며 S-S11/S-S22/S-S12/S-S33 어느 것도 external family에 포함하지 않는다.
4.6 External comparison families
| family id | components / source rows | rows | units / coordinates | disposition |
|---|---|---|---|---|
linear.translation |
U1/U2/U3; nodes 1..49 |
147 | length / global | blocking |
linear.rotation |
UR1/UR2/UR3; nodes 1..49 |
147 | dimensionless / fixed-initial global | warning-only |
coarse.translation |
U1/U2/U3; nodes 1..49 |
147 | length / global | blocking |
coarse.rotation |
UR1/UR2/UR3; nodes 1..49 |
147 | dimensionless / fixed-initial global | warning-only |
coarse.local_reaction_inplane_force |
RF1/RF2; 24 constrained nodes | 48 | force / global shell plane | review-only |
coarse.local_reaction_transverse_force |
RF3; 24 constrained nodes | 24 | force / global transverse | review-only |
coarse.local_reaction_physical_moment |
RM1/RM2; 24 constrained nodes | 48 | force-length / global spatial | review-only |
fine.translation |
U1/U2/U3; nodes 1..729 |
2,187 | length / global | blocking |
fine.rotation |
UR1/UR2/UR3; nodes 1..729 |
2,187 | dimensionless / fixed-initial global | warning-only |
fine.local_reaction_inplane_force |
RF1/RF2; 104 constrained nodes | 208 | force / global shell plane | review-only |
fine.local_reaction_transverse_force |
RF3; 104 constrained nodes | 104 | force / global transverse | review-only |
fine.local_reaction_physical_moment |
RM1/RM2; 104 constrained nodes | 208 | force-length / global spatial | review-only |
meshfine02.translation |
U1/U2/U3; nodes 1..729 |
2,187 | length / global | blocking |
meshfine02.rotation |
UR1/UR2/UR3; nodes 1..729 |
2,187 | dimensionless / fixed-initial global | warning-only |
meshfine02.local_reaction_inplane_force |
RF1/RF2; 104 constrained nodes | 208 | force / global shell plane | review-only |
meshfine02.local_reaction_transverse_force |
RF3; 104 constrained nodes | 104 | force / global transverse | review-only |
meshfine02.local_reaction_physical_moment |
RM1/RM2; 104 constrained nodes | 208 | force-length / global spatial | review-only |
4.7 Internal blocking verification families
| family id | exact rows/components | gate |
|---|---|---|
coarse.accepted_free_force_residual |
75 free translation DOFs | NSNR-069 force channel, factor one |
coarse.accepted_free_moment_residual |
75 free rotation DOFs | NSNR-069 moment channel, factor one |
coarse.global_force_balance |
3 global balance-error components | normalized <=1e-8 |
coarse.global_moment_balance |
3 global balance-error components | normalized <=1e-8 |
fine.accepted_free_force_residual |
1,875 free translation DOFs | NSNR-069 force channel, factor one |
fine.accepted_free_moment_residual |
1,875 free rotation DOFs | NSNR-069 moment channel, factor one |
fine.global_force_balance |
3 global balance-error components | normalized <=1e-8 |
fine.global_moment_balance |
3 global balance-error components | normalized <=1e-8 |
meshfine02.accepted_free_force_residual |
1,875 free translation DOFs | NSNR-069 force channel, factor one |
meshfine02.accepted_free_moment_residual |
1,875 free rotation DOFs | NSNR-069 moment channel, factor one |
meshfine02.global_force_balance |
3 global balance-error components | normalized <=1e-8 |
meshfine02.global_moment_balance |
3 global balance-error components | normalized <=1e-8 |
이 internal families에는 Abaqus CSV value 또는 docs/TOLERANCE.md를 적용하지 않는다.
Approved analytical/invariant gates이며 exact definitions는 numerical-review.md §6.2다.
5. Row Prechecks
Tolerance 또는 internal metric 전에 다음을 검사한다.
- 각 case의 exact declared input과 해당 disposition에 필요한 CSV가 존재하고 readable하다.
- Header는 surrounding whitespace만 trim하고 required names/components가 모두 있어야 한다.
- Nonlinear required rows의 Frame은 exact factor-one identity여야 한다.
- Wide CSV는 Section 4 contract로 component rows에 결정적으로 expand한다.
- Wide key와 expanded key는 unique해야 한다. Duplicate는 affected family를 tolerance 전에 fail한다.
- Input node inventory와 source constraint mask로 expected key set을 만든다. CSV zero values 또는 row position에서 reaction identity를 추론하지 않는다.
- FESA와 reference projected key sets는 exact equal해야 한다. Missing과 extra rows를 모두 fail한다.
- Required FESA/CSV/internal values와 derived scales/norms는 모두 finite여야 한다.
- Internal free residual rows는 exact free mask와 force/moment partition을 보존한다. Global balance는 모든 applied source와 constrained reaction을 stable source order로 한 번씩만 사용한다.
- Local review rows는 global resultant로 collapse하거나 대체하지 않는다. Review precheck failure는 deterministic review failure로 기록하지만 blocking verdict를 변경하지 않는다.
- Warning-only precheck/tolerance failure는 deterministic warning을 만들고 blocking verdict를 변경하지 않는다. Blocking precheck failure는 전체 comparison을 fail한다.
- Row omission/synthesis, averaging, source-order matching, clamp, normalization 또는 artifact repair를 허용하지 않는다.
Observed read-only nodal CSV audit:
| CSV | wide rows | duplicate keys | nonfinite required values | status |
|---|---|---|---|---|
reference/shell/shell displacements.csv |
49 | 0 | 0 | readable |
reference/shellNL/shellNL displacements.csv |
49 | 0 | 0 | readable |
reference/shellNL/shellNL reactions.csv |
49 | 0 | 0 | readable |
reference/shellNL-meshfine/shellNL-meshfine displacements.csv |
729 | 0 | 0 | readable |
reference/shellNL-meshfine/shellNL-meshfine reactions.csv |
729 | 0 | 0 | readable |
reference/shellNL-meshfine_02/shellNL-meshfine_02 displacements.csv |
729 | 0 | 0 | readable |
reference/shellNL-meshfine_02/shellNL-meshfine_02 reactions.csv |
729 | 0 | 0 | readable |
reference/shellNL-meshfine_02/shellNL-meshfine_02 stresses.csv |
5,408 | 0 | 0 | readable; optional excluded inventory |
6. Tolerance and Blocking/Warning Policy
6.1 External families
Section 4.6의 모든 external blocking, warning-only와 review-only error report는
docs/TOLERANCE.md를 그대로 사용한다.
- Reference-only
S=max(abs(reference_i)), near-zero bandB=0.01*S. abs(reference_i)<=B이면abs(fesa-reference)<=B.- 그 외 row는 relative error
<=0.05. - 모든 row와
RMS(error)/S<=0.01이 함께 pass해야 family가 pass한다. - Independent absolute floor,
max(1,S), omission, averaging 또는 zero clamp는 없다. S=0이면 모든 FESA 값도 exact zero일 때만 pass한다.
Observed reference-only scales는 reader/family audit evidence이며 calibration 값이 아니다.
| family | rows | S |
B=0.01*S |
|---|---|---|---|
linear.translation |
147 | 2.37408203e-5 |
2.37408203e-7 |
linear.rotation |
147 | 7.60725743e-6 |
7.60725743e-8 |
coarse.translation |
147 | 2.37408203e-5 |
2.37408203e-7 |
coarse.rotation |
147 | 7.60725743e-6 |
7.60725743e-8 |
coarse.local_reaction_inplane_force |
48 | 1.91663182 |
1.91663182e-2 |
coarse.local_reaction_transverse_force |
24 | 1.17769805e4 |
1.17769805e2 |
coarse.local_reaction_physical_moment |
48 | 1.95418418e4 |
1.95418418e2 |
fine.translation |
2,187 | 2.57957054e-5 |
2.57957054e-7 |
fine.rotation |
2,187 | 6.58704994e-6 |
6.58704994e-8 |
fine.local_reaction_inplane_force |
208 | 5.38827419e-1 |
5.38827419e-3 |
fine.local_reaction_transverse_force |
104 | 2.78506128e3 |
2.78506128e1 |
fine.local_reaction_physical_moment |
208 | 4.71557520e3 |
4.71557520e1 |
meshfine02.translation |
2,187 | 0.0257712454 |
0.000257712454 |
meshfine02.rotation |
2,187 | 0.00658291345 |
0.0000658291345 |
meshfine02.local_reaction_inplane_force |
208 | 3347707 |
33477.07 |
meshfine02.local_reaction_transverse_force |
104 | 2802821.5 |
28028.215 |
meshfine02.local_reaction_physical_moment |
208 | 4722449.5 |
47224.495 |
Blocking family의 precheck/row/RMS failure만 전체 external-reference verdict를 fail한다.
Warning-only는 warning, review-only는 deterministic review finding/error table을 남기지만
blocking verdict를 바꾸지 않는다. RM3와 stress는 family를 만들지 않는다.
6.2 Internal equilibrium families
- Accepted free force/moment residual은 factor-one accepted trial에서 NSNR-069을 그대로
재현한다. Nonzero matching external scale이면 infinity-norm relative
<=1e-2; exact-zero scale이면 typed absolute<=1e-3force 또는 force-length다. - Global force/moment balance는
numerical-review.md§6.2의 sum-of-contribution scale과 dimension-separated normalized metric을 사용하며 각각<=1e-8이다. - Internal gate에 external family tolerance, absolute floor, reference-derived scale 또는 local nodal reaction error를 섞지 않는다.
7. Open Issues and I/O Handoff
Open issues blocking I/O Definition: 없음.
Post-closure verification status: shellnl-meshfine-02-s4-final은 artifact/schema/family contract가
준비되었지만 과거 canonical Stage 6 comparison에는 포함되지 않았다. Merge된 current code의
별도 실행과 comparison evidence는 Implementation Agent 소유이며 이 inventory는 pass/fail을
선언하지 않는다. 이 pending evidence는 기존 feature closure 또는 Release verdict를 바꾸지 않는다.
I/O Definition Agent handoff through Coordinator:
- Fine primary와 coarse companion nonlinear case의 accepted factor-one identity를 보존한다.
- Post-closure
_02는 기존 fine case와 독립 case/family로 projection하고 별도 current-code verification에 사용한다. - Section 4.4의
(a)applied-plus-reaction balance error,(b)constrained reaction resultant,(c)accepted free residual을 separate logical quantities로 최종 projection한다. - Global moment는 origin
[0,0,0], currentX+uforce arm과 spatial physical nodal moment를 사용한다. General nonzero prescribed translation/rotation에서도 initial arm/raw rotational residual을 재사용하지 않는다. - Local RF/RM은 exact source-key/schema/inventory/finite/error reporting이 있는 review-only다. Local rows를 global sum으로 대체하거나 blocking으로 되돌리지 않는다.
- Approved Gauss direct stress recovery를 유지한다. Optional element-corner stress artifact에 맞춘 extrapolation/averaging 또는 stress comparison projection을 만들지 않는다.
- Common external tolerance와 exact prechecks를 변경하지 않는다.
Reference artifact status: required input/displacement/reaction artifacts are present and readable. Optional fine stress identity issue는 transparent nonblocking inventory finding이다. 어떤 reference artifact도 생성, rename, repair, normalize 또는 수정하지 않았다.