Files
FESADev/docs/mitc4-shell-feast-eigen2/reference-model.md
T
2026-10-04 03:32:59 +09:00

6.3 KiB

외부 reference projection과 tolerance 적용

  • Feature ID: mitc4-shell-feast-eigen2; Owner: numerical-review-agent; revision r2 (2026-09-10 첫 구현의 외부 Value 5% 승인).
  • 기본 보고서: numerical-review; 기준: requirements, TOLERANCE.
  • 판정: 승인된 비교 계약 갱신. 실제 최신 판정은 첫 구현 검토에 기록한다.

Eigen의 지정 원본과 logical identity

Input은 shellNL-eigen-meshfine.inp, reference는 같은 폴더의 shellNL-eigen-meshfine eigenvalues.txt다. 이름·내용·확장자를 보존한다. 공식 FESA 결과는 입력 lexical sibling shellNL-eigen-meshfine_results.h5이며 exact dataset path·metadata는 I/O 소유다. Actual backend MKL FEAST, actual mass derived nodal block lumped인 결과만 비교한다.

이번 원본 TXT 직접 읽기에서 각 행은 Frame: Mode i: Value = ... Freq = ... (cycles/time)였다. TXT 자체에는 step이 없다. 동일 .inp의 **유일한 frequency step Step-2**가 step authority이며 필수 count는 해당 *FREQUENCY의 N=10이다. Filename의 shellNL이나 Step-2라는 이름에서 preload를 추론하지 않는다. Source step이 유일하지 않으면 임의 step 선택으로 비교하지 않는다.

Stable logical row key는 (reference case, source step name=Step-2, modal frame=Mode i, mode index=i, logical quantity=eigenvalue, component=Value)다. Matrix equation index나 행 위치를 identity로 쓰지 않는다. i=1..10의 오름차순 결과와 label로 직접 대응한다. 같은 Value를 갖는 다른 mode는 distinct identity다. 표시 precision이 같다는 이유로 exact multiplicity를 단정하거나 average/deduplicate하지 않는다.

Modal frame / mode 원본 Value [T^-2]
1 219507
2 885523
3 885523
4 1855340
5 2740230
6 2775150
7 4149410
8 4149410
9 6733790
10 6733790

Family의 독립 결정

공통 정책은 같은 model/step/frame/logical quantity/차원/좌표/판정 영향만 한 family에 허용한다. 원본은 Mode i 각각을 frame으로 명시하므로 eigenvalue:Step-2:Mode-i라는 10개 singleton family를 정의한다. 각각 scalar invariant 좌표, 단위 차원 T^-2, component Value, blocking이다. 모든 mode를 한 frame으로 합치는 것은 원본 frame 의미를 삭제하며 낮은 mode의 scale을 높은 mode로 바꾸므로 채택하지 않는다. 이는 과거 singleton 결론을 자동 승계하거나 결과 오차를 본 뒤 고른 family가 아니다.

2026-09-10 사용자는 “5% 이내면 첫 구현이므로 Abaqus와의 고유치 정확도 향상은 추후에 진행하겠습니다. 구현을 마무리해주세요.”라고 승인했다. Feature ADR와 공통 TOLERANCE의 한정 정책에 따라 mitc4-eigen-first-implementation profile을 이 Feature의 외부 Value에만 적용한다.

각 family의 S=abs(reference Value), B=.01S와 행별 relative limit .05는 유지하며 relative RMS limit을 .05로 적용한다. 이번 양의 singleton에서 RMS=relative error이므로 각 Value는 **상대오차 5% 이하(inclusive)**일 때 통과한다. 행 판정과 RMS를 각각 기록하고 profile ID·실제 RMS 한계 .05를 보고한다. Near-zero, zero-reference-scale의 exact-zero, named failure와 identity/finite 전검사는 공통 문서 그대로다. 다른 Feature·static family의 RMS .01, 이 Feature의 전체 c개 내부 검증 1e-10은 변경하지 않는다.

기존 r1의 singleton RMS1% 실패 기록은 당시 판정으로 보존한다. 이번 승인은 첫 구현의 외부 정확도 기준 변경이며 S3 해결·다른 필수 검증 면제·Abaqus 내부 알고리즘 동등성 승인이 아니다. Frequency 변환, Freq fitting, mode shapes/변위/회전/stress/reaction은 새 eigen 외부 gate가 아니다.

File/dataset/component/schema 누락, wrong step/frame/quantity/backend/mass variant, missing/extra/duplicate mode, 비유한 Value 또는 FESA mandatory 수치는 tolerance 전에 실패한다. TXT row 재정렬은 허용하되 모든 nonempty 행의 schema를 파싱하고 원본 Value를 수정하지 않는다. Required scalar Value의 finite 검사를 별도 Freq 비교로 대신하지 않는다. Freq는 schema/의미 확인용이며 수치 acceptance에 넣지 않는다. 모든 family/row/error/scale/RMS/판정의 순서는 결정적이다.

남는 static portfolio

아래는 새 requirements의 기존 acceptance 보존이며 eigen family와 섞지 않는다.

역할 기존 원본과 비교
shell-s4, shell-s4-linear-limit shell.inp, shell displacements.csv; 같은 fresh solve 재사용 가능하나 두 역할 evidence 구분
shellnl-s4-final shellNL.inp, shellNL displacements.csv; factor-one accepted state
Nonlinear local reaction review shellNL reactions.csv; RF1/2/3, physical spatial RM1/2 source-key·finite·inventory·error 보고는 review-only

Static U1/U2/U3 global length는 blocking, UR1/UR2/UR3의 기존 fixed-initial global rotation 의미는 warning-only다. 같은 case/step/frame/차원/좌표/impact별 공통 family와 source instance/node/component identity를 유지한다. Local reaction review는 내부 force/moment balance·free residual blocking을 대체하지 않으며 RM3/stress를 새 gate로 추가하지 않는다.

제외된 네 예제는 원본·복사·cache·과거 결과로도 재사용하지 않는다. 정확한 제외 목록의 권위는 requirements다. 제외 pressure 예제의 fresh 외부 coverage는 없으며 synthetic pressure kernel/하중/평형/schema/comparator는 유지한다. 이번 원본 열람은 지정 eigen 두 파일에 한정했고 static 파일은 경로 존재만 확인한다. Solver/reference pass 주장은 없다.