Files
FESADev/docs/mitc4-shell-feast-eigen/numerical-review-cases.md
T
2026-09-06 04:27:42 +09:00

15 KiB
Raw Blame History

MITC4 eigen 필수 verification portfolio

아래는 Planning이 RED→observed failure→GREEN→focused/full VERIFY에 연결할 필수 logical cases다. C++ test 이름·파일과 final schema는 각 owner가 정한다. 새로운 reference 생성/수정 없이 synthetic test inputs는 tests의 승인 소유 경로에 둔다. Expected value를 production mass/reduction/FEAST 함수의 재호출로 만들지 않는다. 이 문서는 실행 결과가 아니다.

P1. Mass·좌표·조립

Case ID 입력·독립 oracle·필수 관찰 판정
MFE-C01 Affine rectangle 4×2, rho=3, t=1/2, parallel unit director. M10: C0=(rho t A/36)*[4,2,1,2;...], C1=0, C2=t²C0/12, node m=3, h=0, j=1/16. Full24와 physical20·각 translation energy·tangent inertia/drill null을 검사. rho×4, t×2의 C0/C2 scaling도 검사 C2 모든 관련 scalar/matrix/rank 기준
MFE-C02 r1 rational warped/director-varying fixture의 X,d,rho,t와 exact coefficient/row/first-moment oracle. Independent coefficient integration 또는 별도 고차 direct integration을 사용. C1을 강제0, 2-point mass, flat C2 비례식 mutation은 실패해야 함. 같은 shape/J production 호출만으로 oracle 구성 금지 C2-02~10; 기존 geometry predicate를 먼저 적용. Custom-director kernel fixture를 input explicit normals 지원으로 확대하지 않음
MFE-C03 Consistent/moment snapshot을 유지하고 row-sum→lumped 연결 검사. C1/C2의 controlled symmetric perturbation이 원 mass와 derived block에 모두 반영됨. Independent nodal integral rho Ni Gi^T Gi 및 고정 velocities의 pairwise Jensen work와 비교. Uniform translation, drill-only, nonuniform translation, tangent rotation을 각각 검사 C2-02~10; nonnegative kinetic energy, zero branch 및 총질량·centroid 보존
MFE-C04 Square [-1,1]^2, rho=t=1, uniform m×m grid m=1,2,4, velocity (x,0,0), theta=0. Direct polynomial gives q^T MC q=4/3, q^T(ML-MC)q=8/(3m²). Independent constant velocity의 두 energy는 모두 총질량4 Exact sequence에 C2-03/04/06. 이는 이 smooth field의 lumping error 검산이며 일반 spectrum 수렴 차수 약속 아님
MFE-C05 C01/C02의 global proper rotation과 origin translation. Q는 rational proper rotation [[0,-1,0],[3/5,0,-4/5],[4/5,0,3/5]], shift=(7,-3,5). Geometry/director/frame/mass를 새로 계산. Scalar full-row lumping이 실패하는 d=(1,1,1)/sqrt3도 사용 두 mass congruence와 kinetic work C2-02; moment는 common Xref, drilling null 보존
MFE-C06 공유 node·서로 다른 rho/thickness section의 shell patch. Element 순서와 source labels가 다른 입력의 대응 결과, sequential/병렬 contribution 및 stable reduction을 검사. 실제 constraints와 source indices를 독립 expected map으로 대조 Exact structure/order/identity, C2 matrix equality. Input permutation 자체와 fixed source-order determinism을 구분
MFE-C07 rho=0/negative/NaN/Inf/missing/duplicate/unresolved/dependent, invalid t/material, inverted/degenerate/기존 미지원 geometry 및 27점 중 invalid evaluation을 각각 거부. Density가 없는 기존 static case는 허용 Semantic/geometry/model failure, 상태·output 미반영. Mass zero 우회 금지

P2. Stabilization·partial BC·정적 영향

Case ID 입력·독립 oracle·필수 관찰 판정
MFE-C08 NR-MFE-001 원 rectangle와 Z45° 회전. S1을 새 frame에서 계산. Expected kd=19/4800, Mff=3/50, Kff=10369/7500, lambda=10369/450. 모든 DOF fixed, node1 URZ만 free. Old min rule은 이 case를 실패시켜야 함 Complete K·두 mass·kd congruence C2, exact eigenvalue C3-07, 원 free residual. Full-free/clamp 대체 금지
MFE-C09 C08에 admissible moment m=(5/3)M0 b, M0=1, b=(-4/5,0,3/5). 각 geometry에서 load도 변환. Expected thetaZ=7500/10369. 원 full Kq-F의 모든 reaction 성분을 회전해 비교 C7 static response/full residual/reaction covariance, physical moment projection<=1e-12
MFE-C10 Eight diagonal inventory [0,0,2,4,0,6,0,4]이면 kref=2,kd=.002. All-zero, 한 negative, NaN/Inf는 failure. DBL_MAX 근방 양성 inventory는 scaled mean이 가능한 경우 finite; subnormal kd underflow는 failure. Independent node별 tangent changes O angles=(0,pi/6,pi/4,pi/3)에서도 trace 동일 C2-11/12; 분모8 고정, clamp/positive-only mean/min 금지
MFE-C11 Free affine element와 smooth patch의 세 rigid translation·세 tangent-projected rigid rotation. Pure drill은 별도 4개. Physical K20 rank14, consistent physical mass rank20, complete K24 rank18/nullity6; positive-space dimension20. Full massless reduction 후 six near-zero physical modes가 남음 C2/C3 analytic rank·rigid K action·mass Gram; drill에 관성을 주거나 physical zero mode 삭제 금지
MFE-C12 기존 nonlinear fixture에서 초기 scale=S1, trial/commit/rollback에 exact unchanged. 기존 objective gamma potential의 first/second directional variations, finite rigid motion, linear physical limit, physical recovery 제외와 reaction conversion 기존 nonlinear 계약 및 C7. Trial scale 재선정·nonlinear Hessian SPD·linear Td entry equality를 요구하지 않음

P3. 실제 BC·mass whitening·FEAST

Case ID 입력·독립 oracle·필수 관찰 판정
MFE-C13 Nodal M6 h=0,m=j=1의 manufactured block. d=(0,0,1), d=(3/5,0,4/5), d=(1,1,1)/sqrt3에 full free, URX fixed, URZ only free, all rotations fixed, drill-only free, fully constrained 조합. 조합은 Cartesian product가 아니라 지원되는 global component BC로 표현 가능한 경우만 적용하며, drill-only free는 d=(0,0,1)에서 URZ만 free이고 나머지5 DOF constrained인 경우로 한정한다(MPC 없음). Expected null은 constrained director 성분의 exact-zero 교집합. Mixed nodes에는 local finite rank0가 있어도 다른 finite node 보존 E2 analytic dimension, C2-07~14, recovered source mask. Global n=0 또는 N>n은 failure
MFE-C14 d=(2p/(1+p²),0,(1-p²)/(1+p²)), p=1/2000와1e-8. m=j=1,h=0; URX만 fixed, 세 translation과 URY/URZ free. 첫 case positive rank5와 conditioning pass; 두 번째는 여전히 analytic rank5이나 conditioning/Cholesky failure. p=0은 정확한 null1 C2 rcond cutoff의 양옆 및 exact equality branch. Tiny positive mass를 rank4로 바꾸는 구현은 실패
MFE-C15 독립 singular pencil K=6,2],[2,4, M=diag(2,0)에서 finite lambda=5/2,z=-p/2. 단순 삭제의3은 오답. Production shell projection path에 nonzero Kpz 또는 nonpositive Kzz 주입 시 실패. 일반 dense Schur 기능을 구현할 필요 없음 Original residual oracle와 E3 admissibility rejection, 임의 fallback 금지
MFE-C16 SPD nodal whitening M=[[2,1],[1,2]], K=[[6,4],[4,6]]의 eigenvalues 2,10/3. Dense inverse 없이 congruence·복원·original-M normalization. 같은 eigenvectors에 틀린 lambda·mass variant·null coordinate/constraint를 각각 주입 C2/C3, injected wrong pairing/mass/full residual이 실패해야 함
MFE-C17 Actual FEAST diagonal known spectra: n1 λ=2,N1; [0,0,0,2,5,9]에 N1/4/6; [1,2,4,8] N1/2/4; n4 all-zero N1/4. 요청 N은 별도 input count이고 count output과 분리 C3/C5, lowest N/multiplicity/zero/N=n, count/guard/solve history; mock만으로 대체 금지
MFE-C18 Actual FEAST n64 spectrum: 앞40개 λ=1, 나머지 λ=2..25, N1 및N41. n4 tight spectrum [1,1+2^-28,1+2^-27,8], N2. B=Q diag(lambda) Q^T의 dense-pattern test도 추가; Q는 고정 Givens(pi/6,pi/4) 곱 C3-07/08, repeated group>N에서 c/m0가 N보다 커짐, 전체 c Gram, partial cluster merge 금지
MFE-C19 Actual backend에 [ -2,0,3 ], [ -1e-12,0,1 ]. Backend raw negative 보존; procedure는 첫 spectrum의 유의한 음수 실패, near-zero negative는 classification·frequency-validity/raw 보존. Exact ±tau_zero*s 및 그 양옆은 arithmetic/injection 경계 test C3 분류와 실패 보존. 부적합 물리 K를 accepted shell이라고 주장하지 않음
MFE-C20 Density×4에서 두 M×4, λ/4, normalized vector amplitude 1/2; C08과 simple/repeated known-spectrum fixture 사용. 길이×1024, rho/1024³,E/1024,t×1024의 일관 단위 변환에서도 λ 불변 C2/C3/C4; baseline s·same physical BC, 단위 mixing/floor 검출
MFE-C21 Endpoint=eigenvalue collision, prefix0 반환, nonmonotone count, total!=n, m!=c, info1/2/3/4/-1..-5/200..202·invalid fpm, missing/duplicate/nonfinite CSR, B-not-SPD를 각각 주입. QR rank/Gram failure·insufficient capacity·nonfinite pair·wrong residual도 주입 C5의 정확한 retry 대상·budget/최종 failure. Error를 empty interval 또는 부분 성공으로 바꾸지 않음
MFE-C22 실제 operator에 near endpoint/repeated cluster의 C5 history 검증과 adapter-mock count-call512/solve-call3 최대 경계, budget 직전 certified bracket fallback. Index/nnz+1/n²/n*m0 overflow 및 allocation 실패 injection 정수 exact checks, 유한 종료, controlled failure. 큰 메모리를 실제 할당해 실패시킬 필요 없음

MFE-C17/18 actual FEAST case에서 bounds를 expected eigenvalues로 설정하지 않는다. Production E6/C5 search를 실행하고 independent diagonal spectrum의 prefix count와 postsolve 결과로 history를 검증한다. Synthetic rotated pencil은 sparse CSR에 전 dense pattern을 저장할 수 있지만 다른 eigensolver로 expected values를 계산하지 않는다. False count/solve success가 lowest-N를 검증하지 못하는 mock도 포함해 missing low eigenpair를 Gram/residual만으로 성공시키는 경로를 잡는다.

P4. I/O·reference·운영 closure

Case ID 필수 관찰 판정
MFE-C23 원본 input의 density/section mapping·S4/S4R common physical path·Step-2/N10·blank bounds·Lanczos/SIM/acoustic-free no-op·mass normalization. Unsupported fields, prior step/preload, nonzero BC, damping/acoustic/mixed elements는 fail-closed I/O가 fixed syntax allowlist·진단으로 구체화. Source count와 actual FEAST count/backend 구분
MFE-C24 Source renumbering과 output self-check; logical mode/source identity·lambda dimension·actual mass/backend·candidate를 HDF5에서 복원. 기존 final hash/accepted state를 준비하고 solve/validation/write/close/replace failure 주입 정확한 schema는 I/O 소유. 모든 failure에서 계약 범위의 이전 state/final 보존, log는 별도 lifecycle
MFE-C25 새 eigen reference 10개 Value, 10 singleton families, comparator prechecks/1% RMS·5% row·near-zero·zero-scale inclusive 경계. Equal values의 distinct IDs와 reordered TXT는 허용, missing/extra/duplicate/NaN/Inf/wrong quantity/mass/schema는 실패 공통 policy 그대로, 모든 Value blocking. Actual FESA fresh binary 결과로 실행
MFE-C26 아래 기존 linear/nonlinear static portfolio·configured 전체 regression suite·새 warning 없음. Density 없는 기존 static, source mapping·partial-BC response·Newton objective/tangent·평형·reaction·energy·rollback C7와 기존 reference identity/policy. Old kd 수치 equality는 대체하되 다른 기준 유지
MFE-C27 RED가 변경 동작 때문에 실패했는지 확인, GREEN/focused/full MSVC x64 Debug CMake/CTest 실제 exit, actual FEAST/backend identity, fresh reference timestamps/hashes. 세 반복 구조/order/diagnostic 및 scalar 재현성 C4, 전27개 requirement evidence 및 동일 r2 Physics/Release closure. 누락·실패·stale를 통과 처리 금지

기존 정적 포트폴리오의 원본 목록은 Requirement evidence와 현재 nonlinear reference-model이다. shell/shellNL/shellNL-meshfine의 해당 .inp와 같은 폴더의 원본 <stem> displacements.csv, nonlinear의 required review-only reactions를 그대로 사용한다. Linear shell-s4와 shell-s4-linear-limit는 같은 input의 서로 다른 검토 역할이며 같은 fresh solve를 재사용할 수 있어도 각 identity/회귀 증거를 생략하지 않는다.

U1/U2/U3는 global length blocking, UR1/UR2/UR3는 fixed-initial global rotation-vector warning-only이며 같은 step/accepted state·case·dimension·coordinates·impact별 공통 family다. Nonlinear RF1/RF2/RF3와 physical spatial RM1/RM2는 기존 source-key·finite·inventory 및 error/RMS report를 유지하는 review-only다. RM3/stress는 기존 numerical gate에 넣지 않는다. Factor-one 내부 force/moment equilibrium은 별도 blocking이고 C7를 따른다. shellnl-meshfine-02-s4-final의 post-closure 역할은 그대로 유지하며 등록 suite의 해당 실행·영향 evidence를 기록한다. 과거 세 case의 closure로 소급 합치지 않는다.

Root가 관찰한 중단 baseline/단독 재현/나머지 pressure tests는 새 binary 전체 suite의 성공 evidence가 아니다. Reference 테스트의 HDF5 cache가 이전 library보다 새롭다는 이유로 옛 solve를 재사용하지 않았는지 확인하고, r2 영향을 받는 final comparison은 새 binary의 fresh solve evidence로 남긴다. Reference input/results를 수정하거나 Hook state를 조작하지 않는다.

Requirement coverage

아래 전 행의 접두사는 FEM-REQ-MITC4-EIGEN-이고 모두 must다. Mapping은 acceptance intent를 복제하지 않으며 requirements가 원본이다.

Requirement suffix 필수 cases
001 MFE-C23, MFE-C25
002 MFE-C01, MFE-C08, MFE-C12, MFE-C23, MFE-C26
003 MFE-C06, MFE-C07, MFE-C23
004 MFE-C01, MFE-C02, MFE-C07
005 MFE-C01, MFE-C02, MFE-C03
006 MFE-C01, MFE-C03, MFE-C11, MFE-C13
007 MFE-C06, MFE-C13, MFE-C27
008 MFE-C08, MFE-C13, MFE-C14, MFE-C15, MFE-C16
009 MFE-C13, MFE-C17, MFE-C18, MFE-C19, MFE-C22, MFE-C23
010 MFE-C17, MFE-C18, MFE-C25, MFE-C27
011 MFE-C03, MFE-C16, MFE-C17, MFE-C23, MFE-C25
012 MFE-C14, MFE-C19, MFE-C21, MFE-C22, MFE-C24
013 MFE-C11, MFE-C16, MFE-C17, MFE-C18, MFE-C21
014 MFE-C01, MFE-C02, MFE-C03, MFE-C04, MFE-C05, MFE-C08, MFE-C11, MFE-C20
015 MFE-C23, MFE-C25
016 MFE-C07, MFE-C21, MFE-C23
017 MFE-C24, MFE-C25
018 MFE-C06, MFE-C13, MFE-C16, MFE-C24, MFE-C25
019 MFE-C21, MFE-C22, MFE-C24
020 MFE-C25, MFE-C26
021 MFE-C25
022 MFE-C25
023 MFE-C27
024 MFE-C09, MFE-C12, MFE-C26, MFE-C27
025 MFE-C27
026 MFE-C01, MFE-C02, MFE-C03, MFE-C04, MFE-C05
027 MFE-C08, MFE-C09, MFE-C10, MFE-C11, MFE-C12, MFE-C26