20 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 - 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
세 stored 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로 부르지 않는다.
모든 selected case에서 displacement U1/U2/U3는 blocking, UR1/UR2/UR3는
warning-only다. Coarse/fine 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를 의미하지 않는다.
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 |
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다.
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 |
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은 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.
다른 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 |
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 |
이 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 |
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 |
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: 없음.
I/O Definition Agent handoff through Coordinator:
- Fine primary와 coarse companion nonlinear case의 accepted factor-one identity를 보존한다.
- 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 또는 수정하지 않았다.