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

18 KiB
Raw Blame History

MITC4 eigen 연구와 근거

이 연구 기록의 후보·runtime gap은 조사 당시 상태다. 최종 채택식은 정식화, FEAST residual stopping과 비교 정책의 승인 변경은 ADR, 실제 실행 범위는 구현 검증을 따른다. 조사 시점의 trace stopping을 현재 설정으로 읽지 않는다.

MITC4 질량·FEAST 연구 결과

  • Feature ID: mitc4-shell-feast-eigen2
  • Input baseline: requirements r1
  • Research date: 2026-09-08
  • Status: research evidence complete; 현재 후속 작업 상태는 PRD의 checklist를 따른다.

요구사항과 요구 근거에 대한 연구다. 현재 후속 작업 권한은 메인이 전달한 최신 사용자 지시를 따르며, 요구 문서의 과거 requirement-only 완료 기록을 이번 연구의 실행 제한으로 해석하지 않는다. 기준은 프로젝트 지침, PRD, ARCHITECTURE, ADR-028이다. 출처별 locator·조건·검증 후보·gap은 상세 근거에 기록했다.

질문 / Requirement suffix 결론과 인계
Physical mass, consistent→lumped / 005,006,026 MITC4 director 운동학에서 kinetic energy로 consistent mass를 유도할 수 있다. Scalar thickness moments를 consistent 계산에서 보존하고 node block으로 lumping하는 후보는 좌표 공변성과 drilling null을 설명한다. Global component row-sum은 부적합하다. 곡면의 first moment와 관성 보존 범위는 Formulation이 증명한다.
Partial BC와 FEAST SPD / 007,008,014 실제 global BC를 먼저 적용한 질량의 nullspace가 대상이다. UR3 일괄 제거는 성립하지 않는다. Massless Schur 제거의 정확성은 null block 가역성이 조건이며, FESA의 decoupling은 개선 K 구조에서 별도 증명이 필요하다.
Covariant drilling / 024,027 초기 physical rotational block의 trace는 접평면 기저 변경의 불변량이다. Trace 평균은 단순한 후보이나 채택은 Formulation 책임이다. Nonlinear scale은 초기값을 고정해야 기존 potential의 일관 미분을 유지한다.
Lowest N·multiplicity / 009–013 FEAST는 구간 해법이다. SPD 변환·구간 밖 하한·count/solve 일치·독립 residual/Gram을 결합해야 최저 N 누락을 방지한다. 반복 고유값을 값으로 deduplicate하지 않는다.
Intel 세부 위험 / 012 공식 C fpm[49]=1 count와 fpm[5]=1 trace는 확인했다. Count-only 빈 구간의 info=0,m0=0 보장과 축소 workspace는 문서에 명시되지 않아 runtime 검증 gap으로 남는다.
원본 syntax·Value-only / 015,020–022 지정 원본은 10, , , , ,이며 TXT Mode 1~10의 Value를 보존한다. Lanczos/SIM은 FESA FEAST backend 선택 근거가 아니다. 최종 allowlist·HDF5·comparison family는 I/O·NR 소유다.

기존 feature의 연구·질량·eigen·stabilization 문서는 연구 당시 worktree의 read-only 후보로 읽었다. 과거 수식·NR 판정·runtime 결과를 이번 승인이나 새 통과로 가져오지 않았다. 특히 과거 singleton mode family는 연구 결론이 아니며 공통 tolerance에 대해 NR가 새로 판단해야 한다.

검증 후보는 평판 다항 적분, 곡면 독립 kinetic energy, 실제 partial BC의 원 pencil 복원, NR-MFE-001 geometry 재계산과 대응 정적 response, frozen nonlinear 미분, 작은 zero/repeated/clustered spectrum, 지정 원본 Value 비교다. 세부는 상세 근거를 따른다. 이번에는 문헌·원본 syntax·문서 링크의 정적 확인만 수행했다. Solver, FEAST runtime, build/test, reference 수치 비교와 독립 NR/Physics는 실행하지 않았다. 제외된 네 예제의 원본·복사·cache는 읽거나 사용하지 않았고 reference·공통 정책도 수정하지 않았다.

연구 근거·검증 후보·미해결 항목

  • Feature ID: mitc4-shell-feast-eigen2
  • Input baseline: requirements r1
  • Web access date: 2026-09-08
  • Main report: research.md

Fact는 이번 원문 확인, Inference는 수학적 적용 판단, Candidate는 후속 채택 후보, Gap은 아직 확인하지 못한 사항이다. 수식·threshold·schema의 최종 계약을 정하지 않는다.

Source inventory

ID Source / stable locator 적용과 한계
S01 Dvorkin & Bathe (1984), Engineering Computations 1, 77–88, DOI 10.1108/eb023562, author PDF, Eqs.(1),(2), p.81 및 Fig.7 vibration examples Director 운동학·5 DOF·rigid mode의 원 연구. 곡면 lumping 또는 Abaqus 내부 알고리즘의 근거가 아님.
S02 Voet, Sande & Buffa (2023), CMAME 410,116033, DOI 10.1016/j.cma.2023.116033, author preprint v2, Definition 3.7, Remark 3.8 Scalar/일반 행렬 lumping 이론. 절댓값 row-sum theorem을 shell drilling-null 보존으로 확대하지 않음.
S03 Bathe & Wilson (1973), IJNME 6,213–226, DOI 10.1002/nme.1620060207, author PDF, STATIC CONDENSATION, Eqs.(9)–(13) Massless 제거·fill 증가. Massive DOF의 근사 condensation과 구분.
S04 Intel oneMKL C Developer Reference, URL edition 2026-0, page date 2026-04-28, Extended Eigensolver Functionality, generalized problem Real symmetric generalized 문제의 SPD B 조건. 설치 runtime 일치 확인은 아님.
S05 같은 edition, Input Parameters, C-indexed fpm[5], [26], [27], [49] Count·trace·matrix checks. Standalone FEAST 또는 Fortran index와 혼동 금지.
S06 같은 edition, Output Details, info table 및 마지막 remark 실패·empty warning·endpoint와 isolated cluster 위험. Count-empty 특수 성공 보장 문구 없음.
S07 같은 edition, feast_scsrgv/feast_hcsrgv, m0, x, epsout, m, CSR parameters Signature·capacity·endpoint-scaled trace. Count-only 작은/null workspace 보장 문구 없음.
S08 Abaqus 2025 FREQUENCY, optional parameters와 Lanczos data line 공개 count·bound·normalization·SIM·acoustic syntax만 사용. FESA 내부 질량/해법의 동등성은 주장하지 않음.
P01 기존 mass, eigen, stabilization, 연구 연구 당시 worktree의 후보 유도·과거 근거 locator. 이번 독립 검증 또는 승인으로 간주하지 않음.
P02 요구사항, 요구 근거, 기존 nonlinear §10.3, TOLERANCE 요구·frozen lifecycle·acceptance 경계. 경험적 통과의 근거가 아님.

R01 — 질량과 lumping

Fact S01: 입자 변위는 nodal translation과 두 director rotation으로 보간한다. 논문은 전역 3회전 표현으로 변환 가능함을 설명하고 여섯 rigid modes를 확인한다. Inference: v=sum Ni(ui_dot+z*(theta_i_dot cross di)), T=1/2 integral rho |v|² dV이면 M_C=integral rho H^T H dV이며 director-parallel rotation은 질량 null이다. MITC assumed shear는 strain 보간이므로 질량에 shear correction을 추가할 근거가 없다.

Fact S02: 일반 행렬의 absolute-row-sum과 nonnegative 행렬의 보통 row-sum은 구분된다. Inference: global rotary P=I-dd^T에 component row-sum을 적용하면 좌표 공변성·null을 잃는다. d=(1,1,1)/sqrt(3)에서는 P*ones=0이나 rank(P)=2다. Translation/rotation의 무차별 행 합은 질량·질량×길이·질량×길이² 차원도 섞는다.

Candidate P01 재검토: Consistent 계산의 Ck_ij=integral rho Ni Nj z^k dV, k=0,1,2를 보존하고 scalar row-sum을 node별 tensor block으로 재구성한다. sum Nj=1, Ni>=0에서 node energy는 integral rho Ni |Gi(z) qi_dot|² dV이므로 양의 measure에서 비음성과 drilling null을 설명한다. Centered section이라도 곡면 J의 두께 의존성 때문에 first moment가 남을 수 있다. Flat parallel director에서만 rotary factor t²/12와 zero translation–rotation coupling이 직접 성립한다. 일반 orbital inertia·모든 velocity energy·consistent spectrum 동일성을 요구하지 않는다.

검증 후보: 직사각형 면적 A의 scalar mass는 rho*t*A/36 곱하기 [[4,2,1,2],[2,4,2,1],[1,2,4,2],[2,1,2,4]]인 직접 다항 적분 oracle; 회전 scalar 배율은 t²/12. 곡면은 production H/J를 재호출하지 않는 독립 velocity 적분, node block positivity·moment 관계·두 mass의 좌표 congruence·density scaling을 검사한다. Quadrature 차수·정확 관성 보존 범위는 Formulation/NR가 확정한다.

R02 — 실제 BC와 massless reduction

Fact S03: Mass가 diag(Mp,0)이고 massless stiffness Kzz가 가역이면 Kr=Kpp-Kpz*Kzz^-1*Kzp, z=-Kzz^-1*Kzp*p가 massless 방정식의 정확한 제거다. Dense fill 가능성이 있다. Inference: 실제 global BC의 free injection C를 먼저 적용하여 Mf=C^T M_L C, Kf=C^T K C에서 positive/null 공간을 찾아야 한다. 기울어진 director와 partial rotation BC에서는 원래 drill 방향이 free 공간에 들어가지 않아 rotary free block이 SPD가 될 수 있다. UR3 또는 node당 1 DOF 일괄 삭제는 틀리다.

Candidate: 공통 nodal director, physical K의 drill null, positive scalar numerical drilling 구조에서 Kf Z=Z D, D>0를 증명하면 Kpz=0인 sparse projection을 쓸 수 있다. 이 증명은 개선된 constrained pencil 대상이며 partial BC에 남는 stabilization을 지우지 않는다. Nonlinear tangent 또는 prestressed 문제에 확장하지 않는다.

검증 후보: 비축정렬 director의 partial BC, null 없음/있음, 0 physical rank, request>rank, Kpz!=0의 작은 manufactured pencil, 원 free residual 및 constraint 복원. 공통 K/M nullspace는 임의 pseudoinverse로 성공 처리하지 않는다.

R03 — 공변 stabilization과 frozen nonlinear scale

Inference: Orthogonal tangent basis 변경에서 Ri'=Oi^T Ri Oi이면 trace(Ri')=trace(Ri)다. 개별 대각값의 최솟값은 불변량이 아니다. Candidate: 초기 physical rotational blocks의 trace 평균은 force×length 차원이며 PSD physical K에 비영 회전 강성이 있으면 양수다. Trace 양수만으로 전체 PSD를 입증하지는 못한다. 정확 집계·계수·유효성 판단은 Formulation 책임이며 reference tuning은 근거가 없다.

Inference P02: Pi_d=kd*gamma^T gamma/2에서 initial kd를 고정하면 Dkd=D²kd=0이고 기존 residual/Hessian 구조를 유지한다. Trial에서 재선정하면 추가 미분항이 필요하다. Objective gamma와 invariant initial kd가 모두 필요하며, positive kd만으로 일반 nonlinear Hessian의 SPD가 따르지 않는다.

검증 후보: Geometry부터 complete K·director·scale을 독립 재계산하는 좌표 회전, node별 tangent 변경, 지원 partial BC NR-MFE-001와 같은 물리 load의 static response, rigid physical motion·physical recovery 제외, nonlinear objective potential의 1·2차 미분과 initial scale immutability. 과거 반례 수치·새 trace 후보 기대값은 이번에 재계산하지 않았다.

R04 — FEAST count·completeness의 확인과 gap

Fact S04/S05: Generalized real symmetric 문제의 B는 SPD다. C-index fpm[49]=1은 CSR 구간 전체 고유치 수를 m0로 반환하고 flag를 0으로 재설정한다. fpm[26]은 CSR 검사, [27]은 B 양정치 검사이며 [5]=1은 trace stopping이다. Fact S07: epsout=|trace_i-trace_previous|/max(|emin|,|emax|); 0<m0<=n, 구간 multiplicity count 미만의 m0는 불충분하다. Count와 solve의 m0 및 allocation capacity를 분리해야 한다.

Fact S06: info=0 성공, 1 empty warning, 2 미수렴, 3 작은 subspace, 4 subspace-only, -4 B not SPD, -5 count 오류이며 끝점이 고유치에 근접할 수 있다. emin>=emax는 오류다. 매우 넓은 구간의 고립 cluster를 놓쳐 info=1일 수 있다. 따라서 빈 반환이나 작은 residual만으로 낮은 mode가 없음을 증명하지 못한다.

Candidate: SPD whitening 뒤 차원 일관적인 spectral lower bound와 bounded count search를 연결하고, 구간 count와 solve row 수·Gram rank를 일치시킨 후 낮은 N개를 취한다. N번째가 repeated cluster 안이면 내부 solve는 cluster 전체를 포함하고 외부 N개 identity는 count 요청을 따른다. 벡터 기저의 비유일성과 scalar multiplicity를 구분한다. Zero modes를 양수 시작 구간으로 제외하거나 negative 값을 clamp하지 않는다.

Gap G01: 공식 표는 count-only empty case의 info=0,m0=0을 명시 보장하지 않는다. 성공 status와 count=0만 인정하는 guard는 fail-closed 후보지만, 이를 실제 runtime이 반환하여 전체 search가 진행되는지는 설치 oneMKL의 empty/occupied/endpoint 근접 probe가 필요하다. info=1을 검증 없이 trusted zero count로 승격하지 않는다. 전체 spectrum 밖임을 독립 bound로 확보한 enclosing interval에서 성공 count가 n이면 전체 bracket의 완전성 근거가 된다. 선택적 empty-prefix 축소가 불가능해도 이 bracket을 유지하는 후보가 있으며, 비용·종료 조건과 채택은 Formulation이 판단한다.

Gap G02: Count-only의 작은/null x/e/res allocation 면제는 확인하지 못했다. m0=n, x[n*n] 보수 allocation은 기존 후보이지 공식 최소 workspace 의무가 아니다. 설치 header/runtime와 memory·integer overflow를 구현 시 확인한다. 이 조사에서는 설치 runtime version·실행·peak memory를 측정하지 않았다.

검증 후보: 손으로 알려진 diagonal 및 직교 변환 SPD pencil의 첫 N개, zero/negative/repeated/clustered/empty spectrum, N=rank, endpoint 근접, count/solve mismatch, 미수렴·allocation 실패, 원 lumped M residual·normalization·Gram. FEAST status만으로 physics/completeness를 통과 처리하지 않는다. 세부 bound·budget·threshold는 Formulation/NR 소유다.

R05 — 지정 원본과 공개 입력 의미

이번 직접 정적 관찰: reference/shellNL-eigen-meshfine/shellNL-eigen-meshfine.inp의 끝부분은 *Step, name=Step-2, nlgeom=NO, perturbation, *Frequency, eigensolver=Lanczos, sim, acoustic coupling=on, normalization=mass, 10, , , , , 및 Set-2 DOF 16 boundary 행이다. 같은 폴더의 shellNL-eigen-meshfine eigenvalues.txt는 Mode 110, Value와 별도 Freq를 표시한다. Value 반복 표시는 2/3, 7/8, 9/10에 있으며 표시 precision만으로 exact degeneracy를 단정하지 않는다. 전체 keyword inventory·node count는 요구 근거의 선행 정적 관찰이다.

Fact S08: Lanczos 첫 data field는 requested count, 다음 두 field는 cycles/time의 frequency bounds이며 blank는 해당 bound 미설정을 뜻한다. Shift와 controls도 별도 field다. Inference/인계: FESA의 FEAST backend와 source Lanczos/SIM을 분리하고 acoustic-free 옵션의 처리·warning 및 비영 unsupported field 거부를 I/O가 명시한다. 공개 Abaqus syntax는 FESA mass/stabilization 내부 동등성의 근거가 아니다.

Value-only·공통 tolerance는 사용자 계약이다. Freq 변환·TXT 보정·CSV 복제·외부 mode-shape gate를 추가하지 않는다. NR가 family를 새로 검토하고 I/O가 source step/mode projection을 정의한다.

정적 확인·미실행

원 논문·공식 웹 문서 접근과 위 지정 원본 두 파일의 읽기는 수행했다. 연구 문서의 상대 파일 링크 존재와 UTF-8 replacement 문자 부재를 Python으로 검사했고 exit 0이었다. 기존 문서·reference·코드·threshold·schema를 수정하지 않았다. 이번 산출물은 두 연구 문서뿐이며 Git은 메인이 소유한다. Build/test·FEAST runtime·외부 solver· reference 비교·독립 NR/Physics는 연구 범위 밖으로 미실행이다. Configured vault 요청이 없어 fem-theory-query를 사용하지 않았다. 제외 예제의 원본·복사·cache 열람과 재사용은 없다.