modify repository

This commit is contained in:
KOKO\Mimi
2026-10-18 14:32:55 +09:00
parent 762bd4b5b7
commit 945d899b2f
146 changed files with 336 additions and 11285 deletions
+12 -13
View File
@@ -8,7 +8,7 @@ MITC4 shell의 유한회전 기하비선형 동해석이다. S4/S4R은 FESA-MITC
shell schema v2**다. 과거 consistent 질량·full-coordinate v1 근거를 변경본 통과로 승계하지 않는다.
2026-10-13 기록에서 ADR-018의 실제 C09와 공식 Release C08a 7-grid는 통과했다.
최신 전체 Debug는 856개 중 44개 PASS 후 사용자 중단됐고 Release C08b도 중단됐다.
당시 전체 Debug는 856개 중 44개 PASS 후 사용자 중단됐고 Release C08b도 중단됐다.
당시 원본 Release 해석은 증분99·t=9.9까지 accepted 로그만 남아 HDF5 비교가 불가능했다.
사용자 중단 exit -1은 수치 FAIL이나 PASS가 아니다. 이후 2026-10-14 성능 baseline은
원본을6372.325621초/native0으로 완료하고 schema v2·729nodes/101frames를 확인했다.
@@ -18,9 +18,11 @@ shell schema v2**다. 과거 consistent 질량·full-coordinate v1 근거를 변
## 채택 방법과 산술 의미
[기본 정식화](formulation.md), [관성](formulation-inertia.md),
[축소 좌표](formulation-reduced-coordinate.md), [고정 null 기저](formulation-fixed-null-basis.md)가
수식의 상세 원본이다. 초기 null과 실제 free 공간의 교집합에서 고정 sparse 열 Lp/Lz를
현재 물리·관성은 [관성 상세](formulation-inertia.md), 시간적분·graph는
[축소 좌표](formulation-reduced-coordinate.md), plane basis·scaling은
[고정 null 기저](formulation-fixed-null-basis.md)를 순서대로 읽는다.
[기본 정식화](formulation.md)의 full-coordinate recurrence는 비교 이력이다.
초기 null과 실제 free 공간의 교집합에서 고정 sparse 열 Lp/Lz를
만들고 coupled graph root를 풀어 full `q=Q(p,t)`를 재구성한다. v와 physical a는 Q의
chain rule로 복원한다. 부분 회전구속을 full clamp로 바꾸거나 모든 node에 동일 reduced
차원을 강제하지 않는다. Fixed patch 밖에서 검증된 history transport가 없으면 실패한다.
@@ -36,7 +38,7 @@ Lumped는 회전 block의 scalar diagonal 치환이 아니다. Epsilon inertia
Primitive hidden-gradient authority, tiny director increment와 coefficient-first inertia contraction은
큰 병진과 작은 회전의 소실을 줄이는 구현이다. Force·tangent·recovery는 같은 state/energy를
사용한다. [Carried-A 산술](formulation-carried-a-noise.md)은 noise indicator의 범위를,
[가속도 복구 후보](formulation-acceleration-recovery.md)는 채택 경로와 다른 후보를 설명한다.
[가속도 복구 후보](formulation-acceleration-recovery.md)는 미채택 후보의 과거 연구를 설명한다.
## 입력·출력·reference 계약
@@ -134,13 +136,10 @@ C08b finer-grid·최신 최적화 source의 원본 HDF5 비교·전체 회귀·
[ShellHhtIntegrator](../../src/fesa/analysis/hht_reduced_integrator.h)는 predictor/rate 복원을,
[EquilibriumStep](../../src/fesa/analysis/equilibrium_algorithm.h)은0부터 시작하는 correction과
typed pending을 분리한다. History는 procedure가 소유하고 동일 acceptance 뒤 commit한다.
빌드·선별 검사 결과는 [통합 현황](../cpp-object-oriented-modular-refactoring/README.md)을 따르며,
과거 interrupted run·finest binary64 noise의 미판정을 새 전체 통과로 바꾸지 않는다.
## 이번 병합 검증의 사용자 변경
2026-10-18 사용자가 장시간 HHT 검증을 중단하고 정적해석만 검증해 다음 단계로
진행하도록 변경했다. Native 전체 실행의 부분 stdout·기존 결과는 보존하되 현재 HHT
전체 PASS나 수치 FAIL로 계산하지 않는다. 비정적 테스트는 삭제하지 않는다. 완료된 개별
검사와 중단된 C08b의 범위·근거는 [병합 현황](../cpp-object-oriented-modular-refactoring/README.md)에
구분한다. 이 실행 범위 변경은 정식화·허용치·시간수렴 요구 자체의 변경이 아니다.
진행하도록 변경했다. Native 전체 실행의 부분 stdout·기존 결과와 비정적 테스트는
보존했다. 당시 interrupted run·finest binary64 noise의 미판정은 현재 HHT 전체 PASS나
수치 FAIL로 승계하지 않았다. 완료된 개별 검사와 중단된 C08b 및 병합 선별 검사의
범위·근거는 [통합 현황](../cpp-object-oriented-modular-refactoring/README.md)을 따른다.
이 실행 범위 변경은 정식화·허용치·시간수렴 요구 자체의 변경이 아니다.
@@ -1,11 +1,15 @@
# 제약 일관 가속도 복구 후보
2026-10-11 질량 정책 변경: [HHT-ADR-012](README.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](README.md)의 현재 checklist를 따른다.
읽기 구분: 2026-09-26의 미채택 acceleration-recovery 후보 기록이다. 아래 기존 적분·검토·실패는 당시 consistent/full-coordinate 경로를 가리킨다. 현재 reduced physical-rate 복원은 [축소 좌표](formulation-reduced-coordinate.md), 채택·검증 상태는 [기능 요약](README.md)을 따른다.
- 상태: `candidate-for-independent-review; not-adopted`, 2026-09-26.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
2026-10-11 질량 정책 변경: `HHT-ADR-012`([현재 요약](README.md))에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [기능 요약](README.md)의 현재 검증 경계를 따른다.
- 작성 당시 상태: `candidate-for-independent-review; not-adopted`, 2026-09-26.
- Owner: `formulation-agent`. 할당 범위는 이 문서이며 source·시험·상위 계약은 변경하지 않는다.
- 기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [시간적분](formulation.md), [관성 상세](formulation-inertia.md).
- 발견 근거: [구현 수치 검토 NR-009 이후](README.md), [C08](README.md), [N1–N7](README.md).
- 기준: [프로젝트 지침](../../AGENTS.md), [솔버 공통 요약](../solver-core/README.md), [공통 계약 요약](../solver-core/README.md), [기능 요약](README.md), [시간적분](formulation.md), [관성 상세](formulation-inertia.md).
- 발견 근거: `구현 수치 검토 NR-009 이후`, `C08`, `N1–N7`.
## 1. 제안과 변경 경계
@@ -25,7 +29,7 @@
각 admissible nodal null은 `[0;J_l(phi)^(-1)d]`다. 현재 total rotation-vector chart, geometry 및 swing/twist 유효성과 일정 null rank, 양의 physical mass 및 bounded algebraic inverse가 전 구간에서 필요하다. Partial BC는 null과 free 공간의 **교집합**을 구한다. N의 constrained 성분을 단순 삭제하거나 작은 positive mass를 null로 재분류하지 않는다. Empty null에서는 `a_rec=a_h`; all-fixed 모델도 empty recovery로 처리한다.
이 문서의 N은 [N3/N4](README.md)의 고정 scale `D=diag(ell I3,I3)`, `x=D^-1 q`, 연속 정규화 analytic basis Z와 **`N=D_f Z(x)`**로 대응한다. 따라서 `psi=N^T g_f=Z^T(D^Tg)_f`, `g=f_int-F`. 미분 시 basis도 현재 q의 함수로 미분한다. N은 시간 grid와 무관한 같은 정의·source 순서를 사용하며 eigen/SVD 부호 변경으로 선택하지 않는다.
이 문서의 N은 `N3/N4`의 고정 scale `D=diag(ell I3,I3)`, `x=D^-1 q`, 연속 정규화 analytic basis Z와 **`N=D_f Z(x)`**로 대응한다. 따라서 `psi=N^T g_f=Z^T(D^Tg)_f`, `g=f_int-F`. 미분 시 basis도 현재 q의 함수로 미분한다. N은 시간 grid와 무관한 같은 정의·source 순서를 사용하며 eigen/SVD 부호 변경으로 선택하지 않는다.
## 3. 복구 방정식과 필요한 미분
@@ -115,7 +119,7 @@ Basis 표현에도 주의한다. `tilde psi=S(q,t)psi`에서 연속 2차 미분
## 6. 독립 검토용 반증 사례
아래는 추가 검증 제안이며 [기존 C08/N7](README.md)의 grid·전체 시점·원 정확도 요구를 바꾸지 않는다. 기존 a_h와 후보 a_rec를 함께 보존하고 실패 결과를 대체하지 않는다.
아래는 추가 검증 제안이며 `기존 C08/N7`의 grid·전체 시점·원 정확도 요구를 바꾸지 않는다. 기존 a_h와 후보 a_rec를 함께 보존하고 실패 결과를 대체하지 않는다.
| ID | 모델/조작 | 반드시 확인할 결과 |
| --- | --- | --- |
@@ -1,8 +1,10 @@
# C08b Newton 잔차 재정식화 후보
상태: 연구 후보이며 production 채택·수치 정확도 승인이 아니다. 2026-10-12 formulation owner 작업은 이 문서만 소유한다. 질량·시간적분·내력·초기화·tolerance·원본을 바꾸지 않는다. 독립 numerical review와 실제 prototype 결과는 별도 owner가 소유한다.
읽기 구분: 2026-10-12 full-coordinate C08b의 잔차 후보 연구다. 아래 현재·기존·미해결은 연구 당시의 상태이며 이 후보 전체의 채택을 뜻하지 않는다. 현재 Newton·graph 경로는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 검증 상태는 [기능 요약](README.md)을 따른다.
계약: [기존 정식화](formulation.md), [관성·null 상세 §4](formulation-inertia.md#4-mass-null과-초기-일관성), [ADR-010/012](README.md). 실제 trial은 [analysis.json](README.md)에 있으며 아래 기전 설명은 그 수치를 바탕으로 한 조사 후보이다.
작성 당시 상태: 연구 후보이며 production 채택·수치 정확도 승인이 아니다. 2026-10-12 formulation owner 작업은 이 문서만 소유한다. 질량·시간적분·내력·초기화·tolerance·원본을 바꾸지 않는다. 독립 numerical review와 실제 prototype 결과는 별도 owner가 소유한다.
계약: [기존 정식화](formulation.md), [관성·null 상세 §4](formulation-inertia.md#4-mass-null과-초기-일관성), `ADR-010/012`. 조사 당시 원자료 `analysis.json`의 실제 trial 수치를 근거로 하며 아래 기전 설명은 그 수치를 바탕으로 한 조사 후보이다. 현재 README는 원자료 JSON을 제공하지 않으며 [현재 요약](README.md)으로만 연결한다.
## 1. 적용 가정과 보존량
@@ -1,6 +1,10 @@
# Carried-A HHT의 arithmetic/noise 인계
상태: `implementation-ready-estimator; independent-review-pending`, 2026-10-12. [축소 좌표 정식화](formulation-reduced-coordinate.md)와 별개로, 동일 full-coordinate HHT에서 A를 직접 갱신하는 산술을 다룬다. 기존 [N7](README.md)의 separation 기준을 완화하지 않는다. Half-ULP `q-qp-sA` closure는 이전 predictor·seed·update 오차 또는 history bound가 아니다.
읽기 구분: 현재 CA radius 계산이 참조하는 산술 원본이다. 아래 full-coordinate carried-A 연산 경로 자체는 비교 이력이며, 현재 reduced Ar·pair update와 basis radius 적용 범위는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md)를 따른다. 현재 검증은 [기능 요약](README.md)에서 확인한다.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
작성 당시 상태: `implementation-ready-estimator; independent-review-pending`, 2026-10-12. [축소 좌표 정식화](formulation-reduced-coordinate.md)와 별개로, 동일 full-coordinate HHT에서 A를 직접 갱신하는 산술을 다룬다. 기존 `N7`의 separation 기준을 완화하지 않는다. Half-ULP `q-qp-sA` closure는 이전 predictor·seed·update 오차 또는 history bound가 아니다.
## 1. 실제 연산 경로
@@ -1,8 +1,10 @@
# 대수좌표 제거 DAE 연구: 수식과 실행 결과
상태: 연구 후보·독립 검토 대기. Owner: formulation, 2026-10-12. [연구의 권장 후보](README.md)를 소형 문제로 비교했다. Production·tests·PRD·ADR·reference·tolerance는 수정하지 않았다. 실제 shell 검증이나 새 적분법 채택이 아니다.
읽기 구분: 2026-10-12 소형 DAE 연구 당시의 결과와 capability gap을 보존한다. 아래 현재·미구현·미결정은 그 시점의 기술이다. 이후 채택된 shell 경로는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 현재 검증은 [기능 요약](README.md)을 따른다.
재현 자료는 [Decimal80 probe](README.md), [실제 native 기록](README.md), [stdout](README.md), [전체 grid·오차·조건 결과](README.md)다. `python -B compare.py` 실행 native0이며 FESA build/CTest는 실행하지 않았다. 모든 문제는 `t∈[0,1]`, `h=1/16,...,1/256`, exact frame0의 q/v/a와 `A0=a0`, `alpha=-.05,beta=.275625,gamma=.55`를 사용했다. 초기 구간을 제외하지 않고 모든 `n+1` endpoint의 component infinity-norm 최대 오차를 구했다. 이 raw absolute error는 FESA N7의 normalized/noise-certified metric이 아니다.
작성 당시 상태: 연구 후보·독립 검토 대기. Owner: formulation, 2026-10-12. `연구의 권장 후보`를 소형 문제로 비교했다. Production·tests·PRD·ADR·reference·tolerance는 수정하지 않았다. 실제 shell 검증이나 새 적분법 채택이 아니다.
당시 원자료는 `Decimal80 probe`, `실제 native 기록`, `stdout`, `전체 grid·오차·조건 결과`였다. 이 문서에 그 원자료 경로는 제공하지 않으며 [현재 요약](README.md)은 현재 기능 상태를 안내한다. `python -B compare.py` 실행 native0이며 FESA build/CTest는 실행하지 않았다. 모든 문제는 `t∈[0,1]`, `h=1/16,...,1/256`, exact frame0의 q/v/a와 `A0=a0`, `alpha=-.05,beta=.275625,gamma=.55`를 사용했다. 초기 구간을 제외하지 않고 모든 `n+1` endpoint의 component infinity-norm 최대 오차를 구했다. 이 raw absolute error는 FESA N7의 normalized/noise-certified metric이 아니다.
## 1. 관찰과 범위
@@ -110,9 +112,9 @@ Exact reduced 해는 `y=sin(t),ydot=cos(t),yddot=-sin(t)`이며 Decimal80 sin/co
- 같은 계수와 exact frame0을 쓴다고 reduced history가 승인된 full-coordinate history와 같아지지 않는다. Production 채택에는 수식·수치 검토와 명시적인 algorithm/state 결정이 필요하다. Tolerance/reference 변경은 제안하지 않는다.
- Full E·반력·hidden0/1/2·물리적 a와 공간 rate·energy/P/L·현행 C08·원본 비교는 각각 필수 evidence다. 이 oscillator는 frequency1이므로 C08b의 stiff-mode 시간 해상도 문제를 해결하지 않는다.
## 6. 실제 shell chart 후보와 구현-ready capability gap
## 6. 연구 당시 실제 shell chart 후보와 구현-ready capability gap
현재 source는 읽기만 했다. [shell evaluator API](README.md)와 [내부 Jet·scalar constraint](README.md), [관성 API](README.md)를 대조했다. 소형 prototype가 구현한 것은 해석적으로 알려진 polynomial Q와 독립 scalar reduced HHT뿐이다. Actual shell algebraic branch solver·Q 미분·reduced trial/state·assembly·tangent는 **구현하지 않았다**.
연구 당시 source는 읽기만 했다. [shell evaluator API](../../include/fesa/elements/nonlinear_mitc4_shell.h)와 내부 Jet·scalar constraint, 관성 API를 대조했다. 소형 prototype가 구현한 것은 해석적으로 알려진 polynomial Q와 독립 scalar reduced HHT뿐이다. Actual shell algebraic branch solver·Q 미분·reduced trial/state·assembly·tangent는 **구현하지 않았다**.
### 6.1 Chart 선택과 물리 동등성의 조건
@@ -1,13 +1,17 @@
# 고정 초기 null 기저의 sparse reduced HHT 정식화
상태: `implementation-ready; independent-review-and-runtime-pending`, 2026-10-13.
승인 범위는 [고정 null 기저 제안](README.md)과
[HHT-ADR-018](README.md)의 사용자 결정이다. 본 문서는 수식·연산 계약이며
읽기 구분: 현재 고정 null 기저·sparse lift·augmented scaling의 수식 원본이다. [축소 좌표](formulation-reduced-coordinate.md)를 전제로 읽는다. 아래 인계 당시의 대기·미구현 표현은 그 시점의 기록이며 현재 구현·검증은 [기능 요약](README.md)을 따른다.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
작성 당시 상태: `implementation-ready; independent-review-and-runtime-pending`, 2026-10-13.
승인 범위는 `고정 null 기저 제안`과
`HHT-ADR-018`([현재 요약](README.md))의 사용자 결정이다. 본 문서는 수식·연산 계약이며
자기 수치 승인이나 현재 production PASS 기록이 아니다.
[기존 축소 정식화](formulation-reduced-coordinate.md)의 fully-free rotation
component selector를 아래 고정 ON 기저로 대체한다. 기존
[N1–N7](README.md), [제한 Newton](README.md),
[독립 검토](README.md)와 허용값은 유지한다.
`N1–N7`, `제한 Newton`,
`독립 검토`와 허용값은 유지한다.
## 1. 적용 가정과 물리 계약
@@ -217,10 +221,10 @@ scale underflow/overflow는 실패다. 역변환 `d=Sx dhat` 후 다음 map을
N2-L의 분자/분모는 **실제로 factor/solve한 operator**에서
`||Khat dhat-bhat||inf / || |Khat||dhat|+|bhat| ||inf`, 원 `1e-12`다.
대조 시점의 read-only source augmented assembly/solve는 raw `Kaug,baug`를 전달하고
explicit FB-06이 없다. Raw 검산 evidence는 FB-06 scaled 검산의 증거가 아니다.
FB-06은 승인된 scaled-operator 계약의 동등 representation으로 구현하며 actual
scaling/undo를 source 및 focused evidence로 닫아야 한다. Full physical N2 residual/correction은 기존 global
정식화 작성 당시 read-only source는 raw `Kaug,baug`를 전달했다. 현재
`AssembleAugmentedReducedSystem`은 FB-06의 row/unknown scaling을 구성하고
`MapAugmentedCorrection`이 물리 보정을 복원한다. 구현의 존재와 해당 revision의
focused/full runtime 검증은 구분하며 현재 범위는 [기능 요약](README.md)을 따른다. Full physical N2 residual/correction은 기존 global
free channels에서 FB-07로 평가하며 selector `Ep`만으로 endpoint를 통과시키지 않는다.
ADR-017 restricted operator는 **actual scaled** `Khat[J,J]`이며 J에는 angular p와
@@ -497,9 +501,10 @@ full defect solve 실패를 restricted 성공으로 대신하지 않는다. Read
2/4/8-step 진단, C08a7/C08b8 원 grid/hidden/physical q-v-a/P-E-L/N7,
configured full Debug/CTest와 원101-frame reference. 실행은 fresh source identity에 연결한다.
남은 증거: actual diagonal scaling, 비영 private 초기상태 roundtrip 운용,
정식화 인계 당시 남긴 확인 항목: actual diagonal scaling, 비영 private 초기상태 roundtrip 운용,
새 basis coefficient CA, condition/transversality 실측 및 전체 runtime 항목은
implementation owner와 독립 review가 확인한다. 새 tolerance/physics/schema/reference
implementation owner와 독립 review의 확인 대상이었다. 현재 구현 존재와 최신 검증의
구분은 [기능 요약](README.md)을 따른다. 새 tolerance/physics/schema/reference
변경은 정하지 않았다. Empty null은 원 full-coordinate HHT로, all-fixed는 empty
free solve와 원 full reaction으로 환원한다. 문서 정적 대조만 수행했으며
build/test·외부 solver는 실행하지 않았다.
@@ -1,7 +1,10 @@
# ADR-018 graph BL/solve certificate controller draft
Status: private design only. Shared test source is frozen while the configured
Debug focused run is active.
읽기 구분: 2026-10-12 test-local graph certificate 설계 초안이다. 수식 범위는 [고정 null 기저의 certificate 계약](formulation-fixed-null-basis.md#51-고정-basis-coefficient-radius의-실행-계약), 현재 구현·검증은 [기능 요약](README.md)을 따른다. 아래 작업 동결·추가 계획은 초안 작성 당시 기록이다.
상태: 과거 private 설계 초안이다. 작성 당시 configured Debug focused run 중에는
shared test source를 동결했다. 현재 test-local certificate 구현의 존재와
최신 실행 검증 범위는 구분하며 [기능 요약](README.md)을 따른다.
## Scope
@@ -53,7 +56,7 @@ Undo any actual rate scaling before using `Bx` in physical lifted radii.
## Tests
Add only after the current focused run closes:
초안 작성 당시 focused run 종료 뒤 추가하려던 검사 목록:
- small chart with plane coefficient value zero / positive BL, proving BG/BP
remain nonzero after an omitted-BL mutation;
- 1x1 and 4x4 source-order graph replay, N2-L checked;
@@ -1,13 +1,17 @@
# HHT implicit dynamics 정식화
- 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
보존본: 2026-10-04 문서 정리 시점의 consistent/full-coordinate 후보 원문이다. 아래 현재·이번·미결정 표현은 당시 상태이며, 현행 lumped/reduced/fixed-null 채택·검증은 [기능 요약](README.md)을 따른다. 수식·유도는 비교 이력으로 보존한다.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
- 작성 당시 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
- Owner: `formulation-agent`, 2026-09-22. 문서 gate 산출물이며 구현 승인이나 수치 검증 통과가 아니다.
- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [요구사항](README.md), [연구](README.md).
- 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다.
- 기준: [프로젝트 지침](../../AGENTS.md), [솔버 공통 요약](../solver-core/README.md), [공통 계약 요약](../solver-core/README.md), [기능 요약](README.md), 당시 요구사항, 당시 연구 기록.
- 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia-historical-docs-cleanup-20261004.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다.
## 1. 결론과 적용 범위
**추천 후보는 유한회전 kinetic energy에서 유도한 관성력과, 물리적 가속도 `a` / 알고리즘 가속도 `A`를 분리하는 HHT 확장이다.** 일정 질량의 표준 HHT force weighting으로 정확히 환원한다. 단순히 `M(q)`를 기존 일정 질량 잔차에 대입하는 식은 추천하지 않는다. 이 차이는 [상세 §5](formulation-inertia.md#5-시간-정확도와-대안의-경계)에 유도한다.
**추천 후보는 유한회전 kinetic energy에서 유도한 관성력과, 물리적 가속도 `a` / 알고리즘 가속도 `A`를 분리하는 HHT 확장이다.** 일정 질량의 표준 HHT force weighting으로 정확히 환원한다. 단순히 `M(q)`를 기존 일정 질량 잔차에 대입하는 식은 추천하지 않는다. 이 차이는 [상세 §5](formulation-inertia-historical-docs-cleanup-20261004.md#5-시간-정확도와-대안의-경계)에 유도한다.
**사용자가 shell 속도 보간의 운동에너지를 그대로 적분하는 consistent mass를 선택했다.** 따라서 HHT 기본값과 이번 구현 범위는 consistent mass다. 같은 운동학의 scalar-moment nodal lumped 식은 비교용 이론 및 기존 eigen 회귀 참고이며 이번 HHT 구현 요구가 아니다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다.
@@ -56,7 +60,7 @@ x(\xi,\eta,\zeta;q)=\sum_i N_i(X_i+u_i+z d_i),\quad z=t\zeta/2,
\ddot d_i=\dot\omega_i\times d_i+\omega_i\times(\omega_i\times d_i).
\]
따라서 `v_phi`와 `a_phi`는 공간 각속도·각가속도가 아니다. `A_phi`는 이 물리 회복식에 넣지 않는다. `J_l`과 미분의 구현 가능한 정의는 [상세 §1](formulation-inertia.md#1-회전과-관성의-미분)에 있다.
따라서 `v_phi`와 `a_phi`는 공간 각속도·각가속도가 아니다. `A_phi`는 이 물리 회복식에 넣지 않는다. `J_l`과 미분의 구현 가능한 정의는 [상세 §1](formulation-inertia-historical-docs-cleanup-20261004.md#1-회전과-관성의-미분)에 있다.
물리 내력은 기존 [비선형 정식화 §§6–13](../nonlinear-static-newton-raphson/formulation.md)를 따른다. Green–Lagrange strain의 MITC assumed shear와 fixed-reference local engineering strain
`ē=[E11,E22,2E12,2E13,2E23]`에 대해
@@ -106,7 +110,7 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i}
\qquad F(t)=F^\star\ (t\ge0+).
\]
이는 parent `rho_0 ẍ=Div_0 P`, `P=F_def S`의 가상일 이산화다. 강형의 `F_def`는 deformation gradient이며 nodal force `F`와 구별한다. 물리적 damping은 0이다. Tangent에는 `DM·a`, convective force의 configuration/velocity 미분을 모두 포함한다. 구체적인 matrix block, quadrature, derivative action과 null 조건은 [상세 §§1–4](formulation-inertia.md)에 고정한다.
이는 parent `rho_0 ẍ=Div_0 P`, `P=F_def S`의 가상일 이산화다. 강형의 `F_def`는 deformation gradient이며 nodal force `F`와 구별한다. 물리적 damping은 0이다. Tangent에는 `DM·a`, convective force의 configuration/velocity 미분을 모두 포함한다. 구체적인 matrix block, quadrature, derivative action과 null 조건은 [상세 §§1–4](formulation-inertia-historical-docs-cleanup-20261004.md)에 고정한다.
## 4. 초기화와 HHT 시간적분 후보
@@ -117,9 +121,9 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i}
\beta=\frac14(1-\alpha)^2.
\]
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](README.md)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. `공개 기본값 근거`와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
**FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다.
**FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia-historical-docs-cleanup-20261004.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다.
[Brüls–Arnold (2008), 식 (5)–(8)](https://orbi.uliege.be/bitstream/2268/27088/1/pa_BrulsArnold2008_TheGeneralizedAlphaSchemeAsALinearMultistepIntegrator.pdf)의 보조가속도 형식을 `alpha_m=0`, `alpha_f=−alpha`로 전문화한다. 아래 `a`는 물리적 좌표 가속도, `A`는 시간적분 보조변수다:
@@ -210,6 +214,6 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad
| 구현 lifecycle | 동일 state tangent, 실패 rollback, time/frame 순서, deterministic assembly와 반복 결과 |
| 외부 reference | 지정 원본 101 frames × 9 nodes, frame/instance/node/component의 exact mapping; U blocking / UR warning-only 및 공통 TOLERANCE. V/A/energy correctness는 해당 CSV에 coverage 없음 |
수식 후보의 [독립 검토](README.md)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 질량 선택은 consistent로 확정되었다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
수식 후보의 `독립 검토`는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 질량 선택은 consistent로 확정되었다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](README.md)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. `독립 시간정확도 검산`은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
@@ -1,6 +1,10 @@
# 유한회전 관성·초기화·HHT 상세
[주 정식화](formulation.md)의 구현 수식 상세다. 상태와 미결정 항목은 주 문서를 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
보존본: 2026-10-04 문서 정리 시점의 consistent/full-coordinate 후보 원문이다. 아래 현재·이번·미결정 표현은 당시 상태이며, 현행 lumped/reduced/fixed-null 채택·검증은 [기능 요약](README.md)을 따른다. 수식·유도는 비교 이력으로 보존한다.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
[당시 주 정식화](formulation-historical-docs-cleanup-20261004.md)의 구현 수식 상세다. 상태와 미결정 항목은 주 문서를 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
사용자 선택에 따라 이번 HHT 기본 및 구현 질량은 consistent `T_C/M_C`다. Lumped 식은 비교용 이론·기존 eigen 회귀 참고로 보존하며 이번 HHT 구현·검증 요구를 추가하지 않는다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다.
@@ -196,7 +200,7 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1}
세 coefficient 합은 1, `a_(n−1),a_n,a_(n+1)`의 시간 offset `−1,0,+1`에 대한 first moment는 `alpha+gamma=1/2`다. 여기에는 `Mdot` 잔여항이 없다. Endpoint equation이 nonsingular mass의 smooth `a=f(q,v,t)`를 정의하면 q/v의 2차 일관성과 안정성 검토를 할 수 있고 physical a도 같은 해의 정확도를 따른다. 이는 nonlinear mass의 smooth manufactured verification을 요구하는 근거이며 독립 수치 검토를 대신하지 않는다.
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](README.md)는 현 수식 후보를 대조했고, [독립 검산](README.md)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. `독립 검토`는 현 수식 후보를 대조했고, `독립 검산`의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
### 5.3 다른 후보와 채택하지 않은 이유
@@ -1,8 +1,12 @@
# 유한회전 관성·초기화·HHT 상세
[주 정식화](formulation.md)의 구현 수식 상세다. 상태와 미결정 항목은 주 문서를 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
읽기 구분: 현재 채택한 nodal-lumped kinetic 관성의 수식 원본이다. Consistent 식과 full-coordinate 시간정확도 논의는 비교 이력이다. 현재 시간적분은 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 구현·검증 상태는 [기능 요약](README.md)을 따른다.
2026-10-11 승인 [HHT-ADR-012](README.md)에 따라 이번 HHT 질량은 nodal lumped `T_L/M_L`다. Consistent 식은 비교와 미분 유도 이력으로 보존한다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
[주 정식화](formulation.md)의 구현 수식 상세다. 현재 채택·구현·검증 상태는 [기능 요약](README.md)을 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다.
2026-10-11 승인 `HHT-ADR-012`([현재 요약](README.md))에 따라 이번 HHT 질량은 nodal lumped `T_L/M_L`다. Consistent 식은 비교와 미분 유도 이력으로 보존한다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다.
## 1. 회전과 관성의 미분
@@ -218,7 +222,7 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1}
세 coefficient 합은 1, `a_(n−1),a_n,a_(n+1)`의 시간 offset `−1,0,+1`에 대한 first moment는 `alpha+gamma=1/2`다. 여기에는 `Mdot` 잔여항이 없다. Endpoint equation이 nonsingular mass의 smooth `a=f(q,v,t)`를 정의하면 q/v의 2차 일관성과 안정성 검토를 할 수 있고 physical a도 같은 해의 정확도를 따른다. 이는 nonlinear mass의 smooth manufactured verification을 요구하는 근거이며 독립 수치 검토를 대신하지 않는다.
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](README.md)는 현 수식 후보를 대조했고, [독립 검산](README.md)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. `독립 검토`는 현 수식 후보를 대조했고, `독립 검산`의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다.
### 5.3 다른 후보와 채택하지 않은 이유
@@ -228,4 +232,4 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1}
| Ambient director | 독립 `y=(u_i,d_i)`에 일정 moment mass, `d_i·d_i=1` holonomic constraint와 drill orientation의 algebraic equation을 둔 HHT | Newmark ambient director rates의 constraint drift, rotation-vector state와의 정확한 rate mapping, additional multiplier/drill coordinate가 필요. 기존 6DOF state와 단순 동치라고 볼 수 없음 |
| Physical/algorithmic acceleration 분리 | 주 문서 후보; current `M_C(q)`만으로 physical endpoint equation을 풀며 null을 보존 | Shell mass-null의 시간 정확도·regularity 검증 필요. Consistent mass 선택이 이 시간적분 후보의 채택 승인까지 의미하지는 않음 |
기존 source는 nonlinear 내부력의 second derivative까지 계산하지만 관성 tangent에는 director의 third derivative가 필요하다. 기존 [small-rotation mass kernel](../../src/fesa/elements/mitc4_shell.cpp)의 moment는 재사용 가능한 기준이고 그 initial global mass를 유한회전 전체에 고정하는 것은 본 후보가 아니다. [정적 상태](../../include/fesa/analysis/nonlinear_analysis_state.h)는 `a/A` distinction을 제공하지 않으므로 현재 구현이 이 알고리즘을 지원한다고 보고하지 않는다.
기존 source는 nonlinear 내부력의 second derivative까지 계산하지만 관성 tangent에는 director의 third derivative가 필요하다. 기존 [small-rotation mass kernel](../../src/fesa/elements/mitc4_shell.cpp)의 moment는 재사용 가능한 기준이고 그 initial global mass를 유한회전 전체에 고정하는 것은 본 후보가 아니다. 최초 정식화 당시의 [정적 상태](../../include/fesa/analysis/nonlinear_analysis_state.h)는 `a/A` distinction을 제공하지 않았다. 현재 [동적 상태](../../include/fesa/analysis/dynamic_analysis_state.h)와 채택 경로는 [기능 요약](README.md)을 따르며, 구현의 존재는 최신 전체 수치 검증 통과를 뜻하지 않는다.
@@ -1,8 +1,10 @@
# C08b linear momentum: 정확한 이산 불변량과 판정 후보
상태: 수식 검토 후보·독립 numerical review 및 사용자 결정 대기. Owner: formulation, 2026-10-12. 공식 acceptance·tolerance·tests·production은 변경하지 않았다. 현재 C08b FAIL을 유지한다. 이 문서는 새 수치 tolerance를 정하지 않는다.
읽기 구분: 2026-10-12 full-coordinate C08b의 불변량·acceptance 검토 후보 기록이다. 이 문서는 acceptance 변경의 채택을 뜻하지 않는다. 현재 reduced 경로는 [축소 좌표](formulation-reduced-coordinate.md)·[고정 null 기저](formulation-fixed-null-basis.md), 현재 검증은 [기능 요약](README.md)을 따른다.
기준은 [현재 시간적분 정식화](formulation.md), [lumped 관성 상세](formulation-inertia.md), [현재 연구](README.md)다. 별도 [DAE 비교](formulation.md)는 full-coordinate와 reduced 시간적분의 구별을 소유한다. 아래 증명은 **현재 C08b의 원 full-coordinate HHT**에 대한 자체 유도이며 reduced 후보를 자동 포함하지 않는다.
작성 당시 상태: 수식 검토 후보·독립 numerical review 및 사용자 결정 대기. Owner: formulation, 2026-10-12. 공식 acceptance·tolerance·tests·production은 변경하지 않았다. 연구 당시 C08b FAIL은 해당 이력으로 유지한다. 이 문서는 새 수치 tolerance를 정하지 않는다.
기준은 [당시 full-coordinate 시간적분 정식화](formulation.md), [lumped 관성 상세](formulation-inertia.md), [연구 위치의 현재 요약](README.md#보존한-과거-수식과-연구의-위치)다. 별도 [DAE 비교](formulation-dae-research-20261012.md)는 full-coordinate와 reduced 시간적분의 구별을 소유한다. 아래 증명은 **2026-10-12 연구 당시 C08b의 full-coordinate HHT**에 대한 자체 유도이며 reduced 후보를 자동 포함하지 않는다.
## 1. 가정과 검산
@@ -1,6 +1,10 @@
# Shell 축소 좌표 HHT 정식화
상태: `implementation-ready; independent-review-and-shell-verification-pending`, 2026-10-12. 사용자는 실제 shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 본 문서는 수식 인계이며 구현 또는 수치 통과를 승인하지 않는다. [기존 정식화](formulation.md), [현재 관성](formulation-inertia.md), [실험·실패 보고](README.md)를 전제로 한다. Carried-A의 동일 full-coordinate HHT 산술은 [별도 N7 상세](formulation-carried-a-noise.md)가 소유한다.
읽기 구분: 현재 축소 적분·graph·physical-rate 복원의 수식 원본이다. Fully-free rotation의 component selector는 [고정 null 기저](formulation-fixed-null-basis.md)가 대체한다. 아래 구현 제안·검토 대기는 작성 당시의 기록이며 현재 구현·검증은 [기능 요약](README.md)을 따른다.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
작성 당시 상태: `implementation-ready; independent-review-and-shell-verification-pending`, 2026-10-12. 사용자는 실제 shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 본 문서는 수식 인계이며 구현 또는 수치 통과를 승인하지 않는다. [기존 정식화](formulation.md), [현재 관성](formulation-inertia.md), `실험·실패 보고`를 전제로 한다. Carried-A의 동일 full-coordinate HHT 산술은 [별도 N7 상세](formulation-carried-a-noise.md)가 소유한다.
## 1. 물리와 좌표
@@ -53,7 +57,7 @@ Empty null에서는 `Q(p)=L_p p`, `J=L_p`, `Q_t=Q''=Q'''=0`이며 원 full-coord
않는다. Primitive의 source-ordered assembly와 안정적인 contraction으로 같은 수식을
계산하고, physical mass range solve 및 original/reconstructed frame0의 full residual
판정은 유지한다. 이 산술 정정의 원인·실행 범위는
[후속 검증 기록](README.md)을 따른다.
`후속 검증 기록`을 따른다.
\[
Ar_{n+1}=(1+\alpha)ap_{n+1}-\alpha ap_n,\quad
@@ -178,7 +182,7 @@ scaled norm과 private `delta Ar`를 검사한다. Public
고정된다. N7에서도 augmented defect의 모든 auxiliary block을 위 식으로
변환해야 한다. `delta p`만 남기거나 hidden defect를 무시하면 해당 noise
판정은 유효하지 않다. 독립 소형 Schur 검산과 실제 shell 검증의 범위는
[수치 검토](README.md)에 구분하여 기록한다.
`수치 검토`에 구분하여 기록한다.
### 5.2 Newton 좌표 증분과 carried Ar의 산술 표현
@@ -212,15 +216,15 @@ Predictor의 inherited bound와 초기 low를 포함하고 accepted high의 unce
다음 step으로 넘긴다. 기존 pp+Ar 또는 plain p addition bound를 이 새 경로의
완전한 evidence로 승계하거나 radius를 reset/clamp하지 않는다. 이는 같은 수학
recurrence의 산술 표현이며 stored high가 원 N3를 만족하지 못하면 여전히 실패다.
독립 exact replay와 적용 한계는 [수치 검토](README.md)를 따른다.
독립 exact replay와 적용 한계는 `수치 검토`를 따른다.
위 high-only 실패 정책은 승인 이전 evidence다. [HHT-ADR-016](README.md)에 따라
위 high-only 실패 정책은 승인 이전 evidence다. `HHT-ADR-016`([현재 요약](README.md))에 따라
reduced whole/requested 두 증분은 실제 candidate pair의 increment
`(p_high+p_low)-old_accepted_high`를 EFT expansion으로 비교하고, 저장 high의
RN-even 일치를 별도로 검사한다. 원래 각 scale와 `1e-12`, zero-scale exact-zero,
독립 requested trace와 CA radius는 유지한다. Raw high-only 실패값을 보존하며
승인 이전 FAIL을 변경본 PASS로 승계하지 않는다. 상세 범위와 표현 경계 검증은
[승인된 제안](README.md)을 따른다.
`승인된 제안`을 따른다.
## 6. 필요한 local operator와 시간 항
@@ -244,7 +248,10 @@ T[(u,0),(v,1),(v,1)]
Fixed-time Newton에는 RC-15의 T만 필요하므로 **F'''는 불필요하다**. 일반 pure Qttt 요청에는 F'''가 필요하지만 이번 구현에서 요청하지 않는다. Constant public CLOAD에서는 F'=F''=0이다. Generalized rotational F가 nonzero이면 n의 pure-q 미분은 여전히 필요하다. C08a oracle에 Fdot/Fddot=0을 대입하면 잘못된 구현이다. External time-mixed second contraction은 n의 nodal Hessian에서 계산하며 force finite difference로 대체하지 않는다.
## 7. 최소 구현 인계
## 7. 당시 최소 구현 인계
다음 파일명과 인터페이스는 2026-10-12 제안이며 현재 파일 배치를 뜻하지 않는다.
현재 source flow는 [기능 요약](README.md)을 따른다.
| Owner / 파일 제안 | 대응 operator / 책임 |
| --- | --- |
@@ -265,6 +272,6 @@ Private interface는 `EvaluateAlgebraicOperators(q,t,F,Fdot,Fddot,v)`, `SolveEmb
- C08a all-time full q/v/physical-a 차수와 실제 shell C08b physical high-frequency convergence는 별개다. 축소법의 null-rate 개선만으로 C08b finest fixed-grid 기준 통과를 주장하지 않는다. Original reference 비교·현재 full suite는 implementation owner가 수행한다.
- Fixed component graph는 general chart/rank transport, smoothness가 깨진 null cutting BC, nonprincipal branch, nonsmooth F를 지원하지 않는다. 이 경계는 fail-closed 구현과 진단으로 드러나야 하며 tolerance/rank clipping으로 숨기지 않는다.
Owner의 [Decimal96 polynomial probe](README.md)는 explicit-time coupled 2-constraint graph의 RC-07/09와 RC-10/11을 세 상태에서 계산했다. [결과](README.md), [native0 기록](README.md)을 보존한다. Implicit derivatives를 polynomial Q의 직접 미분과 비교하고, 원 평형 밖의 임의 smooth covector에서 exact tangent와 central difference를 비교하여 `delta J` 생략 효과가 nonzero임을 확인했다. 이는 수식 bookkeeping 검산이며 실제 shell 물리 모델·production 실행 또는 독립 numerical review가 아니다.
당시 원자료 `Decimal96 polynomial probe`는 explicit-time coupled 2-constraint graph의 RC-07/09와 RC-10/11을 세 상태에서 계산했다. 원자료명 `결과`, `native0 기록`은 당시 evidence를 가리키며 이 문서에서 원자료 경로를 제공하지 않는다. [현재 요약](README.md)은 현재 기능 상태를 안내한다. Implicit derivatives를 polynomial Q의 직접 미분과 비교하고, 원 평형 밖의 임의 smooth covector에서 exact tangent와 central difference를 비교하여 `delta J` 생략 효과가 nonzero임을 확인했다. 이는 수식 bookkeeping 검산이며 실제 shell 물리 모델·production 실행 또는 독립 numerical review가 아니다.
독립 numerical reviewer가 RC-01–15와 actual implementation operator/BC/branch 대응을 검토해야 한다. Public A/schema details는 I/O owner의 승인 계약을 참조하며 본 수식 문서가 새로운 영속 문자열을 정하지 않는다.
+12 -8
View File
@@ -1,8 +1,12 @@
# HHT implicit dynamics 정식화
- 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
읽기 구분: 물리 유도와 과거 full-coordinate 시간적분 기록이다. 아래 후보 상태·구현 전 판단은 최초 정식화 당시의 것이며, 현재 채택·입출력·검증은 [기능 요약](README.md)을 따른다. 현재 시간적분은 [축소 좌표](formulation-reduced-coordinate.md)와 [고정 null 기저](formulation-fixed-null-basis.md)를 읽는다.
본문의 검토·ADR·N1–N7 등 과거 기록명은 당시 근거의 식별명이며, 이 문서의 현재 요약 링크가 원자료 전문을 제공한다는 뜻은 아니다.
- 작성 당시 상태: `independently-reviewed-candidate; physics-and-validation-pending`.
- Owner: `formulation-agent`, 2026-09-22. 문서 gate 산출물이며 구현 승인이나 수치 검증 통과가 아니다.
- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [요구사항](README.md), [연구](README.md).
- 기준: [프로젝트 지침](../../AGENTS.md), [솔버 공통 요약](../solver-core/README.md), [공통 계약 요약](../solver-core/README.md), [기능 요약](README.md), 당시 요구사항, 당시 연구 기록.
- 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다.
2026-10-12 사용자는 actual shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 채택 방향의 수식은 [축소 좌표 HHT](formulation-reduced-coordinate.md)가 소유한다. 아래 full-coordinate recurrence는 기존 구현과 비교 이력이며 축소법의 full q/v update 식으로 승계하지 않는다. 승인과 actual solver 검증 완료는 구분한다.
@@ -11,7 +15,7 @@
**추천 후보는 유한회전 kinetic energy에서 유도한 관성력과, 물리적 가속도 `a` / 알고리즘 가속도 `A`를 분리하는 HHT 확장이다.** 일정 질량의 표준 HHT force weighting으로 정확히 환원한다. 단순히 `M(q)`를 기존 일정 질량 잔차에 대입하는 식은 추천하지 않는다. 이 차이는 [상세 §5](formulation-inertia.md#5-시간-정확도와-대안의-경계)에 유도한다.
**2026-10-11 사용자가 고유치·HHT lumped mass를 승인했다([HHT-ADR-012](README.md)).** HHT는 아래 nodal kinetic measure의 `T_L/M_L`을 채택하고 기존 shell eigen nodal block lumping을 유지한다. `T_C/M_C`는 비교·유도 이력으로 보존한다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다.
**2026-10-11 사용자가 고유치·HHT lumped mass를 승인했다(`HHT-ADR-012`([현재 요약](README.md))).** HHT는 아래 nodal kinetic measure의 `T_L/M_L`을 채택하고 기존 shell eigen nodal block lumping을 유지한다. `T_C/M_C`는 비교·유도 이력으로 보존한다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다.
아래 HHT 확장과 `0+` 초기화는 HHT-ADR-009에서 채택한 계약을 유지한다. 이번 lumped mass 선택은 그 밖의 physics·알고리즘·공개 output 범위를 확대하지 않는다.
@@ -79,7 +83,7 @@ U_{drill}=\frac12\sum_{e,i}k_{de}\chi_{ei}(q)^2,\quad
f_{int}=\nabla_q(U_{phys}+U_{drill}),\quad K_{int}=\nabla_q^2(U_{phys}+U_{drill}).
\]
Drilling stiffness는 물리적 회전 관성이 아니다. `U_phys`와 `U_drill`을 구별하여 에너지 evidence를 계산하고, drill stress/resultant를 만들지 않는다. 재료 내부변수·소성 update는 없다. 재사용 대상 [evaluator](../../src/fesa/elements/nonlinear_mitc4_shell.cpp)의 `PhysicalEnergy`, `DrillingEnergy`, `EvaluateInternalResidualAndTangent`도 이 구분에 대조한다. 현재 공개 equilibrium/recovery 결과는 `physical_strain_energy`만 노출하므로 drill energy evidence의 전달은 후속 구현 작업이며 현 API가 이를 이미 제공한다고 보지 않는다.
Drilling stiffness는 물리적 회전 관성이 아니다. `U_phys`와 `U_drill`을 구별하여 에너지 evidence를 계산하고, drill stress/resultant를 만들지 않는다. 재료 내부변수·소성 update는 없다. 재사용 대상 [evaluator](../../src/fesa/elements/nonlinear_mitc4_shell.cpp)의 `PhysicalEnergy`, `DrillingEnergy`, `EvaluateInternalResidualAndTangent`도 이 구분에 대조한다. 최초 정식화 당시 공개 equilibrium/recovery 결과는 `physical_strain_energy`만 노출했다. 현재 dynamic frame은 `drilling_energy`를 별도로 보존하며 공개 결과 계약은 [기능 요약](README.md)을 따른다.
## 3. 질량·관성·연속 평형
@@ -119,7 +123,7 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i}
\beta=\frac14(1-\alpha)^2.
\]
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](README.md)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. `공개 기본값 근거`와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다.
**FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다.
@@ -198,7 +202,7 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad
6. `time,increment,q,v,a,A,orientation,forces,recovery,evidence`가 한 identity를 이루는 candidate만 원자적으로 commit한다. 모든 101 accepted frames를 보존한다. Newton iteration은 time frame이 아니다.
7. 비수렴·invalid chart/geometry·nonfinite·선형 solve·회복·출력 실패는 trial을 폐기하고 마지막 committed 상태/history와 기존 최종 HDF5를 보존한다. 고정 `DIRECT`를 cutback/adaptive로 바꾸거나 실패 frame을 성공으로 내보내지 않는다.
공식 출력은 lexical sibling `<stem>_results.h5`다. `U/UR`, 물리적 `v/a`, `omega/omega_dot`, algorithmic `A`, 반력과 에너지의 **공개 여부 및 영속 schema는 미결정**이다. Algorithmic `A`를 physical acceleration이라는 이름으로 공개해서는 안 된다. 출력 선택과 무관하게 검증에는 서로 구별되는 내부 quantity가 필요하다.
공식 출력은 lexical sibling `<stem>_results.h5`다. `U/UR`, 물리적 `v/a`, `omega/omega_dot`, algorithmic `A`, 반력과 에너지의 공개 여부 및 영속 schema는 최초 정식화 당시 미결정이었다. 현재 공개 계약은 [기능 요약](README.md)의 shell schema v2를 따른다. Algorithmic `A`를 physical acceleration이라는 이름으로 공개해서는 안 된다. 출력 선택과 무관하게 검증에는 서로 구별되는 내부 quantity가 필요하다.
## 7. 검증 인계와 미해결 결정
@@ -212,6 +216,6 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad
| 구현 lifecycle | 동일 state tangent, 실패 rollback, time/frame 순서, deterministic assembly와 반복 결과 |
| 외부 reference | 지정 원본 101 frames × 9 nodes, frame/instance/node/component의 exact mapping; U blocking / UR warning-only 및 공통 TOLERANCE. V/A/energy correctness는 해당 CSV에 coverage 없음 |
수식 후보의 [독립 검토](README.md)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 현재 질량 선택은 HHT-ADR-012의 nodal lumped로 대체되었다. 이후 구현 전 상태를 설명하는 이 문단은 최초 정식화 당시의 기록이며 변경본 검증의 통과를 뜻하지 않는다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
수식 후보의 `독립 검토`는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 현재 질량 선택은 HHT-ADR-012의 nodal lumped로 대체되었다. 이후 구현 전 상태를 설명하는 이 문단은 최초 정식화 당시의 기록이며 변경본 검증의 통과를 뜻하지 않는다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다.
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](README.md)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. `독립 시간정확도 검산`은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.