docs(hex8): define approved mean-volume energy contract

This commit is contained in:
KOKO\Mimi
2026-10-10 23:00:58 +09:00
parent 7b75f37462
commit 96b6f86f28
9 changed files with 313 additions and 113 deletions
+18 -1
View File
@@ -10,7 +10,7 @@ Feature ID: `hex8-structural-analysis`. 상태: 사용자 승인된 구현 계
**선택:** 8절점 일반 등매개 육면체, 3개 병진 DOF,2×2×2 전체 Gauss 적분,
Total Lagrangian–St. Venant–Kirchhoff의 energy/internal force/material+geometric tangent.
**이유와 영향:** 큰 회전·작은 elastic strain을 대상으로 같은 energy의 미분 일관성을 검증한다.
Reduced/SRI/hourglass/hybrid/incompatible mode는 첫 범위에 없다. 굽힘/체적 잠김과
이 최초 선택의 pointwise 체적 항은 이후 HEX8-ADR-009로 대체됐다. Hourglass/hybrid/incompatible mode는 범위 밖이다. 굽힘/체적 잠김과
거의 비압축성 conditioning 한계를 공개한다. Abaqus C3D8 내부 처리와 동일하다고 주장하지 않는다.
## HEX8-ADR-002 — Constant reference consistent mass
@@ -69,3 +69,20 @@ backend와 HDF5 field/shape/dtype은 유지하되 공식 값은 전체 물리량
tolerance는 유지한다. Kernel/geometry에 low를 전달하지 않는 update carry와 구분한다.
작은 독립 산술/Hex8·시간수렴·상태 보존 검증과 긍정적 실제 실행 이후 필수 원본101개
endpoint·HDF5/외부 비교·전체 회귀를 진행한다. 승인과 수렴 완료를 혼동하지 않는다.
## HEX8-ADR-009 — Reference-volume 평균 Green trace energy
**승인:** 2026-10-10 사용자는 [체적 차이와 변경안](reference-discrepancy-proposal.md)의
B: 체적 평균 energy 도입 후 전체 재검증을 선택했다.
**선택:** 선형·비선형 정적, unloaded frequency, 선형·비선형 HHT 모두 같은 요소 energy를
사용한다. Reference 8점 가중치와 실제 infinitesimal/Green strain의 deviatoric 항을 유지하고,
체적 항을 `kappa*V*theta_bar^2/2`, `theta_bar=sum(w*trace(strain))/V`로 정의한다.
내력과 Kmat/Kgeo/Kt는 이 energy의 일관 미분이며 체적 tangent는 서로 다른 Gauss 점의
coupling을 포함한다. 평균 determinant/Fbar/로그변형률 재료식은 채택하지 않는다.
**영향:** ADR-001의 pointwise 체적 energy/구성식과 그 강성을 대체한다. 실제 strain을
출력하고 응력은 요소 평균에 의존하는 law로 복구한다. Reference consistent M·HHT 식·
고정 schedule·100회·strict gate·전체 pair 상태·반올림 observable·공식 field/schema와
원본·수치 기준은 유지한다. 새 solver 선택 옵션이나 원본 diagnostic 전환은 추가하지 않는다.
**검증:** 한 선형 private 후보의 원본 일치와 독립 변분 검토는 근거이며 production PASS가 아니다.
새 kernel/절차·시간/공간수렴·공식 출력·필수 원본·전체 MSVC Debug 회귀를 다시 검증한다.
기존 pointwise 구현의 통과·실패 기록은 과거 evidence로 보존하고 변경본에 승계하지 않는다.
@@ -1,7 +1,7 @@
# Hex8 구조해석 작업 지침
Feature ID: `hex8-structural-analysis`. 사용자 승인: 2026-10-08 ready 문서 승인 및 go 실행 요청.
개인 연구용 FESA에 full-integration Hex8의 선형/기하비선형 강성·일관 질량과
개인 연구용 FESA에 reference8점 deviatoric·체적 평균 energy Hex8의 선형/기하비선형 강성·일관 질량과
static/frequency/HHT 절차를 추가한다. 코드 존재와 기능 검증 완료를 구분한다.
상위 기준은 [프로젝트 지침](../../AGENTS.md), [공통 PRD](../PRD.md),
@@ -16,7 +16,7 @@ static/frequency/HHT 절차를 추가한다. 코드 존재와 기능 검증 완
| [numeric controls](numeric-controls.md) | 수치 scale·zero branch·tuning·독립 검사 기준 |
| [reference model](reference-model.md) | read-only 원본 inventory·quantity/key/point/time mapping |
| [verification](verification.md) | 비교 도구 사용·공식 원본 비교·Python 검사 결과와 한계 |
| [reference discrepancy proposal](reference-discrepancy-proposal.md) | 미채택 체적 정식화/reference 변경안·실제 불일치와 선형 후보 관측 |
| [reference discrepancy proposal](reference-discrepancy-proposal.md) | 승인된 B 체적 변경안·과거 원본 불일치와 별도 선형 후보 관측 |
| [numerical review](numerical-review.md) | 작성자와 독립된 정식화/controls 검토의 결과 |
| [lessons](lessons.md) | 정밀도 손실·수렴 실패와 수정의 근거 및 재사용할 주의점 |
| [precision proposal](precision-proposal.md) | 승인된 내부 정밀도 변경안·결과 의미·구현 전 검증 범위 |
+46 -25
View File
@@ -10,9 +10,11 @@ Feature ID: `hex8-structural-analysis`. 작성일: 2026-10-08. 상태: 사용자
완료하지 않는다. 기존 프로젝트를 유지하며 새 프로젝트 기준을 재작성하지 않는다.
첫 구현은 큰 회전·작은 탄성 변형률을 대상으로 한다. 전체 8점 적분과 Total Lagrangian
St. Venant–Kirchhoff 식을 선택해 에너지·내력·접선의 일관성을 독립 검증한다. 일관 질량은
St. Venant–Kirchhoff의 deviatoric 항과 요소 평균 Green trace 체적 energy를 선택해
에너지·내력·접선의 일관성을 독립 검증한다. 2026-10-10 사용자 B 승인으로 최초 pointwise
체적 항을 대체했으며 [ADR-009](ADR.md)를 따른다. 일관 질량은
고유치와 동해석 모두에 사용한다. 집중 질량이나 안정화로 계산 결과를 맞추지 않는다.
일반 등매개 육면체를 지원하지만 full integration의 굽힘·체적 잠김 한계는 공개한다.
일반 등매개 육면체를 지원하며 체적 projection의 안정성·conditioning 및 남은 굽힘 잠김 한계를 검증·공개한다.
초기 합의의 일정 동하중에 더해, 제공된 reference의 ramp를 처리하도록 구간별 선형
집중력 amplitude를 포함한다. 지정 변위의 시간 변화나 비영 초기 변위·속도까지 확대하지 않는다.
@@ -64,9 +66,9 @@ Source `C3D8`을 FESA Hex8로 연결하고 source 표기·instance·element/node
### FEM-REQ-HEX8-003 — 재료와 단위
상수 등방성 탄성 \(E>0,-1<\nu<0.5\)와 기준 밀도 \(\rho_0>0\)를 사용한다.
모든 값과 파생 Lamé 상수는 finite여야 한다. 밀도는 고유치·동해석에서 필수이며 정적
모든 값과 파생 shear/bulk 실행 계수는 finite여야 한다. 밀도는 고유치·동해석에서 필수이며 정적
입력의 양의 density는 보존하되 강성에 사용하지 않는다. 입력 일관 단위를 유지한다.
\(\mu=E/[2(1+\nu)]\), \(\lambda=E\nu/[(1+\nu)(1-2\nu)]\)다.
\(\mu=E/[2(1+\nu)]\), \(\kappa=E/[3(1-2\nu)]\)다. 두 실행 계수는 finite·positive여야 한다.
거의 비압축성인 입력을 다른 재료식으로 바꾸지 않으며 잠김과 conditioning을 구분해 보고한다.
### FEM-REQ-HEX8-004 — 적분 규칙
@@ -74,33 +76,45 @@ Source `C3D8`을 FESA Hex8로 연결하고 source 표기·instance·element/node
강성·내력·접선·질량·에너지에 동일한 2×2×2 Gauss 규칙을 사용한다.
각 축은 ±1/√3, weight=1이며 volume weight는 det J0다. 출력 point ID는
`1:---, 2:+--, 3:-+-, 4:++-, 5:--+, 6:+-+, 7:-++, 8:+++` 순서다.
절점 순서와 적분점 순서를 혼동하지 않는다. 감소 적분·선택적 체적 적분·hourglass 항은 없다.
절점 순서와 적분점 순서를 혼동하지 않는다. 모든 평균과 deviatoric 항은 이8점의 reference
체적 가중치로 계산한다. 체적 항은 요소 평균 trace energy이며 pointwise8점 체적 항이나
중심점 단일 적분으로 바꾸지 않는다. One-point reduced element·hourglass 항은 없다.
일반 뒤틀린 요소에서 8점 질량이나 비선형 적분이 연속체 적분과 항상 exact하다고 주장하지 않는다.
높은 차수 적분 oracle는 정확도·한계의 검사이며 production 규칙의 자동 변경이 아니다.
### FEM-REQ-HEX8-005 — 선형 강성
미소변형률 \(\epsilon=\operatorname{sym}\nabla_Xu\), \(\sigma=\lambda\operatorname{tr}\epsilon I+2\mu\epsilon\).
미소변형률 \(\epsilon_g=\operatorname{sym}\nabla_Xu\), \(V=\sum_gw_g\),
\(\bar\theta=\sum_gw_g\operatorname{tr}\epsilon_g/V\),
\(\sigma_g=2\mu\operatorname{dev}\epsilon_g+\kappa\bar\theta I\)다.
공학 전단 벡터 순서는 `[ε11,ε22,ε33,2ε12,2ε13,2ε23]`, 응력은
`[S11,S22,S33,S12,S13,S23]`다. 일의 짝이 되는 B0와 C를 사용해
\(K_0=\sum_g B_{0g}^TCB_{0g}\det J_{0g}\), \(f_{int}=K_0u\)를 계산한다.
`[S11,S22,S33,S12,S13,S23]`다. 선형 energy는
\(U=\sum_gw_g\mu\operatorname{dev}\epsilon_g:\operatorname{dev}\epsilon_g+\kappa V\bar\theta^2/2\)다.
\(K_0=\partial^2U/\partial u^2\), \(f_{int}=K_0u\)이며 weighted divergence vector의
외적 \(\kappa bb^T/V\)로 서로 다른 point의 체적 coupling을 포함한다.
대칭성·6개 강체 영모드·상수 변형률 patch·단위와 scale을 독립 검증한다.
### FEM-REQ-HEX8-006 — 비선형 내력과 접선
기준 형상에서 \(F=I+\sum_a u_a\otimes G_a\),
\(E_G=(F^TF-I)/2\), \(W=\lambda(\operatorname{tr}E_G)^2/2+\mu E_G:E_G\),
\(S=\lambda\operatorname{tr}E_GI+2\mu E_G\), \(P=FS\)다.
\(E_{Gg}=(F_g^TF_g-I)/2\), \(\bar\theta=\sum_gw_g\operatorname{tr}E_{Gg}/V\)와
\(U=\sum_gw_g\mu\operatorname{dev}E_{Gg}:\operatorname{dev}E_{Gg}+\kappa V\bar\theta^2/2\),
\(S_g=2\mu\operatorname{dev}E_{Gg}+\kappa\bar\theta I\), \(P_g=F_gS_g\)다.
\(f_{ai}=\sum_g P_{iJ}G_{aJ}\det J_{0g}\)와 같은 에너지의 일관 미분
\(K_t=K_{mat}+K_{geo}\)를 반환한다.
\[
A_{iJkL}=\delta_{ik}S_{LJ}+F_{iI}\mathbb C_{IJLN}F_{kN},\qquad
(K_t)_{ai,bk}=\sum_gG_{aJ}A_{iJkL}G_{bL}\det J_{0g}.
Z_g^{ai}=\operatorname{sym}(F_g^T(e_i\otimes G_{ag})),\quad
b_{ai}=\sum_gw_g(F_gG_{ag})_i,
\]
\[
(K_{mat})_{ai,bk}=2\mu\sum_gw_g\operatorname{dev}Z_g^{ai}:\operatorname{dev}Z_g^{bk}
+\kappa b_{ai}b_{bk}/V,\quad
(K_{geo})_{ai,bk}=\delta_{ik}\sum_gw_gG_{ag}^TS_gG_{bg}.
\]
\(\mathbb C_{IJLN}=\lambda\delta_{IJ}\delta_{LN}+\mu(\delta_{IL}\delta_{JN}+\delta_{IN}\delta_{JL})\).
기하 항은 \(\delta_{ik}G_a^TSG_b\), 나머지는 재료항이다. Kgeo만으로 전체 비선형 강성을
모든 gradient는 실제 relative kinematics의 같은 derivative이며 paired 경로는 Ghat를 사용한다.
평균 trace의 미분을 유지하고 point-local 기존 C로 체적 tangent를 대체하지 않는다. Kgeo만으로 전체 비선형 강성을
대체하지 않는다. 내부 API는 두 항과 합, 내력·에너지·복구량을 구별한다. 같은 trial에서
계산하며 유한차분 접선을 production 계산으로 사용하지 않는다. 강체 유한회전의 zero
strain/energy, 에너지 gradient·내력 tangent, 좌표 공변성, 선형극한을 검사한다.
@@ -412,9 +426,9 @@ mixed mesh·Shell–Solid 연결·prestressed modes·좌굴·다중 step/restart
## 방법과 자료의 한계
StVK는 선택한 탄성 regime의 FESA 모델이며 Abaqus `*ELASTIC, NLGEOM=YES`와 내부
유한변형 재료 알고리즘이 동일하다고 주장하지 않는다. Full 8점은 Abaqus C3D8의 체적
처리까지 그대로 재현하겠다는 선택이 아니다. 제공 결과의 일치만으로 다른 regime을 보증하지 않는다.
평균 Green trace energy는 선택한 탄성 regime의 FESA 모델이며 Abaqus `*ELASTIC, NLGEOM=YES`의
평균 J/Fbar·유한변형 재료 알고리즘과 동일하다고 주장하지 않는다. 선형 체적 평균 일치를
비선형 동등성으로 승계하지 않는다. 제공 결과의 일치만으로 다른 regime을 보증하지 않는다.
Amplitude의 step-time·상대 값·선형 보간·끝 값 유지 의미는
[Abaqus 공식 설명](https://docs.software.vt.edu/abaqusv2025/English/SIMACAEPRCRefMap/simaprc-c-amplitude.htm)을 따른다.
@@ -424,18 +438,22 @@ Generalized sparse FEAST의 공개 진입점은
## 현재 checklist
2026-10-10 사용자 B 승인은 HEX8-ADR-009의 체적 평균 energy를 다섯 절차에 적용하고
전체 재검증하는 변경이다. 아래 관련 항목은 변경본에서 다시 확인한다. 이어지는 이전
pointwise 구현의 실행 기록은 과거 evidence이며 변경본 PASS로 승계하지 않는다.
2026-10-09 사용자 A 승인은 [내부 정밀도 변경안](precision-proposal.md)의 전체 high+low
물리 상태와 Float64 반올림 observable을 FEM-REQ-HEX8-015·017–020에 적용한다.
HHT 식·기준 consistent M·입력·고정 schedule·100회·Si/exact-zero·원래 strict gate 및
외부 tolerance는 유지한다. 아래 구현·검증 checklist는 이 승인만으로 완료되지 않는다.
- [x] 수식·입출력·numeric controls·원본 mapping 정리 및 독립 numerical review 완료
- [x] Hex8 K0/consistent M/비선형 f/Kmat/Kgeo/Kt·형상·복구 kernel 검증
- [ ] 승인된 체적 평균 수식·입출력·numeric controls·원본 mapping 정리 및 독립 numerical review 완료
- [ ] 체적 평균 Hex8 K0/consistent M/비선형 f/Kmat/Kgeo/Kt·형상·복구 kernel 검증
- [x] Solid Domain/parser/3N DOF/ordered assembly/amplitude 검증
- [x] 선형·비선형 정적 accepted state/반력/잔차 검증
- [x] Generalized consistent-mass frequency·최저 N·original-pencil 검증
- [x] 선형·비선형 HHT u/v/physical a·시간수렴·수지 내부 검증
- [x] 공식 HDF5/CLI/self-check/실패 final 보존 검증
- [ ] 체적 평균 선형·비선형 정적 accepted state/반력/잔차 검증
- [ ] 체적 평균 generalized consistent-mass frequency·최저 N·original-pencil 검증
- [ ] 체적 평균 선형·비선형 HHT u/v/physical a·시간수렴·수지 내부 검증
- [ ] 체적 평균 공식 HDF5/CLI/self-check/실패 final 보존 검증
- [ ] 정적2·동적2 원본 필수 family 비교 PASS
- [ ] 사용자 원본 최저10 modal Value 제공 및 필수 비교 PASS
- [ ] 최신 전체 MSVC Debug build/CTest·기존 baseline 대조 완료
@@ -467,6 +485,9 @@ native CTest exit0이며 독립 수치 검토를 통과했다. 두 정적 원본
정적 수치 실패와 modal NOT RUN을 재현했다. 두 정적 원본은 실제 CLI native0이지만
U/RF/S 필수 비교는 모두 FAIL이다. 고유치 공식 readback은 검사했으나 원본 Value 부재로
비교는 NOT RUN이다. [verification](verification.md)의 metric과
[미채택 변경안](reference-discrepancy-proposal.md)을 구분한다. 별도 선형 Python 후보의
[승인된 변경 근거](reference-discrepancy-proposal.md)를 구분한다. 별도 선형 Python 후보의
수치 일치는 현재 구현의 PASS가 아니다. Source `1eb9cdd`의 전체 build는 native0이고
780개 CTest는 진행 중이다. 종료 전 checklist를 통과로 바꾸지 않는다.
제외 없는780개 CTest는 native8,777 PASS·2 FAIL·1 SKIP으로 종료됐다. 추가163개는 모두
PASS이며 기존 예외3개의 이름·status·metric body가 baseline과 동일하다. 전체 green은 아니다.
기존 pointwise 구현의 두 동적 원본도 native0으로101 endpoint를 완료했다. 이는 새 체적
평균 energy의 결과가 아니며 변경본의 검증은 위 checklist에 따라 다시 수행한다.
+5 -3
View File
@@ -2,7 +2,9 @@
개인 연구용 FESA에 8절점 육면체의 선형 강성, Total Lagrangian–StVK 기하비선형
내력·접선 강성과 기준 형상의 consistent 질량을 추가한다. 요소당 병진 자유도는24개이며
강성·질량·복구에 full 2×2×2 적분을 사용한다. 선형/비선형 정적, consistent-mass frequency,
강성·질량·복구에2×2×2 reference 적분점을 사용한다. 2026-10-10 승인으로 deviatoric 항과
요소 평균 infinitesimal/Green trace 체적 energy를 사용한다. 변경본 구현·재검증은 진행 중이다.
선형/비선형 정적, consistent-mass frequency,
선형/비선형 HHT 동해석을 typed state에서 공식 HDF5와 CLI까지 연결한다.
구현과 기능 검증 완료는 다르다. 원본 정적2·동적2의 필수 수치 비교, 사용자 modal Value와
@@ -61,8 +63,8 @@ Restart는 지원하지 않는다. [정밀도 정식화](precision-formulation.m
## 적용 한계
Full integration의 굽힘 shear locking과 거의 비압축성의 locking을 다른 요소 formulation으로
자동 대체하지 않는다. Warped geometry는 보수적으로 cell 전체의 Jacobian 양성을 인증하며
체적 projection의 conditioning·안정성과 남은 굽힘 shear locking을 검증하고,
다른 요소 formulation으로 자동 대체하지 않는다. Warped geometry는 보수적으로 cell 전체의 Jacobian 양성을 인증하며
uncertain geometry/trial도 실패한다. StVK 선택과 입력 호환성은 외부 solver의 내부 재료·체적
처리·시간 알고리즘 동등성을 보증하지 않는다.
+143 -47
View File
@@ -7,6 +7,10 @@
2026-10-09 승인된 Solid HHT 내부 정밀도 변경의 구현 계약은
[precision formulation](precision-formulation.md)이다. 동적 paired 경로의 상대변위 gradient,
전체 상태·계수 연산과 반올림 출력 의미는 해당 문서를 함께 적용한다.
사용자 선택 B로 승인된 현재 모델은 **8점 deviatoric 적분 + 기준 체적가중 평균 Green trace
energy**다. 선형/비선형 정적, 무응력 원형상 frequency, 선형/비선형 HHT 모두 같은 energy의
선형극한·내력·Hessian을 사용한다. 이전 비수정 pointwise full8의 수식/evidence는 변경 전
이력이며 현재 모델의 PASS로 승계하지 않는다. Fbar·평균 determinant·log-strain law는 아니다.
## Shape·기준 geometry·적분
@@ -23,6 +27,21 @@ Translation 차이를 먼저 사용해 large coordinate offset의 취소 오차
기준 좌표와 source identity는 변경하지 않는다. Shape의 partition of unity·linear reproduction와
gradient 합0을 검증한다. Invalid det/inverse는 abs/clamp나 corner 재배열로 숨기지 않는다.
실제 상대변위 계산과 그 미분을 모든 절차에서 일치시킨다. Local 절점 index는0–7이다.
기존 immutable F64 cache의 \(G_{ag},w_g\)를 그대로 사용하고
\[
H_g=\sum_{a=1}^7(u_a-u_0)\otimes G_{ag},\quad
\widehat G_{ag}=G_{ag}\ (a>0),\quad
\widehat G_{0g}=-\sum_{a=1}^7G_{ag},\quad
D_g[p]=\sum_{a=0}^7p_a\otimes\widehat G_{ag}.
\]
\(D_g[p]\)는 방향 p에 대한 \(\delta F_g=\delta H_g\)다. F64 static/frequency 및 paired
dynamic은 각 경로의 산술로 같은 순서의 coefficient 합을 평가한다. Relative H를 사용하고
force/tangent에는 별도의 cached \(G_{0g}\)를 쓰는 혼합은 허용하지 않는다.
새 quadrature로 coefficient를 재생성하지 않으며 coefficient/합산 roundoff는 독립 검증한다.
## Cell 전체의 Jacobian 인증
Trilinear map의 det J는 각 자연 좌표에 대해 최대2차인 tensor polynomial이다.
@@ -45,57 +64,125 @@ multiplication·변환·subdivision·current Xa+ua까지 실제 FP 오차를 포
Current geometry에도 같은 인증을 적용하고 point det F>0를 확인한다. Trial failure가 reference
cache나 accepted state를 변경하지 않는다. 세부 종료 controls는 numeric-controls를 따른다.
## Linear elasticity와 K0
## 재료·체적 평균 energy·선형 K0
\(\mu=E/[2(1+\nu)],\lambda=E\nu/[(1+\nu)(1-2\nu)]\).
\(E>0,-1<\nu<.5\)에서 bulk/shear modulus가 양수다. Engineering strain vector는
`[ε11,ε22,ε33,2ε12,2ε13,2ε23]`; stress vector는 실제 shear stress다.
Normal C block은 diagonal λ+2μ/off-diagonal λ, shear diagonal μ다.
\(\mu=E/[2(1+\nu)]\), \(\lambda=E\nu/[(1+\nu)(1-2\nu)]\),
\(\kappa=\lambda+2\mu/3=E/[3(1-2\nu)]\)는 실수 수학 identity다.
실행 coefficient는 \(\nu\to-1\)에서 \(\lambda+2\mu/3\)의 취소를 피하도록
**E/ν에서 직접 F64 \(\kappa=E/[3(1-2\nu)]\)를 한 번 계산**하고 finite positive를 검증한다.
계산 순서는 `2*nu`, `1-(2*nu)`, `3*(1-(2*nu))`, `E/denominator`의 RN64 연산이다.
`E/3` 선계산 등으로 재배열하지 않는다. Overflow/nonfinite 및 underflow-to-zero κ는
지원 산술 실패이며 값 보정은 없다. 기존 λ 조합의 bulk guard로 유효한 직접 κ를 다시 거부하지 않는다.
현재 실행 coefficient는 기존 정의의 F64 μ와 직접 F64 κ다. λ는 위 실수 identity와 변경 전
이력을 설명하는 기호이며 새 law의 별도 실행 cache/guard가 아니다. Paired 경로는 μ/κ를 exact lift한다.
변경 전 rounded μ/λ로 다시 만든 κ와의 bit equality를 요구하지 않으며 near-bound coefficient 오차를
독립 검토한다. \(E>0,-1<\nu<.5\)와 실제 positive finite shear/bulk를 요구하며 새로운 ν 범위
제한이나 clamp는 없다. λ 조합이나 `3*kappa` 등의 파생 overflow로 material 범위를 추가로
제한하지 않는다. 실제 element/trial 연산 graph가 nonfinite/지원 범위 실패이면 해당 평가를 실패시킨다.
\(\operatorname{dev}T=T-\operatorname{tr}(T)I/3\)다.
\(w_g=\det J_{0g}>0\), \(V=\sum_{g=1}^8w_g>0\)는 불변 기준 coefficient다.
Deviatoric 항·평균의 numerator/denominator 모두 동일 2×2×2 점을 사용한다.
평균은 기준 volume-weighted 값이며 center strain·단순8점 평균·current-volume 평균으로 바꾸지 않는다.
선형은 실제 \(\epsilon_g=\operatorname{sym}H_g\)에서
\[
K_0=\sum_g B_g^TCB_gw_g,\qquad f=K_0u,\qquad U={1\over2}u^TK_0u.
\]
동일 point의 block 형태는 \(\lambda G_{ai}G_{bk}+\mu\delta_{ik}G_a\cdot G_b+
\mu G_{ak}G_{bi}\)다. B/Voigt 코드와 독립 tensor/polynomial oracle를 구분한다.
Unconstrained K0는 symmetry/PSD 및6 rigid modes를 가지며 BC 적용 후 mechanism/singularity를
solver가 명시적으로 처리한다. Full integration 잠김을 안정화로 바꾸지 않는다.
## Total Lagrangian energy·내력·접선
\[
F=I+\sum_a u_a\otimes G_a,\quad E_G=(F^TF-I)/2,
\quad W={\lambda\over2}(\operatorname{tr}E_G)^2+\mu E_G:E_G.
\]
\(S=\partial W/\partial E_G=\lambda\operatorname{tr}(E_G)I+2\mu E_G\),
\(P=FS\). \(\delta E_G=\operatorname{sym}(F^T\delta F)\)이므로
\(\delta W=P:\delta F\), \(\delta F=\sum\delta u_a\otimes G_a\)다.
\[
U=\sum W_gw_g,\quad f_{ai}=\sum P_{iJ}G_{aJ}w_g.
\]
\(\delta P=\delta F S+F\delta S\)를 분리하면
\[
\mathbb C_{IJLN}=\lambda\delta_{IJ}\delta_{LN}
+\mu(\delta_{IL}\delta_{JN}+\delta_{IN}\delta_{JL}),
\bar\theta_{lin}=\sum_gw_g\operatorname{tr}\epsilon_g/V,\quad
U_{lin}=\mu\sum_gw_g\operatorname{dev}\epsilon_g:\operatorname{dev}\epsilon_g
+\kappa V\bar\theta_{lin}^2/2,
\]
\[
(K_{geo})_{ai,bk}=\sum\delta_{ik}G_{aJ}S_{LJ}G_{bL}w_g,
\quad (K_{mat})_{ai,bk}=\sum G_{aJ}F_{iI}\mathbb C_{IJLN}F_{kN}G_{bL}w_g.
\sigma_g=2\mu\operatorname{dev}\epsilon_g+\kappa\bar\theta_{lin}I,
\quad f_{ai}=\sum_gw_g\sigma_{g,iJ}\widehat G_{ag,J},\quad
f=K_0u,\quad U_{lin}=u^TK_0u/2.
\]
Kt=Kmat+Kgeo는 energy Hessian이며 load-independent CLOAD tangent는0이다.
S는 symmetric이고 total Kt도 symmetric이나 stressed trial에서 SPD라고 가정하지 않는다.
Zero state에서 F=I/S=0/geo=0/total=K0다. 유한 rigid R에서 F=R, Green/W/f는0이며
strained 상태를 global R로 회전하면 energy invariant·force/tangent covariance를 만족해야 한다.
Affine deformation의 energy/stress 및 multi-element constant-stress patch가 독립 oracle다.
Engineering strain vector는 `[ε11,ε22,ε33,2ε12,2ε13,2ε23]`이고 stress의 shear는 실제 값이다.
\(Q_g^{ai}=\operatorname{sym}(e_i\otimes\widehat G_{ag})\),
\(b^0_{ai}=\sum_gw_g\widehat G_{ag,i}\)이면 zero-state Hessian은
공식 비선형 stress는 \(\sigma=FSF^T/\det F\), Green strain은 기준 global tensor다.
Linear 공식 strain은 infinitesimal tensor다. 저장 strain의 shear는 실제 tensor 성분이고
B 계산용 engineering shear의 절반이다.8점 값을 그대로 저장한다.
\[
(K_0)_{ai,bk}=2\mu\sum_gw_g\operatorname{dev}Q_g^{ai}:\operatorname{dev}Q_g^{bk}
+\kappa b^0_{ai}b^0_{bk}/V.
\]
첫 항의 point block은 \(\mu\delta_{ik}\widehat G_a\cdot\widehat G_b+
\mu\widehat G_{a,k}\widehat G_{b,i}-(2\mu/3)\widehat G_{a,i}\widehat G_{b,k}\)다.
마지막 체적 외적은 모든 GP의 coupling을 포함한다. 기존 비수정 point-local
\(\sum B^TCB w\)를 선형 정적·frequency·linear HHT의 K0로 재사용하지 않는다.
## Total Lagrangian energy·내력·전체 Hessian
\[
F_g=I+H_g,\quad E_g=\operatorname{sym}H_g+H_g^TH_g/2=(F_g^TF_g-I)/2,
\quad\theta_g=\operatorname{tr}E_g,\quad\bar\theta=\sum_gw_g\theta_g/V,
\]
\[
U=\mu\sum_gw_g\operatorname{dev}E_g:\operatorname{dev}E_g
+\kappa V\bar\theta^2/2,
\quad S_g=2\mu\operatorname{dev}E_g+\kappa\bar\theta I,\quad P_g=F_gS_g.
\]
이 식은 요소의 discrete nonlocal energy다. Homogeneous material과 reference coefficient 외에
소성/history state는 없다. 매 trial의8점 E를 평가한 뒤 같은 trial의 평균/S/P를 계산한다.
\(Z_g[p]=\operatorname{sym}(F_g^TD_g[p])\),
\(Y_g[p,q]=\operatorname{sym}(D_g[p]^TD_g[q])\)라 두면
\[
\delta U[p]=\sum_gw_gS_g:Z_g[p],\quad
f_{ai}=\sum_gw_gP_{g,iJ}\widehat G_{ag,J},
\]
\[
\delta^2U[p,q]=\sum_gw_g\{2\mu\operatorname{dev}Z_g[p]:\operatorname{dev}Z_g[q]
+S_g:Y_g[p,q]\}
+\frac{\kappa}{V}\Big(\sum_gw_g\operatorname{tr}Z_g[p]\Big)
\Big(\sum_hw_h\operatorname{tr}Z_h[q]\Big).
\]
\(Z_g^{ai}=\operatorname{sym}(F_g^T(e_i\otimes\widehat G_{ag}))\),
\(b_{ai}=\sum_gw_g(F_g\widehat G_{ag})_i\)를 사용한 구현용 block은
\[
(K_{mat})_{ai,bk}=2\mu\sum_gw_g\operatorname{dev}Z_g^{ai}:\operatorname{dev}Z_g^{bk}
+\kappa b_{ai}b_{bk}/V,
\]
\[
(K_{geo})_{ai,bk}=\delta_{ik}\sum_gw_g\widehat G_{ag}^TS_g\widehat G_{bg},
\quad K_t=K_{mat}+K_{geo}.
\]
\(\delta S_g=2\mu\operatorname{dev}\delta E_g+\kappa\delta\bar\theta I\)이며
\(\delta\bar\theta=\sum_hw_h\operatorname{tr}\delta E_h/V\)다.
체적 Hessian은 \(g\ne h\)도 포함한다. 평균을 Newton 동안 고정하거나 GP별 기존 StVK C로
접선을 만들거나 stress만 평균화하면 이 energy의 내력·Hessian이 아니다.
Kt는 symmetric energy Hessian이나 stressed trial에서 SPD라고 가정하지 않는다.
Load-independent CLOAD tangent는0이고, zero state에서 F=I/S=0/Kgeo=0/Kt=K0다.
### 객관성·rank·복구 의미
실수 연산과 exact geometric completeness \(\sum_a\widehat G_{ag}=0\),
\(\sum_aX_a\otimes\widehat G_{ag}=I\)에서 \(u_a=(R-I)X_a+c\)이면 F=R/E=0/U=f=0이다.
Cached F64 coefficient/gradient 합/paired 반올림의 실제 rigid rotation은 coefficient와 연산
roundoff의 bounded 검사 대상이다. Gradient partition sum만으로 affine reproduction/exact0을
주장하지 않는다. 이미 주어진 F를 global R로 회전하면 E/평균/U는 invariant이고 force/tangent는
covariant다. 이 객관성은 평균 Green trace에 관한 것이며 determinant 평균화가 아니다.
K0는 nonnegative quadratic energy의 Hessian이다. 유효 brick의 local6 rigid modes/rank18,
warped cell의 추가 영모드·conditioning 및 실제 BC 뒤 mechanism/singularity를 검증한다.
특정 brick rank를 모든 admissible cell의 엄격 coercivity 증명으로 대신하지 않는다.
\(U_{old}-U=\kappa\sum_gw_g(\theta_g-\bar\theta)^2/2\ge0\)에서 Uold는 변경 전 비수정
pointwise full8의 **같은 μ/κ로 쓴 수학적 energy**다. 이전 실제 λ/μ rounded cache와 현재 직접 κ의
bit equality를 이 항등식에서 추론하지 않는다. 체적변형률 변동의 energy가 감소하므로
새 잠김·공간수렴·rank 검사가 필요하다.
Affine F에서는 위 같은 μ/κ/gradient로 정의한 Uold의 U/force/stress와 수학적으로 일치하지만
이전 rounded λ/raw G0 경로와의 byte equality나 모든 비affine direction의 Hessian 일치를 뜻하지 않는다.
공식 비선형 stress는 실제 \(\sigma_g=F_gS_gF_g^T/\det F_g\), strain은 **실제 기준 global Green E**다.
S의 isotropic 항이 요소 내 공통이어도 finite Cauchy pressure가 반드시 상수는 아니다.
선형 공식 strain은 실제 infinitesimal tensor이며 stress는 위 평균 trace law다.
8점 `[11,22,33,12,13,23]` 실제 tensor shear를 그대로 저장하고 평균/외삽/nodal smoothing하지 않는다.
저장 strain을 \(\operatorname{dev}E+\bar\theta I/3\)로 치환하지 않는다. Point stress는 같은 point의
strain만으로 결정되는 이전 pointwise law가 아니라 element mean에 의존한다.
## Consistent mass와 generalized eigen
@@ -115,7 +202,7 @@ node에 적어도 하나의 element가 있는 경우 min_e bound는 conservative
실제 FP matrix의 roundoff와 SPD evidence를 포함해야 하며 이 수학적 식만으로 설치 backend의
실행을 검증했다고 주장하지 않는다.
\(K_{ff}\phi=\lambda M_{ff}\phi\)를 풀며 constrained component0으로 복구하고
무응력 원형상에서 위 새 energy의 K0를 사용해 \(K_{ff}\phi=\lambda M_{ff}\phi\)를 풀며 constrained component0으로 복구하고
\(\phi^TM\phi=1\), \(f=\sqrt\lambda/(2\pi)\)를 구분한다. Proven mass lower bound가 있다면
\(\lambda_{max}\le\|K_{ff}\|_\infty/m_{lower}\)는 search upper-bound 근거가 된다.
Diagonal ratio classification scale 자체는 upper bound가 아니다. 검색/count의 실제 증거와
@@ -148,6 +235,10 @@ R=MA_{n+1}+(1+\alpha)(f_{n+1}-F_{n+1})-\alpha(f_n-F_n),
\quad K_{eff}=M/(\beta h^2)+(1+\alpha)K_t.
\]
f/U/Kt는 위 평균 trace energy에서 함께 평가한다. Linear HHT는 그 zero-state K0,
비선형 HHT는 trial의 cross-GP 전체 Hessian이다. 상수 reference consistent M·계수·고정 h·
100회·strict physical/correction/update 판정은 변경하지 않는다.
이전 free endpoint가 \(Ma_n+f_n-F_n=0\)이면 R=(1+alpha)(Ma_next+f_next−F_next)다.
Endpoint 표현을 쓰면 tangent도1/(1+alpha)로 함께 환산해야 한다. Incomplete previous endpoint를
동등하다고 가정하거나 weighted force에서 reaction을 계산하지 않는다. Physical reaction은
@@ -175,9 +266,14 @@ evidence/로그로 설명한다. Newton 허용오차의 free residual 기여도
## 정식화 검증 경계
Analytic brick/affine energy, independent tensor polynomial integrals,6 rigid modes, scaling/
covariance, gradient/tangent directional step sweep와 small-load limit를 결합한다. Warped geometry는
independent higher-order quadrature로 discretization error를 보고한다. Generalized eigen은
Analytic brick/affine energy, independent tensor polynomial integrals,6 rigid modes/rank, scaling/
covariance, node0 포함 gradient/tangent signed directional step sweep와 small-load limit를 결합한다.
Compatible 비균일 trace field에서 reference-weighted mean과 center/unweighted mean의 차이,
cross-GP outer product, 위 weighted-variance energy 차이와 linear–NL zero-state 일치를 검사한다.
GP-local bulk tangent를 사용하는 대조는 방향 미분 검사에서 실패해야 한다.
Warped geometry는 independent higher-order quadrature로 평균과 deviatoric 적분의 discretization
error를 보고하되 production8점 규칙을 바꾸지 않는다. Extra-null·conditioning·굽힘/체적 잠김과
spatial refinement를 별도로 검사한다. Generalized eigen은
작은 independent dense oracle와 original sparse-pencil metrics로 검증한다. HHT는 analytic
oscillator/비선형 constant-mass 제조해에서 u/v/physical a·h/h2/h4 수렴을 검증한다.
외부 comparison의5%/1%로 이 내부 검사를 대신하지 않는다.
+10 -2
View File
@@ -52,11 +52,15 @@ repository-conforming 이름 조정은 허용하며 physics/schema 수정은 아
않아 T2/T3를 분리한다. Layout은8 source-order nodes×UX/UY/UZ다.
- Explicit `EvaluateLinear(u)`/`EvaluateNonlinear(u)`는 immutable element의 local u[24]를 받아
f[24], Kmat/Kgeo/Kt[24,24], strain energy와8 typed integration-point rows를 반환한다.
Linear은 material=K0/geo=0, nonlinear은 같은 trial의 energy 미분이다. `ComputeMass()`는
Linear은 새 체적 평균 energy의 zero Hessian material=K0/geo=0,
nonlinear은 같은 trial의 체적 평균 Green energy 미분이다. `ComputeMass()`는
local consistent24×24 Matrix contribution이며 absent density이면 실패한다.
- Typed Solid point row는 internal element index, point ID1–8, natural/reference coordinate3,
Cauchy stress6·infinitesimal/Green tensor strain6를 가진다. Identity/상수 coordinates를 trial마다
다른 source row로 만들지 않는다. Generic recovery variant의 Solid payload는 별도 type이다.
다른 source row로 만들지 않는다. 저장 strain은 실제 kinematics의 strain이며 평균된
대체 strain이 아니다. 응력은 같은 point의 deviatoric strain과 요소 전체의 reference-volume
평균 trace에 의존한다. 비선형은 PK2를 실제 F/J로 Cauchy 변환하며 평균 Cauchy pressure를
가정하지 않는다. Generic recovery variant의 Solid payload는 별도 type이다.
- Semantic Domain은 Solid element/section/material/density·amplitude 정의를 소유한다.
DOF profile은 `kSolidStructural`에 해당하는3-component 구조이며 `FullDof`, free/constrained,
generic `ElementScatter`, sparse pattern의 기존 공개 의미를 유지한다. 동작별 node component
@@ -108,6 +112,10 @@ Result array의 leading node/element inventory와 component list를 self-check
| mode vectors | `UX,UY,UZ` / `mass-normalized`; `normalization=phi^T*M*phi=1` |
Strain-energy definition은 linear `0.5*u^T*K0*u`, nonlinear `sum(W*detJ0)`다.
K0는 승인된 mean-trace energy의 zero Hessian이고 nonlinear Wg는
`mu*dev(Eg):dev(Eg)+0.5*kappa*theta_bar^2`다. 같은 theta_bar를8점의 reference 가중치로
계산하므로 그 합은 요소 체적 항 `0.5*kappa*V*theta_bar^2`와 같다. 기존 attribute 문자열과
field/schema/dtype은 유지하며 새 energy 의미는 HEX8-ADR-009 및 정식화를 따른다.
Kinetic은 `0.5*v^T*M*v`, work는 `sum(0.5*(F_old+F_new)*delta_u)`이며 initial0이다.
Balance error는 `T+U-T0-U0-Wext`이고 HHT numerical dissipation을0으로 보정하지 않는다.
Constrained mask/prescribed 의미·point ordering은 model inventory에서 확인한다.
@@ -17,6 +17,23 @@ Depth default10, 처리한 cell budget default65536이며 uncertain 시 fail-clo
resource/precision tuning이고 accepted geometry의 positive 조건을 완화하는 tolerance가 아니다.
현재 Xa+ua를 인증할 때 addition uncertainty도 포함한다. Failed trial은 immutable cache를 보존한다.
## 체적 평균 energy의 실행 계수와 누적
2026-10-10 승인된 B는 reference weights의 순서0..7을 유지해 V와 weighted trace를 누적한다.
Mu는 `E/(2*(1+nu))`, kappa는 `E/(3*(1-2*nu))`를 Float64로 직접 계산·finite positive
검증한다. Kappa의 exact-real identity인 `lambda+2*mu/3`를 실행값으로 빼기/더하기해
nu→−1의 큰 계수 취소로 bulk를 잃지 않는다. E/3을 먼저 계산하는 재배열은 실행 계수
계약이 아니다. Overflow/underflow로 supported positive 계수를 만들 수 없으면 실패하며
clamp·임의 material bound를 추가하지 않는다.
같은 저장된 F64 mu/kappa/weights/gradient를 paired 경로에 exact lift한다. V·mean trace·
dev strain·cross-point bulk outer product·energy/force/Kt/recovery의 pair를 중간에 F64로
접지 않는다. F64와 pair 모두 실제 relative kinematics의 동일 derivative를 사용한다.
Ghat의 partition sum만으로 finite rotation의 exact-zero를 보장하지 않으며 기하 완전성과
coefficient/graph roundoff를 분리해 검증한다. 새로운 수식 검증은 weighted mean vs center,
signed energy/force/tangent sweep, extra-null/conditioning 및 low-only bulk 응답을 포함한다.
기존 Newton·형상·시간수렴·수지 기준과 외부 비교 tolerance는 유지한다.
## 정적 Newton
Force residual numerator는 free residual infinity norm이다. 기존
@@ -4,7 +4,8 @@
기본 물리식·DOF·부호·적분점 순서는 [formulation](formulation.md), 판정 원본은
[numeric-controls](numeric-controls.md), 영속 출력은 [I/O](io.md)다. 본 문서는
승인된 정밀도 변경의 구현 계약이며 구현 완료나 독립 수치 승인이 아니다.
기존 선형/비선형 정적·고유치의 Float64 경로를 변경하는 계약이 아니다.
사용자 선택 B의 평균 Green trace energy는 모든 절차에 적용하며 이 문서는 그 동적 paired
평가를 정의한다. Static/frequency의 F64 산술 종류는 유지하되 물리 energy/K0는 같은 새 모델이다.
## 산술과 고정 계수
@@ -74,11 +75,16 @@ Normal quotient의 `Bc=u*|rh/dh|`, 지원 subnormal의 exact rational rounding c
106-bit 보장이 아니다. 독립 exact rational fixtures와 binary scaling으로 실제 graph를 검증한다.
최소 계수 정밀도 선택은 다음과 같다. 기존 reference cache의 F64 \(N_a,G_a,w_g\),
Lamé 상수와 좌표, 기존 조립 F64 consistent \(M\), 기존 load assembler가 endpoint에서
평가한 F64 \(F_n\)를 exact dyadic 입력으로 올린다. 형상/재료/질량 적분을 새로 정의하거나
높은 차수 quadrature로 바꾸지 않는다. 단, 아래 상대변위의 미분에 필요한 \(\widehat G_0\)와
dynamic paired linear operator는 동일 pair 산술로 구성한다. 기존 rounded K0를 paired
힘에 혼합하지 않는다. 일정 F64 \(\alpha,\beta,\gamma,h\)는 기존 생성값을 올리며
μ와 좌표, 기존 조립 F64 consistent \(M\), 기존 load assembler가 endpoint에서 평가한 F64
\(F_n\)를 exact dyadic 입력으로 올린다. Bulk κ는 [기본 정식화](formulation.md)의
\(E/[3(1-2\nu)]\) direct F64 coefficient를 한 번 finite/positive 검증 후 exact lift한다.
실수 identity \(\kappa=\lambda+2\mu/3\)로부터 변경 전 rounded λ/μ cache의 bit equality를
추론하지 않는다. 새 law에는 별도 λ cache/guard가 없으며 μ/κ를 같은 energy/S/Hessian에 쓴다.
입력 ν 범위·기존 reference geometry/mass 적분은 유지하며 높은 차수
quadrature로 바꾸지 않는다. 아래 상대변위의 \(\widehat G_0\), 새 paired linear operator,
평균·dev의 `/3` 및 cross-GP contraction은 동일 pair 산술로 구성한다.
새 F64 K0 또는 변경 전 pointwise K0를 paired 힘에 혼합하지 않는다.
일정 F64 \(\alpha,\beta,\gamma,h\)는 기존 생성값을 올리며
\(c=1+\alpha\), \(b=\beta h^2\)와 모든 파생 계수는 공통 pair 산술로 계산한다.
\(b>0,c>0\) 및 finite를 요구한다. 기존 coefficient 생성·검증과
`time=double(n)*h`, `N*h==T` 및 endpoint 하중 평가 의미는 유지한다.
@@ -105,49 +111,72 @@ exact일 필요가 없다. \(\widehat G_0\) 선택은 기존 상대변위 weak f
\(\sum_a\widehat G_a\)가 exact0이라고 주장하지 않는다. Node0의 미분 오차도 이 graph의
산술 bound에 포함한다.
선형 동해석에서는 \(\epsilon=\operatorname{sym}H\),
\(\sigma=\lambda\operatorname{tr}\epsilon I+2\mu\epsilon\)이고
\(V=\sum_gw_g>0\)는 같은 reference8점의 pair sum이고 trial에 따라 변하지 않는다.
선형 동해석에서는 실제 \(\epsilon_g=\operatorname{sym}H_g\),
\(\bar\theta_{lin}=\sum_gw_g\operatorname{tr}\epsilon_g/V\),
\(\sigma_g=2\mu\operatorname{dev}\epsilon_g+\kappa\bar\theta_{lin}I\)이고
\[
U_{lin}=\sum_g[\tfrac12\lambda(\operatorname{tr}\epsilon)^2+
\mu\epsilon:\epsilon]w_g,
\quad f_{ai}=\sum_g\sigma_{iJ}\widehat G_{aJ}w_g,
\quad K_{lin}=\sum_g\widehat B_g^TC\widehat B_gw_g.
U_{lin}=\mu\sum_gw_g\operatorname{dev}\epsilon_g:\operatorname{dev}\epsilon_g
+\kappa V\bar\theta_{lin}^2/2,
\quad f_{ai}=\sum_gw_g\sigma_{g,iJ}\widehat G_{ag,J}.
\]
\(\widehat B\)는 위 \(\widehat G\)로 만든 기존 engineering-shear B다.
\(Q_g^{ai}=\operatorname{sym}(e_i\otimes\widehat G_{ag})\),
\(b^0_{ai}=\sum_gw_g\widehat G_{ag,i}\)에서 linear operator는
\[
(K_{lin})_{ai,bk}=2\mu\sum_gw_g\operatorname{dev}Q_g^{ai}:\operatorname{dev}Q_g^{bk}
+\kappa b^0_{ai}b^0_{bk}/V.
\]
실제 strain의 engineering/tensor shear 구분은 기존 계약을 유지한다.
비선형 동해석은 \(F=I+H\)이며 tiny strain의 불필요한 I 취소를 피하는 동등식
\[
E_G=\operatorname{sym}H+\tfrac12H^TH,\quad
S=\lambda\operatorname{tr}(E_G)I+2\mu E_G,\quad P=FS,
E_g=\operatorname{sym}H_g+\tfrac12H_g^TH_g,\quad
\bar\theta=\sum_gw_g\operatorname{tr}E_g/V,\quad
S_g=2\mu\operatorname{dev}E_g+\kappa\bar\theta I,\quad P_g=F_gS_g,
\]
\[
U=\sum_g[\tfrac12\lambda(\operatorname{tr}E_G)^2+\mu E_G:E_G]w_g,
\qquad f_{ai}=\sum_gP_{iJ}\widehat G_{aJ}w_g.
U=\mu\sum_gw_g\operatorname{dev}E_g:\operatorname{dev}E_g+\kappa V\bar\theta^2/2,
\qquad f_{ai}=\sum_gw_gP_{g,iJ}\widehat G_{ag,J}.
\]
\(H,E_G,S,P,F,U,f\)와 8점 recovery는 low를 보존한다. H를 만든 직후 F64로 축소하는
경로는 이 계약을 충족하지 않는다. \(\mathbb C\)는 기본 정식화의 같은 StVK tensor이며
\(H,E,S,P,F,U,f\), V/평균/\(\operatorname{dev}E=E-\operatorname{tr}E I/3\)와8점 recovery는
low를 보존한다. Element의8점 E를 평가한 뒤 같은 full trial에서 평균/S/P를 계산한다.
H나 평균을 만든 직후 F64로 축소하는 경로는 이 계약을 충족하지 않는다.
\(Z_g^{ai}=\operatorname{sym}(F_g^T(e_i\otimes\widehat G_{ag}))\),
\(b_{ai}=\sum_gw_g(F_g\widehat G_{ag})_i\)에서
\[
(K_{geo})_{ai,bk}=\sum_g\delta_{ik}\widehat G_{aJ}S_{LJ}
\widehat G_{bL}w_g,
(K_{geo})_{ai,bk}=\delta_{ik}\sum_gw_g\widehat G_{ag}^TS_g\widehat G_{bg},
\]
\[
(K_{mat})_{ai,bk}=\sum_g\widehat G_{aJ}F_{iI}\mathbb C_{IJLN}
F_{kN}\widehat G_{bL}w_g,
(K_{mat})_{ai,bk}=2\mu\sum_gw_g\operatorname{dev}Z_g^{ai}:\operatorname{dev}Z_g^{bk}
+\kappa b_{ai}b_{bk}/V,
\qquad K_t=K_{mat}+K_{geo}.
\]
마지막 outer product는 서로 다른 GP도 포함하는 전체 체적 Hessian이다.
\(\delta\bar\theta=\sum_hw_h\operatorname{tr}\delta E_h/V\)를 미분해야 하며
GP-local 기존 StVK tangent를 사용하거나 mean을 고정하는 경로는 허용하지 않는다.
이 평균은 승인된 energy의 일부이며 사후 residual/force projection이 아니다.
각 식은 동일 trial·동일 계수·동일 2×2×2 적분을 사용한다. 에너지의 실수 polynomial
미분을 pair 산술로 평가한 tangent이며 유한 반올림 함수의 미분을 주장하지 않는다.
Zero state의 paired \(K_t=K_{lin}\)이고 geometric 항은0이다. Paired \(K_{lin}\)은 기존
cached F64 K0와 coefficient-roundoff 수준에서 다를 수 있다. Byte identity나 별도
rounded K0와의 exact equality를 요구하지 않는다. 차이는 실제 측정하고 기본 linear
Zero state의 paired \(K_t=K_{lin}\)이고 geometric 항은0이다. Paired \(K_{lin}\)과 **새 energy의**
F64 K0 사이에는 coefficient/평균/축약 roundoff 차이가 있을 수 있다. Byte identity나
두 산술 경로의 exact equality를 요구하지 않는다. 변경 전 비수정 pointwise K0와는 물리
energy가 달라졌으므로 차이를 roundoff로 설명하지 않는다. 새 경로의 차이는 실제 측정하고 linear
weak form·energy gradient·tangent 불변량으로 독립 검토한다. 대칭 강제 평균이나
잔차 floor로 이 검토를 대신하지 않는다. Strained tangent가 SPD라고 가정하지 않는다.
실수 geometric completeness \(\sum_a\widehat G_{ag}=0\),
\(\sum_aX_a\otimes\widehat G_{ag}=I\)를 전제한 pure rigid motion은 F=R/E=U=f=0이다.
Rounded cached G/\(\widehat G\)/pair 산술에서 실제 rotation은 same-unit uncancelled scale과
coefficient/graph bound로 검증한다. Partition sum만으로 affine reproduction/exact0을 보장하지 않는다.
평균 Green trace는 finite left-rotation 객관성을 유지하며 Fbar/mean J/log strain을 사용하지 않는다.
## 형상·질량 action·복구
현재 절점은 실수값 \(x_a=X_a+u_{ah}+u_{al}\)이다. Whole-cell 인증의 outward-rounded
@@ -160,6 +189,9 @@ Point \(\det F>0\)도 full tensor에서 확인하며 유한성/부호가 불확
비선형 Cauchy \(\sigma=FSF^T/\det F\), Green strain, 선형 Cauchy/infinitesimal strain은
pair로 복구한다. 8점 global tensor의 실제 shear `[11,22,33,12,13,23]`를 유지한다.
실제 E/ε를 저장하며 modified mean strain으로 치환하지 않는다. Point stress는 실제 E/ε와
element mean trace law에 의존한다. S의 공통 isotropic 항으로부터 finite Cauchy pressure의
pointwise equality를 추론하지 않는다. Public shape/dtype/schema는 그대로다.
\(M\)은 기준 형상·밀도에서 한 번 조립한 **기존 F64 matrix 그 자체**이고 변형/시간에 따라
변하지 않는다. 모든 action \((Mz)_i=\sum_j(M_{ij},0)z_j\)는 full z와 pair product/reduction이다.
F64 \(M\)으로 먼저 rounded high action을 계산하고 low를 별도 residual 보정으로 넣지 않는다.
@@ -261,9 +293,13 @@ Self-check는 schema/identity/finite 및 내부 물리량의 올바른 RN64 seri
- 작은 brick 및 coupled 두 Hex8: 공통 high 병진과 \(2^{-60}\) 규모의 비균일 low field로
nonzero H/E/f/U와 이웃 element/global row 전달을 확인한다. 에너지 차분·signed directional
tangent의 step sweep(기준 node0의 독립 perturbation 포함), paired linear–NL zero-state 일치,
rigid translation/rotation·covariance와
기존 잠김/warped quadrature 한계를 검사한다. High-only 대조가 같은 물리장을 만들지 못하는
reference-weighted mean/dev와 cross-GP outer product의 low 전달을 확인한다.
Rigid translation/rotation·covariance의 completeness/roundoff, local6 rigid modes/rank18와
warped의 extra-null/conditioning·공간수렴/잠김을 검사한다. High-only 대조가 같은 물리장을 만들지 못하는
유의한 force/energy scale을 선택한다.
- Compatible 비균일 trace field로 center/unweighted mean과의 차이, weighted-variance energy
차이 및 평균의 directional derivative를 검사한다. GP-local bulk tangent나 rounded mean을
사용하는 대조는 energy→force→tangent/full low 검사에서 실패해야 한다.
- Coupled consistent M에 low velocity/acceleration을 주어 off-diagonal inertia·T·momentum 및
current moment를 검사한다. 비영 old \(r_n\)의 weighted 항등식·네 correction·세 update 식과
full-state oracle를 대조한다. \(-\alpha r_n\)를 생략하는 대조는 실패해야 한다.
@@ -1,8 +1,11 @@
# 정적 원본 불일치와 변경 선택지 — 미채택
# 정적 원본 불일치와 변경 선택지 — B 승인
현재 승인된 표준 full8 정식화·전체 high+low 물리 상태·원본·수치 기준은 유지한다.
이 문서는 사용자 결정용 변경안이며 [PRD](PRD.md)나 [ADR](ADR.md)를 대체하지 않는다.
현재 공식 결과의 실제 비교는 [verification](verification.md)에 있다.
2026-10-10 사용자는 B: 체적 평균 energy 도입 후 전체 재검증을 승인했다.
새 정식화는 [PRD](PRD.md)·[ADR-009](ADR.md)·[formulation](formulation.md)을 따른다.
전체 high+low 물리 상태·원본·수치 기준은 유지한다. A는 선택되지 않았다.
이 문서는 변경 근거와 승인 범위를 보존한다. 아래 공식 결과와 private 후보는 변경 전
pointwise 구현의 불일치 조사이며 변경본 production PASS가 아니다. 실제 비교 기록은
[verification](verification.md)에 있다.
## 확인한 차이
@@ -94,7 +97,7 @@ consistent M·반력·work/energy·운동량, 모든 low 전달·rollback·시
A/B 어느 선택도 원본·tolerance를 보정하지 않는다. 공개 Fbar 자체를 목표로 하려면
별도 정식화 조사를 선택해야 한다. 고유치 원본 Value 부재와 기존 Shell 회귀 문제도 별개로 남는다.
Physics·필수 reference 지위 변경은 사용자 결정 전에는 적용하지 않는다.
Physics 변경 B는 승인됐으며 필수 reference 지위는 유지한다. 승인만으로 변경본 검증을 완료하지 않는다.
원시 독립 표준 full8 audit는 로컬 `.harness/hex8-evidence/t8-independent-full8-audit/`,
체적 조사·후보 수식·한 번의 선형 계산과 SHA는