Files
FESADev/docs/hht-implicit-dynamics/PRD.md
T

13 KiB
Raw Blame History

HHT Implicit Dynamics PRD

  • Feature ID: hht-implicit-dynamics
  • 기준: dev commit 23b37ca644563b51472654af3b22811f077f15f6
  • 문서 상태: io-contract-defined; implementation-in-progress; physics-pending, 2026-09-22
  • 기준 문서: 프로젝트 지침, 프로젝트 PRD, 공통 ADR.

사용자 요청과 범위

사용자는 HHT implicit 적분법을 사용한 dynamic 해석 구현을 준비하기 위해 requirement/research, formulation, numerical research를 차례로 요청했고, 검증 모델로 reference/shellNL-dyn-meshfine을 지정했다. 현재 산출물은 요구사항·근거·정식화·독립 수치 검토와 검증 계약이다. 사용자의 후속 I/O definition·implementation·physics evaluation 전체 진행 요청에 따라 I/O 계약과 구현 계획을 작성하고 실제 solver 구현·검증을 진행한다.

시간적분 정식화와 shell 관성 상세의 후속으로 독립 수치 검토, 수치 기준, 검증 사례, 추가 연구를 작성한다. 사용자가 consistent kinetic mass를 선택했으며 이번 HHT 구현 범위는 일관질량이다. 후속 전체 gate 진행 요청에 따른 구현 대상·공개 subset·출력 schema는 HHT-ADR-009에 기록한다.

최소 구현 목표 후보는 기존 FESA-MITC4 shell의 선형 탄성 재료·기하비선형 동적 해석이다. 단일 step의 *Dynamic,direct, 초기 정지 상태, 고정 외곽 경계와 집중하중에 필요한 지원을 우선 정의한다. 질량·회전 관성·HHT 생략값·공식 동적 결과 범위는 근거를 확인하여 후속 정식화와 연결한다. 임의 amplitude, 시간변화 경계, 물리적 damping, contact, 소성, explicit, 다중 step/restart 또는 다른 요소의 dynamics는 이번 요청에서 지원을 약속하지 않는다.

지정 reference와 acceptance intent

원본: INP, 변위 CSV. 상세 inventory와 요구사항 ID는 requirements가 소유한다.

  • 평면 shell 729 nodes / 676 S4 elements, 두께 0.5, E=2.1e11, nu=0.3, rho=2700.
  • NLGEOM=YES, DIRECT, 시간증분 0.1, 종료시간 10, 중심 node 2에 global 1–3방향 각각 -100000 집중하중.
  • CSV는 101 frames × 9 nodes = 909 rows, U/UR 6성분을 제공한다. 초기 frame을 포함한 모든 시간 이력이 비교 대상이다.
  • source instance/node와 increment/time을 결정적으로 대응시킨다. HDF5 전체 node 결과에서 승인된 reference subset으로 projection한 뒤 누락·추가·중복·nonfinite를 검사한다. 최근접 시간 선택, 시간 보간 또는 평균으로 대응 오류를 숨기지 않는다.
  • 공통 TOLERANCE의 frame별 U blocking / UR warning-only family를 사용한다. Reference 비교 계약은 101 frames × 2 quantities의 202 families와 각 27 scalars, source/time mapping을 정의한다. Eigen 전용 예외는 적용하지 않는다. 실제 HDF5 field binding은 후속 I/O 계약이다.
  • V/A, 동적 반력, 에너지 reference는 없다. 독립 oscillator·시간 수렴·관성 평형·회전 및 에너지 검증이 필요하다. 원본 모델의 작은 변위만으로 유한회전 동역학을 검증했다고 주장하지 않는다.

현행 dev와의 차이

다음은 소스 정적 조사 결과이며, 현재 dynamic 실행 결과가 아니다.

경계 현재 코드 evidence 후속 작업에서 정의할 내용
입력·semantic model domain_mapping_context.cpp의 ParseStepBlock 분기는 STATIC/FREQUENCY를 처리한다. FinalizeDensities는 FREQUENCY 외 DENSITY를 거부한다. Domain의 step 정의도 동적 절차가 없다. DYNAMIC/DIRECT 및 density의 승인 subset, 실제 시간·기본값·초기조건·진단
절차 선택 prepared_analysis는 선형 정적·비선형 정적·고유치만 선택한다. 정적 lifecycle에 누적하지 않는 별도 dynamic procedure와 결과 경계
상태 NonlinearAnalysisState는 load factor, q, triad/director, 내외력과 정적 recovery를 저장한다. v/a 및 실제 시간 이력은 없다. trial/committed q/v/a·시간·이력의 소유권과 일괄 commit/실패 보존
내력·접선 NonlinearMitc4Shell은 total rotation-vector trial의 내력·접선·recovery 평가를 제공한다. 이 좌표계에 맞는 관성력·HHT residual·유효 접선과 일관된 회전 운동학
질량 Mitc4Mass는 consistent/lumped global24를 제공한다. 현행 frequency는 lumped nodal mass를 사용한다. 동적 질량 선택·구성 의존성·회전 관성과 mass-null 자유도 처리; 정적/eigen 계약의 무단 변경 금지
선형계 backend 비선형 PARDISO adapter는 이미 비대칭 full CSR 접선을 처리한다. 동적 관성 접선의 비대칭 성분 보존과 기존 경계 재사용 검토
에너지 비선형 요소는 physical+drilling potential의 내력·Hessian을 계산하지만 반환 에너지는 physical strain energy다. 운동에너지·수치 drilling 에너지·외력 일을 구분하는 회복 계약
공식 결과 정적/eigen 전용 state/writer가 존재한다. HDF5의 step/time/frame 및 q/v/a·반력·에너지 공개 범위, readback·comparison

Density 허용과 HHT update 식 추가만으로 기능이 완성되는 것은 아니다. Semantic model부터 동적 상태, 방정식, recovery, 공식 결과 및 검증까지 연결해야 한다.

결정과 후속 인계

결정 기록은 ADR, 결정 항목의 원본은 requirements의 HHT-OPEN-001–006이다. 질량 종류는 사용자 결정으로 확정했다. 수식과 수치 검증 계약을 연결하되 공개 parameter·결과 범위 및 I/O binding은 후속으로 확정한다. 문서 검토만으로 구현이 검증되었다고 표시하지 않는다.

이번 Research에서 확인한 공개 입력 의미는 무접촉 기본 HHT-TF 계수 alpha=-0.05, beta=0.275625, gamma=0.55, amplitude 생략 시 STEP 하중, DIRECT 고정 증분 및 기본 초기 가속도 계산이다. 최초 HHT force history와 초기 frame의 결합, FESA 질량·유한회전 관성 및 공개 결과 범위는 여전히 후속 계약이 필요하다. 원 HHT의 표준 결합 계수 범위와 vendor가 허용하는 전체 parameter 범위를 혼동하지 않는다.

Reference의 max|U3|/thickness≈9.84e-5, 기존 동일 mesh eigen reference에 대한 dt/T1=7.4567은 작은 응답과 성긴 시간간격을 보여준다. 이 CSV와의 일치만으로 큰 회전 관성, V/A 또는 시간 정확도를 검증할 수 없다. 단위계는 입력의 일관된 단위를 따르며 SI로 단정하지 않는다.

Formulation 결과

정식화의 추천 후보는 유한회전 kinetic energy의 정확한 관성력과 물리적 가속도 a / 적분용 보조 가속도 A의 분리다. A_(n+1)=(1+alpha)a_(n+1)-alpha a_n를 Newmark update에 사용하고 endpoint 물리 평형을 푼다. 일정 질량에서는 기존 HHT 식으로 환원한다. 비선형 내력은 현행 dev의 objective drilling을 포함한 에너지 미분을 보존하며 이전 논문 실험의 접선·drilling 변경을 도입하지 않는다.

독립 수식 검토와 재현 가능한 검산은 일정 질량 HHT 식에 M(q)만 대입하면 일반적으로 1차 오차가 남음을 확인했다. 추천 후보는 smooth variable-mass 제조해와 영질량 방향이 회전하는 제한된 모델에서 U/V/물리적 a의 2차 수렴을 보였다. 메인도 공개된 재현 코드를 실행하여 표의 결과를 확인했다. 이는 실제 MITC4 shell의 동적 해석 또는 보편적인 singular-DAE 증명의 대체물이 아니다.

기존 open 항목 이번 정식화에서 구체화한 후보 남은 결정/검증
HHT-OPEN-001 음수 alpha 관례, 결합 beta/gamma, 물리적 a와 보조 A 분리 추천 HHT 확장 채택 및 공개 parameter subset
HHT-OPEN-002 frame 0을 0+로 정의, 전값 force와 동적·대수 초기 평형으로 a0 계산, A0=a0; 수치 기준 N2–N4 정의 초기화 계약 채택과 I/O 진단 binding, 구현 후 검증
HHT-OPEN-003 사용자 선택: consistent kinetic mass; lumped는 비교 연구로 보존하고 이번 HHT 지원에서 제외 질량 종류 결정 완료; 임의 drilling inertia 없이 회전관성·영공간의 실제 구현 검증 필요
HHT-OPEN-004 기존 total rotation-vector chart에서 exact 관성·convective 항·비대칭 접선, moving-null 조건; N4–N7 및 C05–C08 정의 구현 후 실제 shell의 regularity·시간 수렴·회전 검증
HHT-OPEN-005 물리적 a/각가속도와 A, endpoint 반력, T/Uphys/Udrill/W의 수학적 의미 구별 공식 공개 quantity·HDF5 schema 및 mapping의 I/O 결정
HHT-OPEN-006 고정 100 increments, full Newton, 실패 trial 폐기, 동일 state의 전체 이력 commit; N2의 100 corrections/수렴 기준 정의 I/O 실패 lifecycle과 reference 밖 입력 범위, 구현 후 실패 보존 검증

현재 후보에 대한 독립 검토와 후속 구현 acceptance를 구별한다. 실제 shell 검증의 미실행은 현재 수식에서 오류를 발견했다는 뜻이 아니며, 구현 이후 반드시 확보해야 할 evidence다. 물리 선택과 수치·입출력 계약은 구현 착수 전 확정할 항목이다.

Numerical Review 결과

내부 수치 기준 N1–N7은 변위·회전의 scale를 분리하고, 관성·내력·외력의 상쇄 전 크기로 endpoint 잔차를 판정한다. Newton 잔차와 correction/rate 판정은 각각 1e-10, 선형 solve backward error는 1e-12다. 해석적으로 정의한 질량 영공간과 양의 물리 질량을 구별하며, 국소 positive block·대수 regularity에는 scale된 rcond_inf>=2^-32를 요구한다. 이 값은 외부 reference tolerance의 변경이 아니다.

검증 사례 C01–C12는 oscillator·STEP 초기화·variable mass·moving null, 운동에너지 적분·관성 접선, 반력·에너지·실제 shell 유한회전, 실패 보존·결정론·전체 reference 이력을 포함한다. D3 회전 미분에는 독립 block-exponential oracle를 지정했다. 모든 신규 solver 사례는 NOT RUN이다.

추가 full Cartesian moving-null 수식 probe는 전체 시점 최대 오차에서 q/v/물리적 a의 최종 refinement 차수 1.99985/1.99992/1.99834를 보였고 독립 reviewer가 재현했다. 이는 기하학적 normalization이나 각도 축약 없이 계산한 제한된 수식 evidence다. 전체 N1–N7 구현 검사와 실제 shell·reference 통과를 의미하지 않는다. 자세한 실행 범위는 수식 검산에 기록한다.

현재 checklist

  • 사용자 지정 모델·출력과 현행 dev 기준 확인.
  • 격리 worktree 및 Feature 핵심 문서 작성.
  • Requirement 초안: 원자적 요구사항과 acceptance intent 작성.
  • Research 초안: 일차·공식 근거의 열람 범위, 입력 생략 의미, 검증 후보와 근거 공백 정리.
  • 문서 간 범위·비교 정책·로컬 링크 및 reference 원본 보존 정적 검토.
  • 사용자 질량 선택 반영: 이번 HHT 기본·구현 범위는 consistent kinetic mass.
  • 나머지 물리·공개 parameter·공식 결과 범위 확정: HHT-ADR-009와 I/O 계약.
  • Formulation 후보 작성: HHT·정확한 유한회전 관성·초기화·잔차·접선·회복.
  • 독립 수식 검토와 variable-mass / moving-null 제조해 검산; 메인 재현 확인.
  • 추가 수치 근거 조사와 full Cartesian moving-null 독립 검산·재현.
  • Numerical Review의 내부 기준·검증 사례·reference 수치 비교 계약 검토 완료.
  • I/O 계약과 실제 field/schema binding 정의·정식화 대조.
  • HDF5 구현과 readback 검증.
  • Solver 구현·구성된 build/test·독립 물리 및 reference 검증.

문서 gate의 완료와 solver 기능의 완료를 구별한다. 현재 구현 단계에서는 내부 수치 검증, solver build/test 및 지정 reference 해석·비교를 실행한다. 통과 여부와 physics 평가는 실제 evidence로 갱신한다.