100 lines
12 KiB
Markdown
100 lines
12 KiB
Markdown
# HHT Implicit Dynamics 결정 기록
|
||
|
||
기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../PRD.md), [공통 ADR](../ADR.md#adr-028).
|
||
Feature 범위·상태는 [PRD](PRD.md), 상세 acceptance intent는 [requirements](requirements.md)를 따른다.
|
||
|
||
## HHT-ADR-001 — Requirement와 Research 작업 범위
|
||
|
||
- 상태: `accepted-for-current-task`
|
||
- 날짜: 2026-09-22
|
||
- Owner: 메인 assistant
|
||
- 승인 근거: 사용자가 HHT implicit dynamics의 requirement/research gate를 요청하고 `reference/shellNL-dyn-meshfine`을 지정했다.
|
||
- 결정: `dev` commit `23b37ca644563b51472654af3b22811f077f15f6`에서 분리한 `hht-implicit-dynamics` worktree에서 요구사항·연구 문서를 작성한다. 원본 reference와 solver source는 이번 작업에서 수정하지 않는다.
|
||
- 이유·영향: 기존 논문 재현 실험과 eigen 질량 진단의 변경을 현행 dev나 새로운 동적 물리 계약으로 오인하지 않도록 기준을 구별한다. 새로운 dynamics 구현은 이 두 gate 후의 별도 작업이다.
|
||
|
||
## HHT-ADR-002 — Reference 입력과 비교 정책 보존
|
||
|
||
- 상태: `accepted-existing-contract`
|
||
- Owner: 메인 assistant
|
||
- 승인 근거: 사용자 지정 reference 및 프로젝트 AGENTS/TOLERANCE.
|
||
- 결정: 원본 `NLGEOM=YES`, `DIRECT`, 시간증분 `0.1`, 종료시간 `10`을 보존하고 101 frames / 9 nodes 전체 U/UR 이력을 대상으로 한다. U blocking, UR warning-only와 공통 frame별 수치 정책을 적용한다. Eigen 첫 구현의 RMS 5% 예외는 적용하지 않는다.
|
||
- 이유·영향: 동적 이력의 일부만 선택하거나 reference를 변경하여 일치를 만드는 것을 방지한다. CSV가 제공하지 않는 속도·가속도·반력·에너지에는 독립 검증 evidence가 필요하다. 최종 family/schema/mapping은 후속 owner가 정의한다.
|
||
|
||
## HHT-ADR-003 — 물리·입출력 결정의 경계
|
||
|
||
- 상태: `partially-resolved`; 질량 종류는 HHT-ADR-007로 확정, 나머지는 PRD의 현재 상태 참조.
|
||
- Owner: 메인 assistant; 근거는 Research, 정식화는 Formulation, 독립 판단은 Numerical Review.
|
||
- 결정 대상: `requirements.md`의 `HHT-OPEN-001–006`.
|
||
- 이유: 현재 dev의 small-rotation mass kernel과 nonlinear internal-force evaluator만으로 비선형 동적 관성의 일관성이 성립하지 않는다. HHT의 coefficient convention, 초기 가속도와 load onset, drilling 영질량 처리, 회전 운동학 및 공식 동적 출력 의미가 함께 연결되어야 한다.
|
||
- 영향: 이번 gate에서 연구 후보식을 implementation contract로 승인하지 않는다. 공개 문헌으로 확인 가능한 입력 기본값은 근거를 기록하여 해소하되, 질량·관성의 물리 범위 및 영속 결과 schema는 후속 검토와 필요한 사용자 결정을 거친다. 비교 결과에 맞춘 parameter/mass 조정은 결정 근거로 사용하지 않는다.
|
||
|
||
## HHT-ADR-004 — 확인된 공개 입력 기본값
|
||
|
||
- 상태: `researched-input-interpretation`; FESA 정식화·전체 입력 지원 승인과 구별.
|
||
- 날짜: 2026-09-22
|
||
- Owner: 메인 assistant; 근거 수집은 research-agent.
|
||
- 근거: [Research §3 및 S4–S7](research.md)의 공식 Abaqus 2025 공개 문서와 원본 INP 대조.
|
||
- 해석: 무접촉 기본 application은 TRANSIENT FIDELITY/HHT-TF이고 `alpha=-0.05`, `beta=0.275625`, `gamma=0.55`다. 명시 amplitude가 없는 집중하중은 STEP이며 첫 증분부터 전체 크기다. DIRECT는 이 모델에서 고정 시간간격이고, 기본 INITIAL 의미는 초기 가속도 계산이다.
|
||
- 영향: 이 공개 의미는 CSV fitting으로 정하지 않으며 기본값을 정하기 위한 반복 사용자 질문도 필요하지 않다. FESA 최초 old-force history, `t0-/t0+`와 frame 0, mass-null 초기화는 명시적으로 정식화해야 한다. 공개 의미만으로 reference를 생성한 solver의 내부 초기화·관성 알고리즘을 확인했다고 주장하지 않는다.
|
||
|
||
## HHT-ADR-005 — Formulation 작업과 독립 검토
|
||
|
||
- 상태: `accepted-for-current-task`
|
||
- Owner: 메인 assistant
|
||
- 승인 근거: 사용자의 후속 formulation gate 진행 요청 및 프로젝트의 수식 변경 독립 검토 원칙.
|
||
- 결정: 기존 Feature worktree에서 시간적분·관성·초기화·잔차·접선·회복량을 정식화하고 독립 검토한다. 유한회전과 drilling 영질량의 영향을 검산하며 질량 종류 등 물리 선택은 명시적인 제안으로 제시한다.
|
||
- 영향: 기존 requirement/research 산출물은 해당 작업 시점의 기록으로 유지한다. 독립 수식 검산은 허용하지만 solver 구현·reference 수정·Abaqus 실행·영속 schema 확정은 포함하지 않는다.
|
||
|
||
## HHT-ADR-006 — 물리적 가속도와 보조 가속도를 분리하는 HHT 후보
|
||
|
||
- 상태: `recommended-after-formulation-review`; 물리·구현 범위의 사용자 승인과 구별.
|
||
- Owner: 메인 assistant; 수식 owner는 formulation-agent, 독립 검토는 numerical-review-agent.
|
||
- 근거: [정식화](formulation.md), [관성 상세](formulation-inertia.md), [독립 검토](numerical-review.md), [Brüls–Arnold (2008) 원문 식 (5)–(8)](https://orbi.uliege.be/bitstream/2268/27088/1/pa_BrulsArnold2008_TheGeneralizedAlphaSchemeAsALinearMultistepIntegrator.pdf).
|
||
- 추천: `a`는 물리적 좌표 가속도, `A`는 Newmark에 쓰는 보조량으로 정의하고 `A_(n+1)=(1+alpha)a_(n+1)-alpha a_n`와 endpoint 동적 평형을 함께 푼다. `M(q)` 및 convective inertia의 정확한 미분을 접선에 포함한다.
|
||
- 이유: 단순 current-mass 대입은 variable-mass 제조해에서 1차로 떨어졌다. 두 시점 질량의 가중은 회전하는 질량 영공간을 소실시킬 수 있다. 추천 후보는 제한된 variable-mass 및 moving-null 사례에서 2차 수렴을 보이고 일정 질량 HHT로 환원한다.
|
||
- 영향: `A`를 physical acceleration으로 출력하지 않는다. 초기화는 전값 STEP force의 `0+` 동적 평형과 대수 일관성을 함께 만족하도록 제안한다. 원문 nonsingular-mass 수렴 결과를 실제 shell의 drilling DAE에 자동 적용하지 않으며 구현 후 별도 시간 수렴·관성·반력·에너지 검증이 필요하다.
|
||
|
||
## HHT-ADR-007 — HHT 일관질량 선택
|
||
|
||
- 상태: `accepted-user-decision`
|
||
- Owner: 메인 assistant; 수학 정의는 formulation-agent.
|
||
- 승인 근거: 사용자가 질량 선택 질문에 “일관질량 (추천): shell 속도 보간의 운동에너지를 그대로 적분”을 선택했다.
|
||
- 결정: [관성 상세 §2](formulation-inertia.md)의 **consistent kinetic mass**를 HHT 기본 및 이번 구현 범위로 사용한다. Scalar-moment nodal lumped 후보는 비교 연구로 보존하며 이번 HHT 지원 요구에서 제외한다.
|
||
- 이유: Consistent는 선택한 shell 속도 보간의 운동에너지를 그대로 적분한다. Lumped는 총질량과 scalar thickness moment를 유지하지만 일반 속도장·orbital inertia의 운동에너지가 달라진다. 이전 eigen reference와의 근접성은 채택 근거로 쓰지 않는다.
|
||
- 영향: 선택한 유한회전 운동학에서 관성력·접선을 계산하며 drilling에 임의 질량을 주지 않는다. 기존 정적·eigen mass 계약과 thesis 실험 branch에는 영향을 주지 않는다. 이 결정만으로 다른 HHT 후보식·공개 parameter·영속 결과 schema까지 승인되었다고 확대하지 않는다.
|
||
|
||
## HHT-ADR-008 — Numerical Review와 추가 수치 연구
|
||
|
||
- 상태: `accepted-for-current-task`; 수치 검증 설계와 실제 solver 통과를 구별.
|
||
- Owner: 메인 assistant; 독립 수치 기준·검증 설계는 numerical-review-agent, 추가 근거는 research-agent.
|
||
- 승인 근거: 사용자의 “numerical research 단계도 진행하세요” 요청과 프로젝트의 독립 수치 검토 원칙.
|
||
- 결정: [수치 기준](numerical-controls.md), [검증 사례](verification-cases.md), [추가 연구](numerical-research.md), [reference 비교 계약](reference-model.md)을 작성한다. User-selected consistent mass에 대해 Newton·초기 대수조건·질량 영공간·conditioning·관성 접선·시간수렴의 반증 가능한 기준을 정의한다.
|
||
- 이유·영향: 외부 reference 공통 tolerance를 유지하면서 내부 계산 정확도와 별도의 물리 coverage를 검증한다. 제한된 수식 probe의 실행 결과를 전체 shell·구현·reference 검증으로 승계하지 않는다. I/O field binding과 실제 구현·build/test·reference 비교는 후속 작업이다.
|
||
|
||
## HHT-ADR-009 — I/O·구현·Physics Evaluation 수행
|
||
|
||
- 상태: `accepted-for-implementation`; 검증 결과의 통과와 구별.
|
||
- Owner: 메인 assistant; I/O 정의·구현·독립 physics review는 각 할당 담당자.
|
||
- 승인 근거: 사용자의 “I/O definition, implementation, physics evaluation gate 모두 진행하세요” 및 후속 “깃에 커밋 하면서 진행하세요”.
|
||
- 결정: HHT-ADR-006의 검토된 physical a/auxiliary A 분리, 0+ full STEP 초기화, HHT-ADR-007의 consistent mass를 실제 구현 대상으로 채택한다. 공개 입력은 [I/O 계약](io-contract.md)의 단일 NLGEOM shell DIRECT·기본 계수·zero 초기조건/고정 BC·constant force CLOAD subset이다. 별도 dynamic state와 dynamic-only HDF5 schema v1을 추가하고 기존 static/eigen 계약은 보존한다.
|
||
- 영향: [구현 계획](implementation-plan.md)에 따라 MSVC Debug build/CTest, 독립 수치·물리 검증과 지정 원본 reference 비교를 수행한다. 확인된 문서·검증된 구현 묶음을 현 branch에서 순차 커밋한다. 외부 solver 실행·reference 보정·push/release는 포함하지 않는다. 실패·미실행 검증을 통과로 표시하지 않는다.
|
||
|
||
|
||
## HHT-ADR-010 — Newton 시작 형상과 영변형 산술
|
||
|
||
- 상태: `accepted-implementation-detail`; reference 통과를 의미하지 않는다.
|
||
- Owner: 메인 assistant; 독립 수치 검토는 numerical-review-agent.
|
||
- 근거: 승인된 전체 구현 범위 안의 수치 시작값 선택. `.harness/build/hht-numerical/zero-trial-red.log`와 original reference 실행에서 먼저 실패를 재현했다.
|
||
- 결정: 모든 increment의 Newton 초기 좌표를 `q_n`으로 둔다. Constant-A 외삽은 지정 DIRECT h=.1에서 최초 trial geometry를 무효화했으므로 N2의 시작값을 명시적으로 갱신한다. HHT predictor/rate/접선, alpha/beta/gamma, 고정 dt, Newton100 및 모든 tolerance는 유지한다. 유효한 시작점에서 나온 correction도 chart/geometry 밖이면 즉시 실패하며 retry·clamp·cutback은 없다.
|
||
- 추가 수정: 초기 형상에서 차감한 큰 covariant metric 대신 `delta g`로 Green strain과 `F=I+delta g⊗Gdual`을 계산한다. 수학적으로 같은 식이며 영변형에서 생긴 artificial drilling force를 제거한다. 강성·정적 결과 영향은 기존 regression으로 확인한다.
|
||
- 검증: decimal 좌표 영변형 exact-zero 회귀, finite/warped scalar drilling constraint·gradient·Hessian, 작은각 D3 threshold 검사가 통과했다. 상세 실행/물리 acceptance는 최종 implementation evidence에서 구분한다.
|
||
|
||
## HHT-ADR-011 — 정확도 요구를 유지한 가속도 복구 후보 검토
|
||
|
||
- 상태: `accepted-for-formulation-and-verification`; 후보 채택과 production/schema 변경은 미승인.
|
||
- Owner: 메인 assistant; formulation-agent 정식화, numerical-review-agent 독립 검토.
|
||
- 승인 근거: 2026-09-26 사용자가 “정확도 요구 유지: 제약조건에 맞는 가속도 복구를 별도로 정식화·검증한 뒤 채택 여부 결정”을 선택했다.
|
||
- 결정: 기존 C08/N7 정확도 요구와 실패 기록을 유지한다. 적분 history의 `a_h`와 별도 제약 가속도 `a_rec=a_h+N*eta`를 구분하는 후보를 정식화하고 독립 검증한다. `a_rec`를 다음 증분 history에 조용히 대입하지 않는다.
|
||
- 근거: [독립 구현 검토 NR-009–010](implementation-numerical-review.md)의 Decimal80 반례와 실제 C08 실패. 초기 `A0`만 수정하는 방법은 일반적인 전체 시간 가속도 2차 정확도를 회복하지 못한다.
|
||
- 영향: 현 공개 출력 의미·영속 schema·지원 범위·허용값은 유지한다. 후보의 hidden2 만족만으로 실제 shell의 2차 정확도를 주장하지 않는다. C08b 회전 좌표/속도 차이와 physical acceleration 오차는 별도로 해결해야 하며 채택은 검증 결과를 제시한 뒤 결정한다.
|