559 lines
49 KiB
Markdown
559 lines
49 KiB
Markdown
# 이전 MFE 연구와 출처
|
||
|
||
현재 채택 여부는 [eigen2의 연구·정식화](../mitc4-shell-feast-eigen2/README.md)를 따른다.
|
||
|
||
<a id="research"></a>
|
||
|
||
<a id="research--mitc4-질량과-feast-고유치해석-연구"></a>
|
||
## MITC4 질량과 FEAST 고유치해석 연구
|
||
|
||
- Feature ID: `mitc4-shell-feast-eigen`
|
||
- Input contract revision: `r2`
|
||
- 조사일 / web access date: `2026-09-06`
|
||
- 요청 outcome: `pass`; 다음 owner: `formulation-agent`. 최종 gate와 전이는 Coordinator 소유이다.
|
||
|
||
입력은 [FEATURED_AGENTS](FEATURED_AGENTS.md), [PRD](PRD.md), [ADR](ADR.md),
|
||
[requirements r2](requirements.md#requirements), [reference 관찰·승인 delta](requirements.md#requirements-evidence)이다.
|
||
[프로젝트 PRD](../PRD.md), [ARCHITECTURE](../ARCHITECTURE.md), [공통 ADR](../ADR.md),
|
||
[TOLERANCE](../TOLERANCE.md), [agent 계약](../SOLVER_AGENT_DESIGN.md),
|
||
[문서 소유권](../FEATURE_DOCUMENTATION.md)을 적용한다.
|
||
Source inventory, locator, API evidence, 유도 후보와 검증 한계는
|
||
[research-evidence.md](research.md#research-evidence)에 둔다.
|
||
|
||
<a id="research--핵심-결과"></a>
|
||
### 핵심 결과
|
||
|
||
1. 원 MITC4의 director 운동학에서 kinetic energy를 적분하면 병진 및 두 접평면 회전의
|
||
consistent mass를 구성할 수 있다. 원 논문은 consistent mass를 사용한 주파수 예제도
|
||
포함한다. Drilling은 이 보간의 nullspace다. 평판의 `rho*t`, `rho*t^3/12` 분리는
|
||
좋은 독립 oracle지만, 곡면의 thickness-dependent Jacobian까지 대체하는 일반식은 아니다.
|
||
근거: 상세 문서 `S01`, `R01`.
|
||
2. Consistent에서 얻은 물리 질량 moment를 node block으로 lumping하는 방향은
|
||
nonnegative partition of unity와 tensor 변환으로 설명할 수 있다. 전역 scalar
|
||
row-sum 또는 절댓값 row-sum을 회전 block에 그대로 적용하면 좌표 불변성과 drilling
|
||
nullspace를 잃을 수 있다. Lumping이 consistent의 모든 kinetic energy 또는 spectrum을
|
||
보존한다는 주장은 하지 않는다. 근거: `S02`, `R02`의 사실/유도 구분.
|
||
3. Homogeneous global constraint를 적용한 실제 질량의 positive/null space에서 massless
|
||
좌표를 처리해야 한다. Massless block의 강성이 가역이면 Schur complement는 선택된
|
||
lumped 질량의 유한 spectrum을 정확히 보존한다. `UR3`를 무조건 삭제하거나 인공
|
||
drilling mass를 더할 근거는 없다. 기존 공통 nodal director와 안정화 구조로 decoupling을
|
||
증명하면 일반적인 dense condensation을 피할 여지가 있다. 근거: `S03`, `R03`.
|
||
4. 설치된 oneMKL header에서 `feastinit`, `dfeast_scsrgv`를 확인했다. 공식 generalized
|
||
FEAST는 mass SPD를 요구하고 CSR interval count `fpm[49]`를 제공한다. 이 기능과
|
||
사전 spectral bound를 이용하면 bounded interval 정책의 completeness evidence를
|
||
구성할 수 있다. `info=0`만으로 최저 요청 모드가 모두 있다는 결론은 부족하다.
|
||
근거: `S04`~`S08`, `R04`.
|
||
5. Reference의 Lanczos/SIM은 source 옵션이고 FESA backend는 승인된 FEAST이다.
|
||
Acoustic-free 모델에서만 `ACOUSTIC COUPLING=ON`을 무해하게 대응할 근거가 있다.
|
||
`NORMALIZATION=MASS`는 실제 사용된 lumped 질량에서 유지한다. TXT의 각 mode는
|
||
modal frame identity에 대응하므로 family는 공통 same-frame 규칙과 함께 확정해야 한다.
|
||
근거: `S09`~`S11`, `R05`.
|
||
6. `NR-MFE-001`의 기존 대각 최솟값 규칙은 r2 승인 범위에서 대체한다. 물리 접평면
|
||
회전 block의 trace 또는 고유값으로 만든 scalar는 직교 기저 변화에 불변인 후보다.
|
||
초기 reference에서만 계수를 계산·고정하고 기존 drilling map/potential을 유지하면
|
||
nonlinear 미분 구조와 linear massless decoupling을 보존할 조건을 명시할 수 있다.
|
||
최종 계수식 채택과 반례 해소 판정은 후속 owner 소유다. 근거: `S12`, `S13`, `P03`,
|
||
[r2 delta와 후보](research.md#research-evidence--r07--r2-stabilization-근거와-영향).
|
||
|
||
사용자 후속 확정대로 요청 mode 개수의 authority는 `.inp`의 `*FREQUENCY` data다.
|
||
현재 값은 10이며 reference row 수나 FEAST 내부 count로 요청수를 추론하지 않는다.
|
||
|
||
<a id="research--requirement-coverage"></a>
|
||
### Requirement coverage
|
||
|
||
ID는 모두 `FEM-REQ-MITC4-EIGEN-` 접두사를 가진다. 연구 외 행도 owner를 명시해 누락과
|
||
완료를 구분한다. 아래 표는 requirements matrix를 대체하지 않는다.
|
||
|
||
| IDs | 필요한 근거와 적용 범위 | 후속 owner |
|
||
| --- | --- | --- |
|
||
| `001`, `015`, `016` | `S09`, `S10`, `R05`: 무감쇠 원형상 procedure와 관찰 가능한 옵션; fail-closed exact allowlist | Formulation, I/O |
|
||
| `002`, `004` | `S01`, `P01`, `R01/R07`: 기존 물리 kernel/director/geometry/5-to-6 DOF 보존; numerical scale만 개선 | Formulation |
|
||
| `003` | `S01`, `R01`: 질량의 양의 density 의존성; syntax·material 연결은 I/O 검증 대상 | I/O |
|
||
| `005`, `006`, `026` | `S01`, `S02`, `R01`, `R02`: consistent→lumped 유도 후보, 물리 rotary inertia, drilling nullspace | Formulation, NR |
|
||
| `007`, `008` | `S03`, `P01`, `R03/R07`: 개선된 constrained pencil의 유한 spectrum 보존 조건; 결정적 조립은 프로젝트 계약 | Formulation, Planning |
|
||
| `009`, `010`, `011`, `012` | `S04`~`S08`, `R04`: 실제 FEAST·count·capacity·정수/storage·failure·반복/영 모드 완전성 | Formulation, NR, Planning |
|
||
| `013`, `014`, `018` | `S01`, `S03`, `S08`, `R06/R07`: 같은 lumped M의 residual/Gram·불변식·독립 oracle; NR 반례의 complete K/eigen 검증 필수 | Formulation, NR, Physics |
|
||
| `017`, `019` | `S10`, `S11`, `P01`: quantity/source identity 및 candidate 보존. 영속 schema는 연구에서 정의하지 않음 | I/O |
|
||
| `020`, `021`, `022` | `S10`, `S11`, `P02`, `R05`: Value-only, mode/frame, multiplicity; 정책 변경 없음 | NR, I/O |
|
||
| `023`, `024`, `025` | `P01`~`P03`, `R07`: TDD·MSVC·기존 linear/nonlinear 정적 회귀·closure는 후속 실행 evidence | Planning, Implementation, Physics, Release |
|
||
| `027` | `S12`, `S13`, `P03`, `R07`: basis-invariant scalar 후보, 초기 고정 scale·objective potential 및 positive/null 역할 보존 조건 | Formulation, NR |
|
||
|
||
<a id="research--handoff와-제한"></a>
|
||
### Handoff와 제한
|
||
|
||
`MFE-OQ-003`의 개선안 승인으로 기존 계약 충돌의 범위 선택은 해결되었다. 새 중요한
|
||
사용자 미결정은 발견하지 않았다. 승인된
|
||
**consistent → lumped → FEAST**는 고정이며 질량 방식 재선택이나 tolerance 변경을 제안하지 않는다.
|
||
다음 항목은 연구 누락이 아니라 해당 stage에서 확정할 계약이다.
|
||
|
||
- Formulation: `R01`~`R03`의 질량 적분·좌표 block lumping·보존 범위·constraint/nullspace
|
||
축소와 복원, `R04`의 finite interval/count/termination policy 및 `R07`의 개선 scale·
|
||
linear/nonlinear 적용 경계·positive inventory를 수식으로 확정한다.
|
||
- NR: 적분 정확도·rank/작은 차원·mass SPD·scaled modal residual/Gram 및
|
||
`R06/R07` portfolio의 기준, reference mode/frame/family와 blocking 판정을 확정한다.
|
||
Partial BC의 NR 반례를 full-free/full-clamp 검증으로 대체하지 않는다.
|
||
- I/O: 원본 `.inp` 옵션의 최소 mapping·진단, density와 결과 schema·source identity를 확정한다.
|
||
- Planning/Implementation: FEAST count·zero/cluster·small-N 실제 runtime와 integer/storage
|
||
변환을 검증한다. Header의 존재는 runtime 통과 evidence가 아니다.
|
||
|
||
이번 r2에서는 연구 문서 두 개만 갱신했다. 기존 `S01`~`S11` 근거와 reference hash는
|
||
영향 검토 후 r1 조사 이력으로 보존했으며 원본 reference를 다시 읽거나 수치 재실행하지 않았다.
|
||
새 primary 근거 두 그룹과 기존 static 계약 근거를 추가했다. 명령과 결과는 상세 문서 끝에 있다.
|
||
C++ build/test, Harness, 외부 solver와 FESA reference 수치 비교는 stage 범위 밖이므로
|
||
미실행이며 통과로 보고하지 않는다.
|
||
|
||
<a id="research-evidence"></a>
|
||
|
||
<a id="research-evidence--mitc4-질량feast-근거와-downstream-검증-후보"></a>
|
||
## MITC4 질량·FEAST 근거와 downstream 검증 후보
|
||
|
||
- Feature ID: `mitc4-shell-feast-eigen`
|
||
- Input contract revision: `r2`
|
||
- 기본 보고서: [research.md](research.md#research)
|
||
- Web access date: `2026-09-06`
|
||
|
||
`Fact`는 출처에서 확인한 내용, `Derivation/Inference`는 그 근거를 승인된 FESA에 적용한
|
||
연구 판단, `Candidate`는 Formulation/NR가 확정할 항목이다. 이 문서는 최종 수식·API·schema·
|
||
tolerance나 benchmark acceptance를 승인하지 않는다.
|
||
|
||
<a id="research-evidence--source-inventory"></a>
|
||
### Source inventory
|
||
|
||
모든 외부 source는 원 논문 또는 공식 문서다. `P`는 프로젝트 계약이며 독립 검증 근거가 아니다.
|
||
공식 Abaqus 자료는 공개 입력·출력 의미만 설명한다.
|
||
|
||
| ID | Source identity / stable locator | 신뢰도·적용·한계 |
|
||
| --- | --- | --- |
|
||
| S01 | Dvorkin & Bathe, *A Continuum Mechanics Based Four-Node Shell Element for General Non-linear Analysis*, Engineering Computations 1 (1984), 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), Eq.(1),(2), Eq.(25) 직후 및 Fig.7/Tables 3–4; [local transcription](../reference-papers/MITC4/AContinuumMechanicsBasedFourNodeShell/AContinuumMechanicsBasedFourNodeShell_001.md) | 1차 운동학·5 DOF·consistent-mass vibration 예제. Local OCR의 도표값은 검증 없이 acceptance 값으로 채택하지 않음. 비선형·가변두께 범위를 새로 허용하지 않음 |
|
||
| S02 | Voet, Sande & Buffa, *A mathematical theory for mass lumping and its generalization with applications to isogeometric analysis*, CMAME 410 (2023), 116033, DOI `10.1016/j.cma.2023.116033`; [author preprint v2](https://arxiv.org/html/2212.03614v2), §1, Definition 3.7, Remark 3.8, Lemma 3.19, §3.3 | 원 연구의 row-sum·positivity·Loewner 근거. 일반 scalar algebra를 회전 tensor에 그대로 옮기는 것은 입증되지 않음 |
|
||
| S03 | Bathe & Wilson, *Solution methods for eigenvalue problems in structural mechanics*, IJNME 6 (1973), 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); [publisher record](https://onlinelibrary.wiley.com/doi/pdf/10.1002/nme.1620060207) | 원 연구의 massless elimination과 fill/storage 한계. 임의 massive DOF를 제거하는 근사 Guyan reduction의 정확성을 주장하지 않음 |
|
||
| S04 | Intel oneMKL C Developer Reference, 2026.0 URL edition, 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` 및 sparse interface 설명 | 공식 admissibility·PARDISO 사용. 설치 runtime와 같은 version string이라는 가정 없음 |
|
||
| S05 | 같은 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), `Syntax`, `Input/Output Parameters`; [Matrix Storage](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2026-0/matrix-storage.html) | 공식 signature·storage·capacity·결과 의미. `emin≤emax` 본문은 S07의 strict validation과 함께 읽음 |
|
||
| S06 | 같은 edition, [Extended Eigensolver 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` 표 | 공식 count/check/iteration 옵션. Standalone FEAST 다른 버전의 fpm 번호를 대입하지 않음 |
|
||
| S07 | 같은 edition, [Extended Eigensolver Output Details](https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2026-0/extended-eigensolver-output-details.html), return-code 표와 `info=1` 주의 | 공식 오류·구간 폭·endpoint 위험. Warning은 Feature 성공으로 자동 승격하지 않음 |
|
||
| S08 | E. Polizzi, *Density-Matrix-Based Algorithm for Solving Eigenvalue Problems*, Physical Review B 79 (2009), 115112, DOI `10.1103/PhysRevB.79.115112`; [author preprint](https://arxiv.org/pdf/0901.2665), §II.A Eqs.(6)–(9), §II.B | 원 FEAST의 contour/Rayleigh–Ritz와 B-orthonormality. MKL 옵션·상태 정의는 S05–S07 우선 |
|
||
| S09 | Abaqus 2025 [*FREQUENCY](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEKEYRefMap/simakey-r-frequency.htm), `Optional parameters`, Lanczos data line | 공식 count·bounds·SIM·normalization·acoustic semantics. FESA가 source Lanczos를 구현한다는 근거가 아님 |
|
||
| S10 | Abaqus 2025 [Natural Frequency Extraction](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEANLRefMap/simaanl-c-freqextraction.htm), `Eigenvalue Extraction`, `Normalization`, `Initial Conditions`, `Output` | 공식 `omega²`·generalized mass·base state. Abaqus 내부 질량 정식화에 대한 추론 금지 |
|
||
| S11 | Abaqus 2025 [OdbFrame object](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEKERRefMap/simaker-c-odbframepyc.htm), modal constructor와 members; [Mode Domain Output](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEOUTRefMap/simaout-c-dboutput-frequency.htm), `Controlling Output Frequency in a Mode Domain Analysis` | 공식 mode/frame 의미. TXT에 없는 step을 임의 생성하는 권한이 아님 |
|
||
| S12 | LAPACK 3.12.1, [DLAEV2 original source/documentation](https://www.netlib.org/lapack/explore-html/d4/d5a/dlaev2_8f_source.html), source lines 31–39 (`Purpose`), 102–113 (`Further Details`); authors Univ. Tennessee / UC Berkeley / Colorado Denver / NAG | 공식 2×2 대칭 eigendecomposition과 작은 고유값의 determinant cancellation 한계. FESA scale 선정 규칙이나 새 vendor 호출 의무를 제공하지 않음 |
|
||
| S13 | Müller & Bischoff, *A Consistent Finite Element Formulation of the Geometrically Non-linear Reissner-Mindlin Shell Model*, ACME 29 (2022), 3387–3434, [updated original article](https://link.springer.com/article/10.1007/s11831-021-09702-7), Abstract, §2, §§6.1–6.2; corrections [April 2022](https://link.springer.com/article/10.1007/s11831-022-09725-8), [November 2022](https://link.springer.com/article/10.1007/s11831-022-09832-6) | 자체 shell 정식화의 potential 선형화·objectivity 근거만 사용. Review로 분류된 논문의 자체 유도 부분이며 문헌 요약을 1차 근거로 대용하지 않음. FESA의 MITC4·drilling 수식과 동일하지 않음 |
|
||
| P01 | [기존 MITC4 formulation](../linear-static-mitc4-shell/formulation.md), §§5,8,9,12,17; [실제 kernel](../../src/fesa/elements/mitc4_shell.cpp), `PhysicalTransformation20`, `DrillingTransformation4`, `EvaluateStiffness`, `GeometryAt`; [ARCHITECTURE](../ARCHITECTURE.md) | 현재 FESA 기하·부호·소유권 계약; 옛 scale 공식은 r2 대체 대상. Legacy research의 오래된 tolerance/승인 절차는 이번 계약에 재사용하지 않음 |
|
||
| P02 | [requirements r2](requirements.md#requirements), [원본 reference evidence·승인 delta](requirements.md#requirements-evidence), [공통 TOLERANCE](../TOLERANCE.md), [ADR](ADR.md) | 승인된 사용자 흐름과 acceptance boundary. 수치 통과 자체의 evidence가 아님 |
|
||
| P03 | [기존 nonlinear formulation §§10.2–10.4](../nonlinear-static-newton-raphson/formulation.md#103-fixed-scale-and-potential), [기존 linear requirements 034/056](../linear-static-mitc4-shell/requirements.md), [NR-MFE-001 반례](numerical-review.md#numerical-review-evidence--nr-mfe-001-직접-계산-반례), [r2 static 회귀 계약](requirements.md#requirements-evidence--r2-승인-범위와-정적-재검증) | 기존 initial-fixed scale·objective potential·미분 및 r2 대체/회귀 경계. NR 반례를 재실행한 evidence로 주장하지 않음 |
|
||
|
||
Hinton–Rock–Zienkiewicz (1976), DOI `10.1002/eqe.4290040305`의
|
||
[publisher abstract](https://onlinelibrary.wiley.com/doi/10.1002/eqe.4290040305)는 확인했으나
|
||
본문을 확보하지 않아 HRZ의 shell-specific 수식을 근거로 채택하지 않았다.
|
||
NASA SP-160은 optional plate benchmark 탐색에서 발견했으나 이번 포트폴리오는 S01 및
|
||
직접 검산 가능한 oracle로 충분하므로 필수 artifact나 새 acceptance 요구로 추가하지 않았다.
|
||
Configured FEM vault는 이번 요청의 지정 evidence source가 아니며, 기존 wiki/연구 요약은
|
||
탐색에만 참고하고 핵심 주장을 위 1차 source에 연결했다.
|
||
|
||
<a id="research-evidence--r01--consistent-physical-mass와-적분"></a>
|
||
### R01 — Consistent physical mass와 적분
|
||
|
||
**Fact, S01/P01:** 기존 보간은 `u = sum Ni(ui + z*(theta_i cross d_i))`,
|
||
`z=t*zeta/2`이며 director-parallel rotation은 입자 속도에 기여하지 않는다.
|
||
원 논문의 elastic example은 surface `2×2`, thickness 2-point Gauss 및 consistent-mass
|
||
주파수 분석을 사용한다. 이는 임의 geometry의 mass 적분이 정확하다는 증명은 아니다.
|
||
|
||
**Derivation:** `T=1/2 integral rho*|u_dot|² dV`에서 `M_C=integral rho*H^T H dV`가
|
||
따른다. Geometry는 기존 `X=sum Ni(Xi+z*di)`와 같은 `J=det(dX/dnatural)`를 사용한다.
|
||
양의 quadrature weight·density·유효 J에서는 대칭 PSD와 drilling null action이 직접 따른다.
|
||
MITC의 assumed shear는 strain 보간이므로 velocity 보간을 바꾸거나 shear factor `5/6`를
|
||
물리 질량에 곱하는 이유가 되지 않는다.
|
||
|
||
**평판 oracle:** 평행 director·centered flat section이면 병진 scalar block은
|
||
`rho*t*integral Ni*Nj dA`, rotary block은 `rho*t³/12*integral Ni*Nj dA`와 tangent
|
||
변환의 곱이며 translation–rotation coupling은 0이다. 축정렬 직사각형 면적 A에서는
|
||
scalar consistent block이 `rho*t*A/36`에 다음 행렬을 곱한 것과 같다.
|
||
|
||
```text
|
||
4 2 1 2
|
||
2 4 2 1
|
||
1 2 4 2
|
||
2 1 2 4
|
||
```
|
||
|
||
Rotary oracle의 scalar 배율은 위 병진 배율의 `t²/12`다. 이는 bilinear 형상함수의 직접
|
||
다항식 적분 결과이며 구현 함수를 다시 호출하는 테스트와 구분한다.
|
||
|
||
**Candidate/한계:** 곡면에서는 J가 zeta에 의존하여 odd thickness moment와
|
||
translation–rotation coupling이 남을 수 있다. Centered section만으로 이를 0으로 두지 않는다.
|
||
현재 trilinear geometry의 J 및 H 다항식 차수를 확인해 충분한 적분을 선택할 수 있다.
|
||
보수적인 tensor-product 3-point 후보는 각 좌표의 degree≤4 mass integrand를 적분하지만,
|
||
정확한 차수·기하 검증 위치·채택 quadrature는 Formulation/NR가 증명한다. 기존 stiffness
|
||
quadrature나 기존 geometry 허용 범위를 연구 단계에서 변경하지 않는다.
|
||
|
||
<a id="research-evidence--r02--consistent에서-유도하는-좌표-일관적-lumping"></a>
|
||
### R02 — Consistent에서 유도하는 좌표 일관적 lumping
|
||
|
||
**Fact, S02:** Row-sum, nodal quadrature, diagonal scaling은 일반적으로 서로 다른 근사다.
|
||
Nonnegative partition of unity는 scalar row-sum의 positivity를 설명한다. 논문의
|
||
absolute-row-sum operator는 일반 행렬의 positivity를 확보하지만 물리 total mass나
|
||
회전 nullspace를 보존하는 shell-specific theorem은 아니다.
|
||
|
||
**Derivation — 피해야 할 적용:** global rotary tensor는 `I-di*di^T`와 다른 director
|
||
사이의 cross block을 포함한다. Scalar `diag(M*ones)`는 좌표 회전과 commute하지 않는다.
|
||
예를 들어 단위 director `d=(1,1,1)/sqrt(3)`의 `P=I-dd^T`는 `P*ones=0`이지만
|
||
rank는 2다. Row-sum은 두 물리 관성을 모두 없애며 absolute row-sum은 drilling에
|
||
관성을 더한다. 혼합 translation/rotation 행의 무차별 합은 단위도 섞는다.
|
||
|
||
**Candidate — scalar moment를 통한 node block:** Consistent의 구성 moment
|
||
`Ck_ij=integral rho*Ni*Nj*z^k dV`, `k=0,1,2`를 식별하고 해당 물리 scalar moment에서
|
||
row-sum한 뒤 각 node의 director tangent tensor로 재구성하는 방법을 검토할 수 있다.
|
||
이는 consistent 결과와의 유도 관계를 증명해야 하며, 별도 unrelated diagonal을 생성하는
|
||
우회 경로로 쓰지 않는다. Full consistent block에서 moment를 추출하거나 계산 중 동일
|
||
moment를 보존하는 구체적 방식은 Formulation 소유다.
|
||
|
||
`sum Nj=1` 때문에 이 후보는 node별 `integral rho*Ni*Gi(z)^T Gi(z) dV` 형태로
|
||
설명된다. 여기서 `Gi(z)`는 그 node의 병진과 director 변화로 particle velocity를 만드는
|
||
map이다. 따라서 양의 measure에서 physical block PSD, director nullspace, tensor
|
||
congruence와 총 병진 질량 보존을 독립적으로 검산할 수 있다. Flat case에서는
|
||
`m_i=sum_j C0_ij`, 두 tangent inertia `m_i*t²/12`, drilling 0으로 단순화된다.
|
||
|
||
**한계:** 곡면의 nodal rotational frames를 component별로 직접 더하지 않는다.
|
||
Node block은 global 좌표에서 diagonal일 필요가 없다. Translation–rotation moment를
|
||
보존하면 6×6 block에 coupling이 있을 수 있다. 이 후보의 positivity와 각 inertia/centroid
|
||
보존 관계는 Formulation에서 완성하고 NR가 독립 검토해야 한다. Uniform translation
|
||
energy는 보존하지만 일반 회전의 orbital inertia 및 모든 속도장의 consistent energy는
|
||
보존한다고 가정하지 않는다. 물리 node velocity의 convexity로 설명 가능한 에너지 차이와
|
||
refinement 거동을 검증 후보로 삼을 수 있으며, Abaqus 내부 lumping 동일성을 주장하지 않는다.
|
||
|
||
<a id="research-evidence--r03--massless-좌표-제약과-유한-spectrum"></a>
|
||
### R03 — Massless 좌표, 제약과 유한 spectrum
|
||
|
||
**Fact, S03:** Massless 좌표를 분리하여 mass가 `diag(Mp,0)`, `Mp` SPD이고 대응
|
||
강성 `Kzz`가 가역이면 `Kr=Kpp-Kpz*Kzz^-1*Kzp`와 `Mp`의 문제로 축소하며,
|
||
massless 성분은 `z=-Kzz^-1*Kzp*p`로 복원한다. 이 경우 정적 제거는 massless row의
|
||
정확한 식이다. 축소 stiffness는 일반적으로 dense가 될 수 있다.
|
||
|
||
**Inference, P01에 적용:** 먼저 원래 global homogeneous BC의 free injection C로
|
||
`Kf=C^T K C`, `Mf=C^T M_L C`를 만들고, 그 공간에서 positive/null basis를 정의한다.
|
||
Director가 global axis와 기울어져 있으면 `UR3=drill`은 성립하지 않는다. 일부 global
|
||
회전을 고정한 node에서는 원래 drill 방향 전체가 free space에 들어가지 않을 수 있으므로
|
||
실제 `Mf`가 full rank가 될 수 있다. 이때 물리 질량이 있는 자유도를 제거해서는 안 된다.
|
||
|
||
P01의 공통 nodal director와 `Kphys=Tphys^T K20 Tphys`,
|
||
`Kdrill=Td^T kd I Td` 때문에 massless 방향의 decoupling을 algebraically 증명할
|
||
가능성이 있다. 증명된 경우 node별 작은 basis로 projection하여 sparsity를 유지할 수 있다.
|
||
단순히 coupling을 작다고 버리는 것은 그 증명이 아니다. Partial global constraints로
|
||
finite space에 남는 stabilization contribution도 보존한다. r2의 massless 처리는
|
||
**개선된 constrained stabilized K와 선택된 lumped M의 finite spectrum**에 대한 동등성이다.
|
||
Unstabilized 다른 shell formulation이나 consistent spectrum과의 동등성이 아니다.
|
||
|
||
**Candidate 검증:** 비축정렬 director, partially constrained rotation, constraint-free
|
||
shell의 6 physical rigid motions, `Kpz!=0`인 작은 manufactured pencil로 축소/복원과
|
||
full free residual을 확인한다. Physical rigid rotation의 nodal UR은 기존 계약의 tangent
|
||
projection을 사용한다. Null block이 비가역인 경우 generic inverse/pseudoinverse로
|
||
우회하지 않는다. 공통 K/M nullspace는 regular finite-spectrum 문제와 구분해 진단한다.
|
||
물리 rank 0, request>rank, nullspace가 없는 경우를 각각 정의한다.
|
||
|
||
일반 dense basis/Schur를 채택하면 `O(n²)` storage와 factorization fill을 평가해야 한다.
|
||
Reference의 25×25 interior nodes는 flat full clamp에서 free DOF 3750,
|
||
massive physical dimension 3125로 예상되며, 3125² double 한 행렬만 약 78.1 MB다.
|
||
이는 topology에 따른 계산 추정이고 실제 rank/runtime 측정이 아니다. FEAST workspace와
|
||
complex shifted factorization을 더해야 하므로 한 행렬 크기로 memory feasibility를 주장하지 않는다.
|
||
|
||
<a id="research-evidence--r04--onemkl-feast-api와-completeness-근거"></a>
|
||
### R04 — oneMKL FEAST API와 completeness 근거
|
||
|
||
**설치 관찰:** `mkl/2026.1/include/mkl_solvers_ee.h` lines 33,87에 `feastinit`,
|
||
`dfeast_scsrgv`가 있다. `mkl_version.h`는 major `2026`, minor `0`, update `1`,
|
||
build date `20260612`, `INTEL_MKL_VERSION=20260100`이다. Directory `2026.1`과
|
||
header version 표기를 임의로 통일하지 않는다. 실제 linked runtime는 Implementation이 기록한다.
|
||
`mkl_types.h`의 `MKL_INT`는 LP64에서 `int`, `MKL_ILP64`에서 64-bit다. N, nnz+1,
|
||
row/column index와 N×m0 allocation을 checked conversion해야 하며 vendor type은 adapter 내부다.
|
||
|
||
**Fact, S04/S05:** Real symmetric generalized `A*x=lambda*B*x`에서 B는 SPD여야 한다.
|
||
`dfeast_scsrgv`는 A/B 각각 values·row pointer·column index를 받으며 같은 storage family를
|
||
사용한다. `uplo=U/L/F`, `n>0`, `0<m0<=n`, `m0>=interval multiplicity count`다.
|
||
`fpm`은 128개 `MKL_INT`; `e/res`는 m0, eigenvectors는 N×m0의 column storage로
|
||
준비하고 첫 m columns만 소비한다. Documented CSR은 row pointer terminal `nnz+1`인
|
||
1-based convention으로 대응한다. A/B sparsity pattern은 같을 필요가 없다. 내부 0-based
|
||
CSR을 인덱스 변환 없이 넘기지 않는다. `epsout`은 trace 변화량이고 개별 residual을 대신하지 않는다.
|
||
|
||
**Fact, S06 — C index 표:**
|
||
|
||
| Parameter | 문서 의미 / 연구 적용 |
|
||
| --- | --- |
|
||
| `feastinit(fpm)` | 호출 전 초기화; 다른 FEAST 배포판의 설정 배열을 복사하지 않음 |
|
||
| `fpm[1]` | contour points; 허용된 값만 사용 |
|
||
| `fpm[2]`, `[3]` | double precision stopping exponent, refinement loop bound; 값은 NR/계약에서 고정 |
|
||
| `fpm[4]` | 0=generated initial subspace, 1=user subspace; 재현성과 projection rank 검증 필요 |
|
||
| `fpm[5]` | 0=residual stopping, 1=trace stopping; zero mode는 독립 scale-aware residual 필수 |
|
||
| `fpm[13]` | 1은 한 contour의 subspace만 반환; 완료 eigenpairs로 소비하지 않음 |
|
||
| `fpm[26]`, `[27]` | CSR validity, B SPD check 옵션 |
|
||
| `fpm[49]` | CSR interval eigenvalue count를 m0에 반환하고 flag를 0으로 재설정; count와 solve는 구분 |
|
||
| `fpm[63]` 및 `[64..127]` | PARDISO user iparm 적용 여부 및 매핑; 후반부는 output도 되므로 call 간 변경 고려 |
|
||
|
||
**Fact, S07:** `info=0` successful; `1` empty interval/검색 실패 가능,
|
||
`2` nonconvergence, `3` insufficient subspace, `4` subspace-only이다.
|
||
`-1/-2` allocation/inner solver, `-3/-4` reduced solver/B-not-SPD,
|
||
`-5` count failure(구간 끝이 eigenvalue 또는 근접할 수 있음), `200/201/202`는
|
||
interval/subspace/N 오류다. `100+i`는 `fpm[i-1]` 오류다.
|
||
S05 본문은 `emin<=emax`로 쓰지만 명시적인 `200` 검증은 `emin>=emax`를 거부하므로
|
||
실제 계약은 strict `emin<emax`로 설정할 수 있다. 이것은 사용자 physics 결정이 아니다.
|
||
매우 넓은 구간 안의 작은 cluster를 놓칠 수 있다는 공식 주의가 있으므로 빈 반환을 곧
|
||
없는 spectrum으로 단정하지 않는다.
|
||
|
||
**Candidate bounded policy rationale:** SPD reduction/whitening 뒤 차원이 일관된 spectral
|
||
bound(예: 대칭 표준 문제의 Gershgorin bound)를 유도하면 전체 spectrum 밖의 유한 하한과
|
||
상한을 얻을 수 있다. Reference 값이나 hardcoded frequency로 구간을 정하지 않는다.
|
||
Zero를 포함하는 하한을 두고 interval count를 통해 낮은 순서의 requested N을 덮는 상한을
|
||
찾되, endpoint collision·overflow·count/solve mismatch와 시도 수를 제한한다. Count가
|
||
cluster 전체를 포함하면 m0가 requested N보다 커질 수 있으며 반드시 multiplicity를
|
||
수용한다. Sort 후 필요한 첫 N을 출력하더라도 원래 계산 multiplicity와 pairing을 유지한다.
|
||
`m0=N`이 충분하다는 가정, 매번 상한만 무한히 늘리는 정책, count 성공을 eigenpair 성공으로
|
||
취급하는 정책은 근거가 없다. Final bounds·성장/축소·cluster tie·subspace/seed·실패 정책은
|
||
Formulation/NR 소유이고 small N 및 N=physical rank도 FEAST 실제 runtime로 검증한다.
|
||
|
||
Intel S06은 `fpm[49]` 결과를 total number로 기술하며 stochastic estimate라고 설명하지
|
||
않는다. 그렇더라도 이 문서만으로 floating-point inertia/count의 모든 조건에서의 정확성이나
|
||
전체 algorithm의 completeness를 증명했다고 주장하지 않는다. S07의 endpoint/count 실패와
|
||
작은 독립 spectrum 검증을 유지한다. 다른 standalone FEAST 버전의 stochastic-count
|
||
옵션과 혼동하지 않는다. 요청 N의 외부 authority는 사용자 확정대로 `.inp` data이며
|
||
내부 count는 interval/subspace를 정하는 evidence다. TXT 행수나 count로 N을 바꾸거나
|
||
새 사용자 interval/count API를 만들지 않는다.
|
||
|
||
**Fact, S08 / 적용:** FEAST의 Rayleigh–Ritz 식은 B-orthonormal reduced vectors에서
|
||
`X^T B X=I`를 준다. 내부 벡터는 같은 lumped M으로 검증한다. Repeated eigenspace의
|
||
개별 방향과 sign은 유일하지 않으므로 vector component exact equality를 acceptance로
|
||
추가하지 않는다. Count/completeness와 residual/Gram은 서로 대체하지 않는다.
|
||
|
||
<a id="research-evidence--r05--reference의-관찰-가능한-의미와-family"></a>
|
||
### R05 — Reference의 관찰 가능한 의미와 family
|
||
|
||
**Fact, S09/S10:** `*FREQUENCY`의 첫 값은 requested count다. Lanczos data line의
|
||
blank min/max는 별도 bound를 지정하지 않으며, 뒤 shift와 block controls의 공란을 0 입력으로
|
||
오인하지 않는다. `SIM`은 source architecture 설정이고 `NORMALIZATION=MASS`는
|
||
generalized mass 1이다. Acoustic coupling ON은 acoustic/structural coupled model에
|
||
작용한다. 적용 대상 acoustic 요소·ASI·coupling이 없는 현재 input의 옵션은 무해하게
|
||
mapping할 근거가 있으며, 실제 acoustic 모델은 승인 subset 밖이다.
|
||
|
||
**Inference/P02:** 알고리즘 지정의 FESA 해석은 source Lanczos 보존 + actual backend
|
||
FEAST이다. SIM을 FESA backend 기능으로 주장하지 않고 명시된 무해한 조합만 I/O가
|
||
진단 정책으로 고정한다. 원본의 output/restart 요청을 읽을 때에도 새 modal stress/reaction
|
||
지원으로 확대하지 않는다. 실제 prior step, preload, damping, nonzero prescribed state를
|
||
삭제하여 현재 subset처럼 실행하는 근거는 없다.
|
||
|
||
**Fact/관찰:** S10은 `lambda=omega²`와 cycles/time frequency를 구분한다. S11은
|
||
modal frame의 mode member와 mode-domain output을 정의한다. 원본 TXT는 `Frame: Mode`
|
||
1~10과 Value를 포함하고 input에는 단일 `Step-2`만 있다. 따라서 unique step + source
|
||
mode mapping이 가능하며 Freq 반올림으로 Value를 다시 계산하지 않는다.
|
||
|
||
**NR handoff:** 공통 TOLERANCE는 같은 step/frame만 family로 묶는다. 원본에 각각의 modal
|
||
frame이 있는 점을 유지하여 mode별 scalar family를 정의하는 방향을 검토한다. 단일 HDF5
|
||
table에 저장했다는 이유로 다른 source mode/frame을 하나의 family로 모으지 않는다.
|
||
Singleton family에서는 공통 RMS 규칙도 그대로 적용하며 scalar라는 이유로 생략하지 않는다.
|
||
최종 family 이름·identity·blocking 및 exact mapping은 NR/I/O가 고정한다.
|
||
Repeated Value는 서로 다른 mode identity로 보존하며 source missing/extra/duplicate/nonfinite
|
||
검사 후 공통 정책을 적용한다. Displayed repeated 값으로 실제 exact degeneracy를 단정하거나
|
||
mode shape matching으로 외부 acceptance를 넓히지 않는다.
|
||
|
||
<a id="research-evidence--r06--독립-verification-portfolio-후보"></a>
|
||
### R06 — 독립 verification portfolio 후보
|
||
|
||
각 case의 구체적 구성·수치 기준은 NR가 정한다. 새 eigen external reference는 지정 Value
|
||
10개뿐이며, r2에 승인된 기존 static 회귀는 R07과 Requirement 024의 기존 계약을 따른다.
|
||
|
||
| Candidate | 잡아내는 오류 / 독립 기대값 | 한계 |
|
||
| --- | --- | --- |
|
||
| 직사각형 single-element mass | R01 polynomial oracle, 3 translations total `rho*A*t`, 2 rotary inertia, null drilling | 곡면 적분·semantic 연결은 검증하지 않음 |
|
||
| 곡면/왜곡 요소의 independent velocity integration | 직접 particle kinetic energy와 consistent quadratic form, R02 derived relation/양의 node block | 동일 production H/J 코드를 재호출하는 oracle는 독립성이 부족 |
|
||
| Rigid/coordinate tests | 기존 tangent rigid motion의 zero stiffness; geometry/director와 개선 scale을 독립 재계산한 complete K·두 질량의 congruence 및 eigenvalue invariant | NR-MFE-001의 같은 물리 partial BC 필수; old kd를 고정한 단순 tensor 변환이나 full-free/full-clamp만으로 대체하지 않음. 일반 MPC는 추가하지 않음 |
|
||
| Density scaling | 두 mass가 density 배율 c에 비례, 선택된 eigenvalues가 1/c, mass-normalized vector magnitude가 1/sqrt(c) | 다른 density field의 material mapping은 별도 양성/음성 test |
|
||
| 작은 manufactured singular pencil | R03 식을 손으로 계산하여 exact finite eigenvalues·복원 residual, partial global constraint와 rank case | Element/mass 조립 correctness는 별도 검증 |
|
||
| 작은 diagonal/rotated SPD pencil | FEAST N=1/2, repeated/clustered/zero/negative case, request=rank, count/m0/interval edge 및 실패 진단 | 직접 hand matrix는 전체 procedure/reference를 대신하지 않음 |
|
||
| Modal residual / Gram / energy | Free-space `Kphi-lambda*M_L*phi`, `Phi^T*M_L*Phi=I`, `phi^T*K*phi=lambda`와 constraint 복원 | 작은 residual만으로 최저 모드 completeness를 보장하지 못함 |
|
||
| Simply-supported plate analytical limit | S01 Fig.7/Table4의 plate frequency 사례 또는 `lambda=(D/(rho*t))*((m*pi/a)^2+(n*pi/b)^2)^2`의 thin-plate Navier limit | 마지막 식은 직접 thin-plate PDE로 유도·검산할 후보; rotary/shear를 포함한 유한 두께 shell의 exact oracle로 쓰지 않음 |
|
||
| 지정 clamped plate reference | 원본 `.inp`와 TXT Value의 순서·multiplicity·family 비교; square-symmetry cluster 진단 | 비교만으로 mass·mode shape·drilling·내부 알고리즘의 correctness를 주장하지 못함 |
|
||
|
||
Modal physics는 무하중 정적 `Kphi=0`나 정적 reaction balance를 모든 eigenvector에
|
||
요구하지 않는다. Inertia와 elastic restoring force의 균형인 free residual을 검사한다.
|
||
Dimensional translation/rotation 차이는 Formulation의 congruent scaling으로 처리하고
|
||
zero mode의 residual denominator와 rank threshold는 NR가 정한다. 두께 변경에서는
|
||
membrane, bending, shear, rotary inertia가 서로 다르게 변하므로 density처럼 모든 mode에
|
||
단일 thickness power law를 강제하지 않는다.
|
||
|
||
<a id="research-evidence--r07--r2-stabilization-근거와-영향"></a>
|
||
### R07 — r2 stabilization 근거와 영향
|
||
|
||
<a id="research-evidence--입력-delta와-보존-근거"></a>
|
||
#### 입력 delta와 보존 근거
|
||
|
||
`FEM-REQ-MITC4-EIGEN-002/008/014/024/027` 및
|
||
[MFE-ADR-007](ADR.md#mfe-adr-007--기존-stabilization과-좌표-불변성-acceptance-정합)을 적용한다.
|
||
기존 `min(R+)`의 기저 의존성은 P03의 NR 반례로 확인되었다. 그 반례와 r1의 mass oracle를
|
||
재계산하지 않는다. 사용자 승인은 개선 범위를 확정하며 특정 새 수식이나 NR 통과를 뜻하지 않는다.
|
||
|
||
| 기존 근거 | r2 영향 판단 |
|
||
| --- | --- |
|
||
| S01/S02, R01/R02 mass·moment·quadrature | Numerical K scale과 독립이다. 기존 primary 근거·한계 및 [mass 계약](formulation.md#formulation-mass)을 보존한다 |
|
||
| S03, R03 및 [eigen E2–E4](formulation.md#formulation-eigen) | Schur 원리는 그대로다. Decoupling의 적용 대상은 개선된 K이며 아래 positive/director 구조를 Formulation이 재확인해야 한다 |
|
||
| S04–S08, R04 FEAST/정수/count | Backend·lumped M·입력 N 요구가 바뀌지 않아 근거를 보존한다. 설치/runtime를 새로 검증한 것은 아니다 |
|
||
| S09–S11, R05 reference 의미 | 새 eigen Value-only·원본 identity·공통 tolerance가 불변이다. 기존 artifact/hash는 r1 관찰 이력으로 보존한다 |
|
||
| R06 및 [기존 V5](formulation.md#formulation-verification) | Complete K 재계산과 지원 partial BC 반례 통과가 필수다. r1의 제한된 eigen 좌표 검증 설명을 r2 acceptance로 사용하지 않는다 |
|
||
| P01/P03 static | 옛 scale 선정식만 대체하며 initial-fixed lifecycle·objective potential·physical recovery 제외와 기존 회귀 계약은 유지한다 |
|
||
|
||
<a id="research-evidence--공변적인-secondary-scale-후보"></a>
|
||
#### 공변적인 secondary scale 후보
|
||
|
||
**Fact, S12:** 대칭 2×2 행렬은 직교 회전으로 대각화할 수 있다. LAPACK 원 source는
|
||
그 변환과 반환 고유값을 명시하고, 작은 고유값 계산에서 determinant 상쇄로 상대 정확도를
|
||
잃을 수 있음을 경고한다. 이를 새 shell scale의 최종 선정 근거와 혼동하지 않는다.
|
||
|
||
**Derivation — 기저 변화:** 초기 physical `K20^0`에서 node i의 두 회전 성분에 해당하는
|
||
2×2 principal block을 `R_i`, 해당 성분을 global tangent rotation으로 보내는 orthonormal
|
||
map을 `U_i`라 하자. 전역 rigid coordinate rotation `G`와 접평면 기저 변경 `O_i`에서
|
||
`U_i'=G U_i O_i`, `R_i'=O_i^T R_i O_i`이면
|
||
`U_i' R_i' U_i'^T=G(U_i R_i U_i^T)G^T`다.
|
||
따라서 `tr(R_i')=tr(R_i)`와 `det(R_i'-lambda I)=det(R_i-lambda I)`가 직접 따른다.
|
||
개별 대각값은 이 항등식의 scalar invariant가 아니다. 서로 다른 node의 기저 변경도
|
||
block별로 독립 허용된다. 실제 physical kernel이 이 변환 법칙을 만족하는지는 후속 검증 대상이다.
|
||
|
||
**Candidate — trace 기반, 우선 검토 권고:** `tau_i=tr(R_i)/2`에서 하나의 positive element
|
||
scale을 만들 수 있다. `mean_i(tau_i)=sum_i tr(R_i)/8`은 기존 여덟 physical rotation
|
||
성분의 평균이며, physical K가 PSD이고 회전 강성이 적어도 하나 존재하면 양수다.
|
||
또 다른 후보는 positive nodal `tau_i`의 최솟값으로 기존 최소값 집계를 유지하는 것이다.
|
||
두 후보 모두 좌표/기저 불변이며 force·length 차원을 갖는다. 초기 K의 물리적인 PSD 및
|
||
zero/nonfinite inventory 처리는 명시적으로 확인해야 하며 양의 trace만으로 PSD를 판정하지 않는다.
|
||
최솟값 후보의 zero-block 처리 또는 전 node positivity가 필요하면 기존 유효 geometry와의
|
||
관계를 증명해야 한다. 암묵적인 새 geometry 제외·epsilon floor로 보완하지 않는다.
|
||
|
||
**Candidate — 최소 spectral 값:** `lambda_min(R_i)`도 기저 불변이고 작은 회전 강성 방향을
|
||
반영한다. 그러나 positive 여부·zero block 처리와 작은 eigenvalue의 상쇄/conditioning
|
||
문제가 추가된다. 단순 `(trace-sqrt(discriminant))/2` 구현의 안정성을 가정하지 않는다.
|
||
Trace 후보에는 이 spectral subtraction이 없으므로 bounded scale 개선의 첫 검토 방향으로
|
||
권고한다. 이 비교는 runtime 성능 측정 또는 수식 채택 판정이 아니다.
|
||
|
||
어느 후보든 기존 차원 없는 `10^-3` 계수와 `K_d=k_d I4`의 numerical 역할을 유지하는
|
||
최소 변경을 검토할 수 있다. Reference 오차를 보고 scale/계수를 조정하거나 coefficient sweep,
|
||
물리 drilling 관성·strain·새 입력 설정을 추가할 근거는 없다. 정확한 aggregation, finite/positive
|
||
검사 및 scale 공식 채택은 Formulation 소유이고 numerical 기준은 NR 소유다.
|
||
|
||
<a id="research-evidence--linear-null과-nonlinear-lifecycle의-다른-적용-조건"></a>
|
||
#### Linear null과 nonlinear lifecycle의 다른 적용 조건
|
||
|
||
**Derivation/조건, P01/P03와 S03:** Linear/eigen에서는 기존 `T_p`, `T_d`와
|
||
`K_drill=T_d^T k_d I4 T_d`를 그대로 두고, 모든 element의 새 `k_d`가 finite positive이면
|
||
실제로 free space에 남는 director null `Z`에 대해
|
||
`K_f Z=Z diag(sum_{e incident i} k_d,e)` 구조를 유지할 수 있다.
|
||
Physical K가 director 방향을 소거하고 공통 nodal director를 사용한다는 전제가 필요하다.
|
||
이 조건에서 `Kzz>0`, `Kpz=0`이므로 기존 analytic projection의 정확성 근거가 유지된다.
|
||
이는 [E3](formulation.md#formulation-eigen)의 적용 조건 재확인이지 새 수식/실제 조립의 검증 완료가 아니다.
|
||
Null이 없는 partial BC에는 개선 stabilization이 남으며 이를 삭제해서는 안 된다.
|
||
새 K와 옛 K 사이의 partial-BC spectrum 동일성은 요구하지 않는다.
|
||
|
||
**Fact, S13:** 논문의 자체 shell 정식화는 director manifold에 맞는 potential의 일관
|
||
선형화와 objective interpolation을 함께 다룬다. 이것은 FESA의 drilling potential를
|
||
제공하지 않는다. April correction은 proofing 오류, November correction은 Eq.(5.26)의
|
||
LaTeX rendering 오류를 알리며 현재 원문이 교정되었다고 명시한다. 그 식을 이 후보에
|
||
복사하거나 FESA의 기존 운동학을 해당 논문의 보간으로 교체하지 않는다.
|
||
|
||
**Derivation/조건, P03:** 기존 nonlinear `Pi_d=k_d*gamma^T gamma/2`에서 새 scale을
|
||
초기 reference physical K로 계산한 뒤 모든 increment/iteration에서 불변으로 유지하면
|
||
`Dk_d=D²k_d=0`이다. 따라서 기존 exact residual/Hessian은 동일한 `gamma`, `Dgamma`,
|
||
`D²gamma`에 새 scalar를 곱하는 구조를 유지한다. 기저 불변 reference scale과 objective
|
||
gamma를 함께 유지하면 같은 물리 상태의 좌표 변경에 따른 potential 불변성도 보존할 조건이 된다.
|
||
Trial tangent에서 scale을 다시 선정하면 추가 미분항과 min의 비매끄러움이 생길 수 있어 이
|
||
initial-fixed 계약을 대체할 수 없다. Scale이 같다는 이유로 nonlinear의 corotation coupling을
|
||
linear의 단순 director projection과 동일하게 만들지 않는다.
|
||
|
||
**Limit:** 양의 `k_d`는 numerical potential의 비음성과 pure-drill 양의 작용을 뜻한다.
|
||
변형된 nonlinear Hessian에는 `sum gamma_i D²gamma_i`가 있어 모든 상태의 SPD를 뜻하지
|
||
않는다. Linear E3 decoupling 증명을 nonlinear Hessian이나 prestressed eigenproblem에
|
||
일괄 적용하지 않는다. 새 feature의 eigen 상태는 승인된 원형상·무응력 상태다.
|
||
|
||
<a id="research-evidence--verification-연결과-남는-owner-작업"></a>
|
||
#### Verification 연결과 남는 owner 작업
|
||
|
||
NR-MFE-001의 동일 물리 partial BC에서 새 scale과 complete K를 독립 재계산하고,
|
||
대응 eigen spectrum 및 정적 response의 좌표 검증을 수행해야 한다. 옛 계수를 외부에서
|
||
고정한 tensor 변환만 비교하면 원래 결함을 검출하지 못한다. 동일 물리 BC/loads의 변환과
|
||
허용된 입력 범위는 유지한다. 추가 새 reference 모델을 요구하지 않는다.
|
||
|
||
기존 static 회귀의 원본 경로·quantity·identity·policy는 P03의
|
||
[Requirement evidence portfolio](requirements.md#requirements-evidence--r2-승인-범위와-정적-재검증)에
|
||
한 곳에서 유지한다. Linear `shell` 및 nonlinear `shellNL`/`shellNL-meshfine`와 linear-limit
|
||
case, 내부 tangent·선형극한·objectivity·평형·reaction·energy·rollback 검증을 새 scale로
|
||
실행해야 한다. 기존 U blocking/UR warning-only와 nonlinear reaction review-only를
|
||
eigen Value-only 요구로 삭제하지 않는다. 오래된 통과 보고서는 새 실행 evidence가 아니다.
|
||
|
||
남는 작업은 Formulation의 단일 후보 채택·positivity/변환 증명·적용 경계, NR의 독립
|
||
반례 해소·conditioning·metric·필수 case와 수치 기준, Implementation/Physics의 실제
|
||
정적/eigen 재검증이다. R07에서 새 authoritative conflict나 사용자 재결정 필요는 발견하지 않았다.
|
||
|
||
<a id="research-evidence--실행-evidence와-미실행"></a>
|
||
### 실행 evidence와 미실행
|
||
|
||
<a id="research-evidence--r1-조사-이력"></a>
|
||
#### r1 조사 이력
|
||
|
||
Read-only `Get-Content`, scoped `rg`, `Get-FileHash`로 필수 공통/Feature/기존 MITC4
|
||
문서, 실제 kernel과 원본 두 reference 파일을 읽었다. 해당 읽기·hash 명령은 exit `0`이다.
|
||
아래는 핵심 재현 진입점이다.
|
||
|
||
```powershell
|
||
Get-Content -Raw '.codex/skills/fem-research-evidence/SKILL.md'
|
||
Get-Content -Raw 'docs/mitc4-shell-feast-eigen/requirements.md'
|
||
rg -n 'PhysicalTransformation20|DrillingTransformation4|drilling_stiffness' 'src/fesa/elements/mitc4_shell.cpp'
|
||
Get-Content 'reference/shellNL-eigen-meshfine/shellNL-eigen-meshfine.inp' -Tail 52
|
||
Get-Content -Raw 'reference/shellNL-eigen-meshfine/shellNL-eigen-meshfine eigenvalues.txt'
|
||
Get-FileHash 'reference/shellNL-eigen-meshfine/shellNL-eigen-meshfine.inp','reference/shellNL-eigen-meshfine/shellNL-eigen-meshfine eigenvalues.txt'
|
||
```
|
||
|
||
SHA-256은 input `913b1abc604e62bc5f995bf5523924e17ea03925102a7bd22d39226ba0ea7339`,
|
||
TXT `20d97ca3fd51f5b956f2c1ed7565557c68f74e61e41b913748515ef43a0f7f0b`로 P02와 같다.
|
||
설치 include에서 `rg`로 위 R04의 declarations/version/type을 확인했다. 별도
|
||
`rg -n 'MKL_INTERFACE|MKL_ILP64|lp64' cmake CMakeLists.txt`는 no-match exit `1`이며
|
||
linked ABI를 판정한 것이 아니다. Numpy/pypdf/fitz 탐색은 exit `0`, 모두 미설치였고
|
||
설치·수치 실험·외부 solver를 수행하지 않았다.
|
||
|
||
Web `search_query/open/find`로 S01–S11을 조사했다. S03 PDF는 초기 검색·열기에서
|
||
`STATIC CONDENSATION`과 Eqs.(9)–(13) 텍스트를 얻었으나 후속 부분 열기는 timeout이
|
||
발생했다. S01의 수식은 보존된 원문 transcription과 현재 승인 계약도 대조했다.
|
||
S02 author HTML, S04–S07 Intel 본문, S08 author PDF, S09–S11 공식 문서는 접근했다.
|
||
NASA PDF/일부 publisher/feastinit 개별 URL 접근 실패를 필수 근거로 사용하지 않았다.
|
||
한 차례 tool orchestration의 quote syntax 오류는 도구 실행 전 실패했으며 수정 후 검색을
|
||
수행했다. 이런 접근 실패를 구현 또는 reference comparison 성공으로 기록하지 않는다.
|
||
|
||
Owned 두 문서의 metadata/상대 링크/requirement coverage를 read-only Python here-script
|
||
(`python -B -`, `pathlib`, `re`, `urllib.parse.unquote`)로 검사했다. Exit `0`,
|
||
documents `2`, local links `21`, requirement coverage `26`, issues `0`이다.
|
||
`git diff --check`는 exit `0`이며 다른 owner의 관리문서 LF/CRLF 경고가 출력되었다.
|
||
신규 untracked 연구 문서는 별도 Python 정적 검사로 trailing whitespace·final newline·상대
|
||
링크를 확인했다. Exit `0`, files `2`, local links `21`, issues `0`이다. `git status --short`에서
|
||
연구 두 파일과 Coordinator 관리문서 변경을 구분했으며 관련 없는 파일을 수정하거나 stage하지 않았다.
|
||
CMake/CTest, Harness, FEAST runtime와 numerical reference comparison은 이
|
||
연구 단계의 범위가 아니므로 미실행이다. Source/tests/build/phase/upstream/tolerance/reference는
|
||
편집하지 않았으며 다른 owner의 변경을 되돌리지 않았다.
|
||
|
||
<a id="research-evidence--r2-bounded-조사와-정적-확인"></a>
|
||
#### r2 bounded 조사와 정적 확인
|
||
|
||
관리문서·requirements r2·기존 research 및 NR/Formulation/static 계약을 `Get-Content`와
|
||
scoped `rg`로 읽었다. 정상 조회는 exit `0`이다. 초기 `rg`의 literal `research*.md` 경로는
|
||
Windows 경로 오류였고 `rg ... docs/nonlinear-static-newton-raphson -g 'research*.md'`로
|
||
수정하여 exit `0`으로 재조회했다. 최초 patch는 context 불일치로 적용되지 않았으며 실제
|
||
문맥을 확인한 뒤 owned 두 파일에만 적용했다. Source·test·build·phase·Hook·reference와
|
||
upstream 문서는 수정하지 않았고 Git mutation은 수행하지 않았다.
|
||
|
||
Web `search_query/open/find`에서 S12 공식 source와 S13 교정된 원문 및 두 correction을
|
||
열었다. 새로 인용한 primary 사실은 그 본문에서 확인했으며 검색 요약이나 타 solver의
|
||
비공개 동작을 근거로 사용하지 않았다. S01–S11 전체를 재조사하지 않았다.
|
||
|
||
Read-only `python -B -` here-script로 두 문서의 owner/Feature/r2 metadata, final newline,
|
||
trailing whitespace, 상대 링크 실재 및 requirements matrix ID와 coverage 표의 set equality를
|
||
검사했다. Exit `0`, documents `2`, local links `32`, required/covered IDs `27`, issues `0`이다.
|
||
별도 `python -B -`에서 `subprocess.run(['git','show','HEAD:'+path],check=True)`로 기존
|
||
연구 상세를 읽고 정규식으로 R01/R02/R04/R05 절 및 S01–S11 inventory 행을 비교했다.
|
||
Exit `0`, 모든 보존 구간이 동일했다. 이는 문서 보존 확인이며 수치 검증이 아니다.
|
||
`git diff --check`는 exit `0`; LF/CRLF 정보성 경고만 있었다. `git diff`/`git status --short`로
|
||
owned 두 파일과 Coordinator의 coordination 변경을 구분했으며 타 owner 변경을 보존했다.
|
||
|
||
r2에서 reference 파일·hash 재조사, NR 반례·mass oracle 재계산, CMake/CTest, Harness,
|
||
FEAST runtime 및 정적/eigen reference comparison은 수행하지 않았다. 원본/reference 및
|
||
기존 보고서의 성공 기록을 r2의 실행 성공으로 재분류하지 않는다. 최종 파일 hash는 반환
|
||
envelope에 제공하며 본 문서 안에 자기 hash를 기록하지 않는다.
|