Files
FESADev/docs/hht-implicit-dynamics/ADR.md
T
2026-09-22 21:38:42 +09:00

91 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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에서 구분한다.