157 lines
13 KiB
Markdown
157 lines
13 KiB
Markdown
# 연구 근거·검증 후보·미해결 항목
|
||
|
||
- Feature ID: `mitc4-shell-feast-eigen2`
|
||
- Owner: `research-agent`
|
||
- Input baseline: `requirements r1`
|
||
- Web access date: `2026-09-08`
|
||
- Main report: [research.md](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](https://web.mit.edu/kjb/www/Publications_Prior_to_1998/A_Continuum_Mechanics_Based_Four-Node_Shell_Element_for_General_Nonlinear_Analysis.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](https://arxiv.org/html/2212.03614v2), 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](https://web.mit.edu/kjb/www/Publications_Prior_to_1998/Solution_Methods_for_Eigenvalue_Problems_in_Structural_Mechanics.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](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2026-0/extended-eigensolver-functionality.html), generalized problem | Real symmetric generalized 문제의 SPD B 조건. 설치 runtime 일치 확인은 아님. |
|
||
| S05 | 같은 edition, [Input Parameters](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2026-0/extended-eigensolver-input-parameters.html), C-indexed `fpm[5]`, `[26]`, `[27]`, `[49]` | Count·trace·matrix checks. Standalone FEAST 또는 Fortran index와 혼동 금지. |
|
||
| S06 | 같은 edition, [Output Details](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2026-0/extended-eigensolver-output-details.html), `info` table 및 마지막 remark | 실패·empty warning·endpoint와 isolated cluster 위험. Count-empty 특수 성공 보장 문구 없음. |
|
||
| S07 | 같은 edition, [feast_scsrgv/feast_hcsrgv](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2026-0/feast-scsrgv-feast-hcsrgv.html), `m0`, `x`, `epsout`, `m`, CSR parameters | Signature·capacity·endpoint-scaled trace. Count-only 작은/null workspace 보장 문구 없음. |
|
||
| S08 | Abaqus 2025 [FREQUENCY](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEKEYRefMap/simakey-r-frequency.htm), optional parameters와 Lanczos data line | 공개 count·bound·normalization·SIM·acoustic syntax만 사용. FESA 내부 질량/해법의 동등성은 주장하지 않음. |
|
||
| P01 | [기존 mass](../mitc4-shell-feast-eigen/formulation-mass.md), [eigen](../mitc4-shell-feast-eigen/formulation-eigen.md), [stabilization](../mitc4-shell-feast-eigen/formulation-stabilization.md), [연구](../mitc4-shell-feast-eigen/research-evidence.md) | 현재 worktree의 후보 유도·과거 근거 locator. 이번 독립 검증 또는 승인으로 간주하지 않음. |
|
||
| P02 | [요구사항](requirements.md), [요구 근거](requirements-evidence.md), [기존 nonlinear §10.3](../nonlinear-static-newton-raphson/formulation.md#103-fixed-scale-and-potential), [TOLERANCE](../TOLERANCE.md) | 요구·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 1~6 boundary 행이다. 같은 폴더의
|
||
`shellNL-eigen-meshfine eigenvalues.txt`는 Mode 1~10, Value와 별도 Freq를 표시한다.
|
||
Value 반복 표시는 2/3, 7/8, 9/10에 있으며 표시 precision만으로 exact degeneracy를 단정하지 않는다.
|
||
전체 keyword inventory·node count는 [요구 근거](requirements-evidence.md)의 선행 정적 관찰이다.
|
||
|
||
**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 열람과 재사용은 없다.
|