10 KiB
구현 결과 물리 검토
- Feature:
mitc4-shell-feast-eigen2; Owner:physics-evaluation-agent; 검토일:2026-09-09. - 결론: 유지 대상 변위·평형 evidence는 타당하나 feature 완료 판정 불가. 원본 eigen 필수 residual 실패, S3 public static 계약 충돌이 남는다. 별도로 기존 nonlinear 굽힘 단면력 복구 결함을 확인했다.
- 기준: cases E2-C08/09/11/12/26, mass/stabilization S1–S3, controls C3/C7, 공통 tolerance, nonlinear I/O §7.5/8.5. 새 acceptance나 release 승인을 만들지 않는다.
직접 확인한 evidence
아래 A/B/C는 이번 검토 시 허용된 각 경로에서 LastWriteTime으로 선택한 최신 결과다. HDF5를 h5py.File(path, 'r')로 읽어 계산했으며 solver/build/test는 재실행하지 않았다. 이후 구현 수정·재실행 결과로 자동 승계하지 않는다.
두 모델은 36 S4 / 49 nodes, [-5,5]×[-5,5] 평판, t=0.5, E=2.1e11, nu=0.3, 외곽 24 node의 6 DOF 고정, 중앙 (Part-1-1, node 2)의 FZ=-100000이다. A/C는 linear, B는 nlgeom=YES, factor 0.1..1.0의 10 accepted frames다. 단위계는 입력의 일관된 미지정 단위: 변위 length, 힘 force, 모멘트·에너지 force*length, 응력 force/length², 굽힘 단면력 force다. SI로 추정하지 않는다. 제외된 원본·복사·cache 모델과 stress reference CSV는 열거나 사용하지 않았다.
변위, 대칭, 평형과 에너지
| 관찰 | 직접 계산/저장 결과 | 해석 |
|---|---|---|
| A/C 하중 방향·크기 | 중앙 UZ=-2.3550441765084857e-5; UX=UY=URZ=0; `max |
URX/Y |
| A 대칭 | X/Y 반사 node 대응의 `max | ΔUZ |
| A 평형 | HDF5 global/verification_metrics: free residual 1.07747756e-14, force 1.12049747e-14, moment 2.35981342e-15 |
각각 기존 1e-10 이내 |
| A 에너지 | physical energy 1.1775220882542212; Fᵀu/2=1.1775220882542428; 상대차 1.82912e-14 |
양의 선형 변형에너지와 일치, 기존 energy 1e-12 이내 |
| B 최종 변위 | 중앙 UZ=-2.355044174560645e-5; `max |
UX/UY |
| B 선형극한 | C 대비 중앙 UZ 상대차 8.27093e-10; 전체 translation 최대차/최대 linear translation 3.73649e-7 |
작은 하중의 nonlinear displacement가 linear에 접근. 단면력 일치까지 뜻하지 않음 |
| B 에너지·증분 | factor0.1 energy 0.011775220886841211, factor1 energy 1.1775220868030056; 모든 10 frame 양수·증가, 각 2 Newton iterations |
거의 factor² 에너지와 factor 비례 처짐. Nonlinear에서 Fᵀu/2를 일반 항등식으로 요구하지 않음 |
B frame9의 generalized_residual에 먼저 constraint mask를 적용한 뒤 회전만 J_l(phi)^(-T)로 spatial 변환하고 current arm X+u를 사용했다. |phi|<1.1e-5에서 inverse-Jacobian의 안정적 소각 전개를 사용했다. 독립 합산은 저장된 /global/equilibrium과 roundoff 범위에서 일치한다.
- Constrained resultant force:
(-5.88263e-12, 6.25300e-12, 100000.00000082512) force. Applied force(0,0,-100000)을 상쇄한다. Reference CSV 전체 RF 합의 Z는99999.99959279996 force; 이는 review-only 관찰이다. - Constrained resultant moment about origin:
(-5.63887e-11, 3.63798e-11, -4.17886618386e-5) force*length. 중앙 applied force arm은 사실상 0이다. - I/O §8.5의 nodal norm-sum scale은 force
100000.00439300563, moment780242.2734309232. 독립 normalized force8.25134e-12, moment5.35586e-11로 각각 기존 factor-one1e-8이내다. 저장 balance Z-force8.25122697279e-7, Z-moment-4.17886618392e-5를 zero-clamp하지 않았다. - Accepted free residual: force infinity norm
0.031462885121074535 force, matching external scale100000, internal-inclusive scale100000.00000106206→ relative3.14629e-7 <= 1e-2. Moment infinity norm3.3292018315478344e-6 force*length, matching external scale exact0 → 기존 typed absolute1e-3이내. 이 accepted residual과 global balance는 서로 다른 관찰이다.
외부 변위 비교와 복구 결함
A comparison JSON은 49 nodes × 6 components의 294행, blocking U와 warning-only UR 각각 147행, 실패행·warning 0이다. U relative RMS 0.0010332756650397166, UR 0.0029771372973060382로 기존 0.01 이내다.
B는 실제 CSV/HDF5의 (case-insensitive instance, source node label, component)를 직접 대응했다. 49개의 유일 node identity가 일치하고 값이 모두 유한하다. 같은 공통 tolerance로 U relative RMS 0.0010332757195474177, UR 0.0029771373238648216, 각 family 실패행 0이다. Reaction CSV를 blocking 비교로 승격하지 않는다. 변위 수치 일치는 아래 복구 결함을 검출하지 않는다.
PE-IMP-01 — 기존 nonlinear 굽힘 단면력 복구 결함, 구현 owner 인계. B frame9 (Part-1-1, element 3, midsurface GP2)의 S11 bottom/middle/top은 [313254.63790344447, 3.694293034163272, -313246.91989287396] force/length²이다. nonlinear formulation §13.3의 M11=∫z S11 dz, z∈[-t/2,t/2]와 평판의 두께 stress polynomial에서:
M11 = t²/12 * (S11_top-S11_bottom) = -13052.1157874233 force.
그러나 HDF5 section_resultant[...,3]는 -26104.23157284045 force, 비율 1.999999999846297이다. A의 같은 적분은 저장 M과 최대차 9.09495e-12 force로 일치한다. B의 모든 row/component 중 최대 굽힘 오차는 13052.11578541715 force다.
메인의 추가 읽기 허가로 nonlinear recovery source를 확인했다. 두께 Gauss moment 가중치가 0.25*t*zeta*stress이므로 z dz가 요구하는 0.25*t²*zeta*stress의 thickness 한 개가 빠져 있다. t=0.5의 2배 차이와 직접 연결되며 차원도 맞지 않는다. 해당 파일의 git diff HEAD -- <path>는 비어 있다. 따라서 현재 eigen 변경이 도입한 결함이라는 근거는 없고 HEAD에도 존재하는 복구 결함이다. 코드 수정이나 새 gate를 수행하지 않았다. Finite stress/strain, 양의 에너지, U/UR 통과만으로 nonlinear section-resultant 물리 타당성을 주장할 수 없다.
Eigen/S3와 남은 범위
- 원본 eigen 미해결: 메인의 최신 actual FEAST 전달값은
676 shells / 729 nodes,nf=3750,nz=625,n=3125,N=10,c=22,m0=33,loop=4, column20rho_B=1.48674481038207483e-10 > 1e-10이다. Symmetric upper operator에서도1.48674481542089335e-10이다. 요청 10개 밖이어도 all-c 검증 대상이므로 버릴 수 없다. Accepted modal HDF5와 Value reference comparison이 없으므로 원본 modal energy·mass normalization·mode shape 물리 검증은 미실시다. 최신 실패값은 메인 실행 전달이며 이 검토자가 eigen artifact를 직접 읽은 값이 아니다. - S3 public static 충돌: 독립 수치 검토의
thetaZ=7500/10369,lambda=10369/450과 completeKq-F회전 공변성은 direct pencil 검증이다.gamma1=6000/10369에서 미상쇄 drilling torque(57/41476,0,19/10369) force*length, norm95/41476≈0.002290481242164143, normalized spatial moment0.0007328771161369957 > 1e-10가 남는다. 메인은 direct 검증 통과와 별도 public rejection 재현을 전달했다. 지원되는 static 성공을 의미하지 않으며 기존 reaction/global-balance 의미와의 계약 충돌 해결은 formulation/requirements owner와 사용자 결정 사항이다. - 전달받은 synthetic 통과의 한계: 작은 S3 eigen, free panel 여섯 rigid near-zero modes 및 all-c Gram, nonlinear tangent/objectivity/force/moment/free residual/energy/rollback 통과는 메인 실행 전달이다. 이번 검토자는 해당 test output을 직접 열지 않았다. Massless drill null과 양의 질량을 가진 physical rigid modes를 구분하는 근거이지만 큰 원본 모델 성공을 대신하지 않는다.
- Retained 외부 모델은 같은 평판의 매우 작은 변형이다. Arbitrary curved/director, 큰 회전·큰 변형의 외부 정확도, pressure external fresh comparison, modal stress/reaction, 일반 mesh 수렴은 여기서 검증하지 않았다. Synthetic pressure 통과가 외부 pressure coverage를 채우지 않는다.
검토 변경은 이 보고서뿐이다. 계약·허용오차·source·test·output·reference는 수정하지 않았다. 후속 action은 원본 eigen 실패와 S3 계약 충돌의 owner 처리, PE-IMP-01의 기존 recovery 결함 분리 추적이다.