chore: remove retired workflow and historical material

This commit is contained in:
KOKO\Mimi
2026-10-17 22:39:47 +09:00
parent 4bd19f5bf0
commit 774b80099c
768 changed files with 0 additions and 54164 deletions
@@ -1,24 +0,0 @@
# 외부 입력 subset과 독립 솔버
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
기존 모델을 읽고 외부 결과로 검증해야 하지만, 공개 입력 형식과 외부 솔버의 내부 알고리즘은
같은 계약이 아니다. 파서 호환성을 제품 목표로 삼으면 검증 가능한 물리 의미보다 문법 수용이 앞설 수 있다.
## 결정
승인된 Abaqus keyword subset의 의미만 지원한다. S4/S4R 등 source 표기는 보존하고
FESA 정식화로 연결한다. 외부 solver의 내부 적분·안정화·상태·결과 생성 동등성은 주장하지 않는다.
## 대안과 선택 이유
Full compatibility는 비공개 내부 동작까지 추정해야 하므로 채택하지 않는다.
자체 입력 형식만 쓰는 방식은 기존 .inp와 외부 reference를 직접 활용하는 현재 작업 흐름과 맞지 않는다.
## 영향
입력과 kernel의 연결·차이를 명시해야 한다. Exact 수치 일치는 가능하지만 내부 동등성의
증거가 아니다. Unknown model-affecting 입력은 silent approximation 대신 실패한다.
@@ -1,24 +0,0 @@
# 검증 환경과 private backend
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
수치 library의 package target·integer·resource와 Windows runtime이 core로 퍼지면
물리 코드와 설치 환경을 독립적으로 검증하기 어렵다.
## 결정
현재 CMake/MSVC x64 Debug/CTest와 C++17 이상을 검증 기준으로 유지한다. MKL·TBB·
HDF5·Win32는 backend-neutral 경계 뒤에 두고 project-owned dependency target과 runtime staging을 사용한다.
## 대안과 선택 이유
Vendor 타입을 public에 노출하면 adapter 교체가 core와 consumer 변경으로 전파된다.
다른 toolchain의 즉시 지원 선언은 해당 환경의 numerical/runtime evidence 없이 할 수 없다.
## 영향
Dependency 추가마다 build뿐 아니라 실제 runtime closure를 확인한다. 개인 설치 경로를
제품 계약으로 고정하지 않으며 실행기 MSBuild 지원을 FESA의 별도 제품 검증으로 취급하지 않는다.
@@ -1,24 +0,0 @@
# 모델 정의와 equation 소유권
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
Source label, 모델 배열과 equation 번호는 서로 다른 수명과 의미를 가진다. 실행별
제약이나 procedure가 바뀌어도 원본 모델과 결과 identity는 보존되어야 한다.
## 결정
Domain이 전체 정의를 소유하고 AnalysisModel은 non-owning view로 둔다.
DofManager가 DOF·partition·equation·sparse pattern을 전담한다. Semantic definition과 numerical object는 검증된 생성 경계로 연결한다.
## 대안과 선택 이유
Node/Element에 equation 번호를 저장하면 여러 실행 상태가 원본 정의에 섞인다.
모델 복사는 별도 수명·동기화 비용을 만들고 source identity가 다른 복사본처럼 취급될 수 있다.
## 영향
Domain 수명을 view보다 길게 유지해야 한다. Parser나 consumer가 모든 concrete storage를
알아야 하는 구조를 피하되 speculative clone·registry·사용하지 않는 capability는 추가하지 않는다.
@@ -1,24 +0,0 @@
# Local contribution과 결정적인 조립
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
병렬 계산의 속도를 얻으면서 같은 입력의 sparse 구조·합산·진단·결과 순서를
재현해야 한다. Floating-point 누적 순서는 수치 결과에 영향을 준다.
## 결정
Local contribution은 index-owned buffer에 계산하고 join 뒤 stable COO와 고정된
reduction으로 global matrix/vector에 반영한다. Global pattern은 DOF owner가 정의한다.
## 대안과 선택 이유
Worker의 직접 global CSR 갱신은 race 또는 lock 순서 의존을 만든다.
Hash iteration에 의존한 누적도 stable source ordering을 보장하지 않는다.
## 영향
Contribution buffer와 정렬 비용을 부담한다. Optimization은 같은 순서·물리 의미·실패
선택을 보존해야 하며 더 빠르다는 이유로 결정론을 선택 기능으로 만들 수 없다.
@@ -1,24 +0,0 @@
# Candidate 검증과 공식 HDF5
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
반복 중 일부 값 또는 저장 중 일부 dataset만 성공한 결과를 정상 해석으로 읽으면
실패 뒤 기존 유효 결과까지 신뢰할 수 없게 된다.
## 결정
State와 recovery는 완성·검증된 candidate만 반영한다. 공식 결과는 입력 lexical sibling의
HDF5이며 임시 파일의 self-check·close 후 최종 교체한다. Output lease로 동일 output pair의 동시 쓰기를 막는다.
## 대안과 선택 이유
실패 중간 state나 final 파일에 직접 누적하면 rollback 범위를 명확히 하기 어렵다.
CSV를 공식 결과로 두면 계층적 위치·단위·identity 계약을 현재 방식으로 유지할 수 없다.
## 영향
Candidate와 readback 비용을 부담한다. State commit과 file finalize, final HDF5와
진단 로그의 수명은 구분하며 실패 시 로그까지 동일하게 보존된다고 약속하지 않는다.
@@ -1,24 +0,0 @@
# Procedure별 lifecycle과 full residual
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
정적·비선형·고유치·동적 해석은 초기화·해법·종료·결과 의미가 다르다.
반력과 free 잔차는 같은 수치 vector에 있어도 다른 물리적 역할을 가진다.
## 결정
각 procedure가 필요한 state와 solver lifecycle을 소유한다. 기존 선형 정적 해석은
elimination의 coupling을 유지하고 full residual Kd-F에서 constrained 반력과 free 평형을 구한다.
## 대안과 선택 이유
Static lifecycle에 계속 분기를 누적하면 다른 procedure의 state·종료 의미가 섞인다.
Constrained 외력만 부호 반전한 반력은 지정 변위와 stiffness coupling을 반영하지 못한다.
## 영향
새 procedure는 입력부터 output까지 연결해야 한다. 빈 free system은 유효한 경우
지원하며 arbitrary penalty·regularization을 failure의 우회로로 사용하지 않는다.
@@ -1,24 +0,0 @@
# 원본 reference와 승인된 비교 정책
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
구현에 맞춰 기준 데이터를 고치거나 family마다 scale을 달리 정하면 수치 검증이
구현과 기준의 순환적 자기 정당화가 된다.
## 결정
기존 reference의 경로·값을 보존하고 source identity·component를 먼저 일대일
대응한다. Approved family/scale/near-zero/row/RMS/zero-scale 정책과 판정 영향을 유지한다.
## 대안과 선택 이유
Canonical naming·보조 metadata를 필수로 추가하는 방식은 실제 비교에 필요하지 않은
정리 작업을 gate로 만든다. Missing row 무시·평균·floor·clamp는 다른 모델을 통과시킬 수 있다.
## 영향
필수 원본이 없으면 비교 미실행으로 남긴다. 정책 변경은 사용자 승인과 영향 검증을
요구하며 새 evidence를 생성할 수 있지만 과거 실패 보고와 원본을 소급 수정하지 않는다.
@@ -1,24 +0,0 @@
# 수치·물리·외부 비교의 분리
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
유한한 해, 선형계 성공 또는 외부 변위 일치만으로 정식화·회복·에너지·시간 정확성을
모두 확인할 수 없다. HHT의 reference 통과와 temporal 실패도 별개 증거다.
## 결정
동작 검사, analytical/invariant, 필요한 reference와 독립 numerical/physics 판단을
구분한다. 수식·요소·재료·적분·상태 갱신 변경은 독립 검토를 받는다.
## 대안과 선택 이유
모든 기능에 같은 고정 benchmark 목록을 강제하면 의미 없는 검사를 늘린다.
반대로 test count나 runner exit만으로 완료를 판정하면 검증되지 않은 물리를 통과로 오인한다.
## 영향
기능별 필수 evidence와 미실행·실패·제외를 명시해야 한다. Release-readiness 감사는
별도 요청이며 독립 검토·감사 결과가 배포 권한을 부여하지 않는다.
@@ -1,24 +0,0 @@
# 필요한 전문 작업과 명시적 검증 실행
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
고정 stage·반복 인계·자동 Git·종료 hook 중심 운영은 실질적인 공학 판단보다
형식적인 상태 유지와 중복 실행을 늘렸다.
## 결정
메인이 범위를 파악해 필요한 전문 작업만 배정한다. 실행기는 config·toolchain·
backend 명령을 명시 호출 시 한 번 실행한다. 일반 실패는 현재 owner가 수정한다.
## 대안과 선택 이유
전용 coordinator·planning/correction profile·고정 상태기계·retry 예산을 유지하는
방식은 폐기한다. 검증 script에 commit/push 권한을 묶는 방식도 채택하지 않는다.
## 영향
메인이 작업 범위와 evidence를 확인해야 한다. 반복 승인 없이 승인된 일반 작업을
이어가되 원격·파괴·외부 비용·상위 계약 변경의 사용자 결정 경계는 유지한다.
@@ -1,24 +0,0 @@
# 공통 기준과 기능별 상세 계약
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
공통 기준에 모든 기능 진행상태를 누적하거나 같은 checklist를 여러 파일에 두면
어느 기록이 현재 요구와 상태인지 모호해진다.
## 결정
공통 제품·수치 기준과 기능별 요구·정식화·I/O·결정을 구별한다. Feature의
FEATURED_AGENTS·PRD·ADR을 유지하고 현재 checklist는 Feature PRD 한 곳에 둔다.
## 대안과 선택 이유
모든 기능에 빈 보고서·requirements·matrix를 일괄 만드는 방식은 중복을 늘린다.
기존 계약을 새 파일명 규칙에 맞춰 자동 이동·재번호화하면 승인·evidence의 추적성을 잃는다.
## 영향
복잡한 상세 내용만 분리한다. 기존 ID·승인 근거·reference와 과거 운영 이력을 보존한다.
전체 상태 요약이 기능별 필수 검사를 대체하지 않으며 공통 기준 변경은 별도 요청으로 다룬다.
@@ -1,24 +0,0 @@
# MITC4 고유치 첫 구현의 경계
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
MITC4 고유치의 첫 구현에서 외부 값 차이와 추가 정확도 개선을 분리해 진행할
필요가 있었고, 사용자가 모드별 5% 범위의 첫 구현을 승인했다.
## 결정
실제 FEAST와 consistent에서 유도한 lumped mass를 사용한다. 외부 Value는 mode별
singleton family의 상대오차·RMS 모두 5%로 판정하는 named policy를 적용한다.
## 대안과 선택 이유
공통 RMS 1%를 이 첫 구현에 그대로 요구하는 선택 대신 범위를 명시한 예외를
채택했다. 다른 모드의 scale로 차이를 흡수하거나 reference를 보정하는 방식은 허용하지 않는다.
## 영향
다른 해석의 RMS 1%와 내부 eigen 잔차·정규화·직교성 기준은 유지한다.
정확도 개선·보류한 검증은 해결된 것으로 취급하지 않고 과거 1% 실패 기록도 보존한다.
@@ -1,31 +0,0 @@
# 고유치·HHT의 lumped mass
- 상태: 2026-10-11 사용자 승인으로 질량 선택 갱신
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
유한회전 shell 동역학에서는 회전관성과 configuration에 따른 kinetic kinematics를
다뤄야 한다. 고유치 계산의 질량 선택을 그대로 옮기면 다른 물리를 해석할 수 있다.
## 결정
고유치와 HHT는 lumped mass를 사용한다. MITC4 고유치의 기존 nodal block mass는 유지한다.
MITC4 HHT는 `rho*N_i*dV0`의 nodal kinetic measure로 질량·관성력·convective 항·접선·
운동에너지·운동량을 함께 계산한다. Hex8은 전체 요소 reference consistent matrix의
행합을 대각에 넣은 뒤 경계조건을 축소한다. Shell의 회전 block까지 scalar diagonal로
치환하는 결정은 아니다. Analytic null·부분구속·물리 가속도와 보조 가속도의 구분을 유지한다.
## 대안과 선택 이유
기존 consistent 선택과 질량만 바꾼 비교 연구는 과거 기록으로 보존한다. 이번 명시 승인으로
기본 질량을 변경하며 solver 선택 옵션이나 fallback은 추가하지 않는다.
임의 drilling inertia나 부분구속의 full-clamp 치환은 원래 모델을 바꾼다.
## 영향
비대칭 접선·moving null·regularity와 실제 shell temporal 검증 부담이 있다.
현재 시간수렴 실패를 유지하며 가속도 복구 후보는 독립 검증·채택 전 승인된 해법으로 간주하지 않는다.
기능별 정확한 정의와 대체 이력은 [HHT-ADR-012](../../hht-implicit-dynamics/ADR.md#hht-adr-012--고유치hht-lumped-mass-채택)와
[HEX8-ADR-010](../../hex8-structural-analysis/ADR.md#hex8-adr-010--고유치hht-reference-row-sum-lumped-mass)에 둔다.
@@ -1,24 +0,0 @@
# Uncoupled shell 열해석부터 구현
- 상태: 기존 승인·인터뷰 합의의 의미 유지
- 결정 주체: 사용자와 기존 승인 계약의 담당자
## 배경
최종 목표는 양방향 열-구조 연성이지만, 현재는 온도장 자체의 transient 해석과
검증 범위를 먼저 확정해야 한다.
## 결정
첫 범위는 단일 step uncoupled shell 열해석, 균질 단면의 온도점 5개와 상수 물성,
고정 증분이다. 초기에 검토한 두께 방향 등온 범위는 5점 온도장으로 대체한다.
## 대안과 선택 이유
즉시 양방향 연성을 구현하는 방식은 현재 요구 범위를 넘는다. 두께 등온 모델은
아랫면·윗면의 독립 지정 온도와 두께 방향 열전달 요구를 충족하지 못한다.
## 영향
열행렬·flux·반력·에너지·시간수렴을 별도로 검증해야 한다. 두 구간 이차 보간,
Backward Euler, geometry 근사와 결과 schema는 제안 상태이며 이 범위 결정만으로 채택되지 않는다.
-20
View File
@@ -1,20 +0,0 @@
# 프로젝트 결정 목록
현재 유지하는 선택과 그 비용을 구분한다. 과거 승인 이력과 수치 기준은 그대로 보존하며,
아래 기록은 새로운 physics·acceptance 승인이 아니다. 열해석의 제안 방법은 채택 목록에 넣지 않는다.
| 파일 | 유지하는 선택 |
| --- | --- |
| `0001-independent-solver.md` | 외부 입력 subset과 독립 솔버 |
| `0002-build-and-backends.md` | 검증 환경과 private backend |
| `0003-model-and-equations.md` | 모델 정의와 equation 소유권 |
| `0004-ordered-assembly.md` | Local contribution과 결정적인 조립 |
| `0005-state-and-output.md` | Candidate 검증과 공식 HDF5 |
| `0006-procedure-lifecycle.md` | Procedure별 lifecycle과 full residual |
| `0007-reference-evidence.md` | 원본 reference와 승인된 비교 정책 |
| `0008-layered-verification.md` | 수치·물리·외부 비교의 분리 |
| `0009-explicit-development.md` | 필요한 전문 작업과 명시적 검증 실행 |
| `0010-feature-contract-ownership.md` | 공통 기준과 기능별 상세 계약 |
| `0011-eigen-first-implementation.md` | MITC4 고유치 첫 구현의 경계 |
| `0012-hht-kinetic-mass.md` | 고유치·HHT의 lumped mass |
| `0013-thermal-staged-scope.md` | Uncoupled shell 열해석부터 구현 |
-230
View File
@@ -1,230 +0,0 @@
# 미해결 문제
## Hex8 제공 고유치 원본과 최저10 모드 불일치
- 현재 상태(2026-10-11): 사용자가 고유치·HHT lumped mass를 승인했다. 변경본의 실제
MSVC Debug CLI와 원본 10개 Value 비교는 모두 native0/PASS이며 이 modal 불일치는
해소됐다. 새 evidence는 `.dryforge/lumped-mass-adoption-20261011/references/hexa_freq/`
아래 `native.json`·`comparison.json`이다. 전체 회귀와 다른 절차의 재검증은 별도로
진행한다. 아래 consistent 구현의 실패와 당시 미승인 상태는 과거 조사 이력이다.
- 조건·재현: 체적 평균 구현 `18b36c1`의 실제 `hexa_freq.inp` CLI native0 결과에
2026-10-11 제공된 `reference/hexa/hexa_freq.txt`를 비교한다. 명령과10개 metric은
[최종 비교](../hex8-structural-analysis/verification.md#2026-10-11-제공된-고유치-원본의-최종-비교)에 있다.
- 관찰: 입력·원본 hash·모드1–10·HDF5/finite/quantity/unit 사전검사 PASS이나 비교 native1,
mode3/4/5/6/7/9/10의 singleton RMS/S가1%를 초과한다. Mode5는
λ=63489.09126468376 대 원본52797로20.2513234932%이며 row5%도 초과한다.
- 영향: 원본은 준비됐지만 FEM-REQ-HEX8-022–024의 필수 modal 비교 PASS와 기능 완료를
충족하지 못한다. 정적2·동적2 PASS와 내부 original-pencil 검증은 이 차이를 없애지 않는다.
- 초기 원인 분리의 한계: 제공 TXT에는 mode shape와 외부 조립 K/M·실제 element/mass
formulation evidence가 없다. 고유치 차이만으로 강성·질량 중 어느 원인인지 확정할 수 없다.
승인된 consistent M·평균 trace energy·1% 기준을 원본 값에 맞춰 변경할 근거가 아니다.
- 후속 방향: 동일 입력의 원본 modal element/mass 설정과 mode shape 또는 matrix evidence를
확보해 차이를 분리한다. Physics·acceptance 변경이 필요하면 근거와 영향을 사용자에게
전달한다. 원본 수정·모드 재매칭·frequency 변환·tolerance 완화로 통과시키지 않는다.
- 후속 조사(2026-10-11): [원본 질량·요소 설정 조사](../hex8-structural-analysis/reference-mass-investigation.md)에서
Abaqus 공식 문서의1차 요소 row-sum lumped mass를 확인했다. 동일 평균 trace K의
private 계산에서 consistent M은 실제 FESA λ를 상대차이4.57e-12 이내로 재현했고,
lumped M은 원본10개 λ 모두 상대차이0.00196105% 이내였다. 질량 선택 차이가
불일치의 주된 원인이라는 강한 근거다. 실제 원본 operator 직접 확인은 아니며 현재
FEM-REQ-HEX8-007/HEX8-ADR-002의 consistent 계약과 필수 modal FAIL은 유지한다.
채택하려면 eigen/HHT 공통 질량 정책과 영향 검증 범위를 먼저 결정해야 한다.
## Hex8 이전 표준 full8 정식화의 원본 불일치와 변경 후 검증
- 변경 후 관찰: 승인된 체적 평균 구현 `18b36c1`의 새 두 정적 CLI는 native0이며,
공식 비교기의 source/model/schema/point/frame/finite 사전검사와 U/RF/S 모든 행이
통과했다(native0). 실제 출력의 독립 mean energy·내력·응력·반력 ledger도 bounded
physics PASS다. 비선형 free residual은 기존 static 기준 내 비영 값이며 exact equilibrium이
아니다. 상세 수치는 [새 verification](../hex8-structural-analysis/verification.md#2026-10-10-체적-평균-energy-구현과-현재-재검증)에 있다.
정적 불일치는 변경본에서 해결됐고 새 두 동적 원본도 각각101-frame U 비교 PASS다.
실제 원본의 독립 수치·물리 검토도 bounded PASS다. 전체787 회귀는784 PASS·기존
FAIL2·SKIP1(native8)으로 종료했고 추가170개 모두 PASS·새 예외0이다. 전체 green은 아니며,
제공된 modal Value의 수치 불일치는 위 별도 문제로 남는다. 아래 과거 실패 근거는 보존한다.
- 과거 조건·현상: `e2c3c5b`의 실제 CLI가 byte-identical scratch 입력
`hexa_linearstatic.inp`에서 native exit0으로 공식 HDF5를 생성했다. 원본13개의 SHA와
scratch SHA는 보존됐다. Source step/factor1↔Increment10,442절점·300요소·IntPt1–8,
좌표·tensor·단위·finite를 독립 확인했지만 U1326/RF51/S14400의 RMS/S는 각각
`0.0167395197235`/`0.0681889252819`/`0.0427090341746`으로 공통1%를 초과했다.
행 실패는79/34/7783개다. RF는 전체442행을 먼저 확인한 뒤 구속51성분으로 투영했다.
- 당시 영향: 필수 원본 family PASS와 전체 기능 검증 완료 조건을 충족하지 못했다.
CLI 성공·내부 평형·HDF5 correctness는 외부 수치 일치와 별개다. 현재 checklist는
[기능 PRD](../hex8-structural-analysis/PRD.md)에 있다.
- 당시 해결하지 못한 이유: 독립 standard full8 `BᵀCB` 조립·solve가 당시 변위와 일치하고
같은 원본 형상·변위의 Gauss 구성식도 현재 stress/strain을 재현한다. 승인된 full8 식을
원본 값에 맞춰 조용히 바꾸거나 tolerance를 완화할 근거가 아니다. 원본 응력의 체적 성분은
요소 평균 trace로 재구성하면 크게 가까워지지만 이것만으로 private algorithm을 증명하지 않는다.
- 후속 방향: 정식 비교기·독립 수치 검토를 완료했다. 두 정적 공식 결과는 source/schema
검사와 CLI native0이나 U/RF/S family가 모두 FAIL이다. 별도 선형 체적 평균 energy의
독립 Python 후보는 unchanged 수치 기준에 일치했으며 현재 생산 구현의 PASS가 아니다.
[승인된 변경 근거](../hex8-structural-analysis/reference-discrepancy-proposal.md)에 영향을
구체화했고, 사용자가 2026-10-10 B로 체적 평균 energy 도입과 전체 재검증을 승인했다.
변경본의 energy/force/Hessian·다섯 절차·필수 원본을 다시 검증한다. 원본·수치 기준을
유지하며 승인이나 private 선형 후보의 일치를 변경본 PASS로 처리하지 않는다.
## Hex8 동해석의 엄격 잔차와 내부 상태 정밀도
- 조건·현상: Hex8 동적 구현 `f661864`에서 `reference/hexa/hexa_dynlinear.inp`와
`hexa_dynnonlinear.inp`를 실행하면 세 번째 증분100회 제한에서 실패했다. 이 과거 원본
physical residual 비율은 `1.77739e-8`·`8.73572e-9`, 기준은 `1e-10`이다.
- 영향: 원본101개 endpoint의 필수 검증과 동해석 완료 조건을 충족하지 못했다.
현재 전체 요구와 checklist는 [기능 PRD](../hex8-structural-analysis/PRD.md)에 있다.
- 현재 해결하지 못한 이유: 실제 fresh 변위 보정의 반올림 소실을 확인했지만 제한된
단일·두 좌표 탐색과 보상 가산에서도 passing candidate를 얻지 못했다. 실패한 탐색은
Float64 해의 부재를 증명하지 않으며, 수렴 기준·원본을 변경할 근거로 쓰지 않는다.
- 후속 방향: [실패 근거](../hex8-structural-analysis/lessons.md)를 보존하고, 전체 물리
상태의 high+low 계산과 Float64 출력의 반올림 의미를 정하는
[승인된 변경안](../hex8-structural-analysis/precision-proposal.md)을 구현했다.
사용자가 2026-10-09 선택 A로 승인했고 소규모 상태·시간수렴·수지와 두 원본의 세 증분
관측을 검증했다. 독립 full-pair 재계산에서 원래 모든 free의 strict gate를 통과했다.
이후 frozen `c49cae4`의 두 원본은101 endpoint를 모두 native0으로 완료했고, `e2c3c5b`의
두 공식 CLI도101 frame을 native0으로 출력했다. 원래 strict gate를 유지한 이전 pointwise
구현의 정밀도 해결 evidence이며 동적 U 외부 비교는 각각101 family 중88 FAIL이다.
체적 평균 변경본의 전체 실행과 비교는 별도로 필요하며 acceptance 기준은 유지한다.
## HHT shell의 시간수렴
- 최신 상태(2026-10-13 사용자 중단): ADR-018의 C09와 공식 Release C08a7-grid는
통과했다. 진행 중이던 전체 Debug·Release C08b·원본 해석은 사용자 요청으로
종료했으며 native `-1`을 수치 실패나 PASS로 분류하지 않는다. 원본99증분의
accepted 로그는 있으나 현재 HDF5/U/UR이 없어 Abaqus 변위 오차는 계산할 수 없다.
[저장 구간 비교](../hht-implicit-dynamics/interrupted-validation-comparison.md)를
보존하며, hexa 완료·성능 최적화 후 전체 재검증 전까지 남은 판정은 미완료다.
- 조건·현상: 실제 shell의 두 시간수렴 사례에서 요구한 수렴 성능을 만족하지 못한
재현 기록이 남아 있다. 원본 변위 reference 통과와 함께 존재하는 실패다.
- 영향: 변위 일치만으로 동적 가속도·관성·에너지·전체 시간 정확성을 보장할 수 없다.
HHT 전체 기능 완료를 선언할 수 없다.
- 미해결 이유: 정확한 초기화 후에도 full-coordinate recurrence의 물리적 a 차수1
소형 반례가 존재하며 실제 shell 후보의 정식화·독립 검증·채택 판단이 필요하다.
C08b의 고주파 해상도와 정확 P 보존에 대한 strict-decrease 계약 문제도 구별해야 한다.
- 후속 방향: 기존 물리 질량·허용 오차를 유지한 재현에서 dt refinement별 q/v/물리 a와
hidden constraint 차수를 분리하고 후보 변경의 영향을 검증한다.
- 후속 근거(2026-10-12): [시간 정확도·운동량 후속 검증](../hht-implicit-dynamics/temporal-remediation.md).
소형 DAE의 독립 검산과 실제 C08b finer-grid·fixed-state P 분리를 수행했다.
같은 HHT의 carried-A private 후보는512–4096 native0이나 원 grid 정확도 FAIL과
strict P 조건은 유지한다. Production·N7·acceptance·public schema 변경은 미채택이다.
- 후속 상태(2026-10-13): [HHT-ADR-014/015](../hht-implicit-dynamics/ADR.md)는
reduced shell 구현·schema v2, C08b P 판정/최종 finer grid, C08a 최종 grid/hidden1·2
판정을 승인했다. 위 미채택 문구는 승인 전 기록이다. 최신 C08b Release는 원5 grid
이후 h=1/32768·증분4에서 위치 제약 normalized 약3.54e-10으로 실패했다.
동일 좌표의 독립 검산은 analytic constraint와 조립된 내력의 불일치를 확인했고,
Rodrigues coefficient의 작은 각도 미분 상쇄를 안정적인 전체 Jet 급수로 바꾼
별도 진단은 원 기준을 통과했다. 현재 production 변경본의 전체 시간 이력·N7·
Debug/원본 검증은 미완료다. [수치 검토와 재현 근거](../hht-implicit-dynamics/numerical-review-reduced-coordinate.md)를 따른다.
- 후속 좌표 표현 finding(2026-10-13): 보상 누적 C08a7 grid도 native8이다.
Required 좌표 trace58개 모두 현재 high가 가장 가까운 binary64이며 양쪽 이웃도
원1e-12 기준에 실패한다. 누적 pair의 exact requested target 오차는 최대7.70e-34로,
추가 덧셈 보정만으로 원 stored-high 판정을 통과시킬 수 없다. 기능 완료·전체 N3
판정에 영향을 주며 [비교 대상 분리 제안](../hht-implicit-dynamics/c08-n3-coordinate-representation-proposal.md)은
HHT-ADR-016으로 사용자 승인됐으며 변경본 구현·검증을 진행한다. 이전 acceptance의 실패 로그를 보존한다.
Proper-Q actual 초기 재구성 실패는 canonical primitive gradient로 정정 후 초기 gate를
통과했다. 후속 C09는 첫 증분100 correction 뒤 physical moment N2 비수렴으로 실패했다.
Tiny rotation에서 director increment가 full director의 반올림에 흡수되어 물리힘과
tangent가 불일치하는 bounded RED/GREEN을 확보했고, 동일한 direct increment를
force·tangent·recovery energy에 적용한 Debug 요소16개는 통과했다.
후속 actual 관성 소실을 `M*a+c`의 안정적 수축으로 수정한 Debug는 관성12개 및
N5가 통과했으나 C09 초기 재구성에서 실패했다. 독립8-row 감사는 plain partition
누적의 잡음을 분리했으며 초기화와 같은 compensated 수축으로 정정했다.
작은 가속도에서 Dq 관성 접선과 Ldot의 소실도 별도 해석식 재현에서 확인됐다.
원 state·N2 scale·허용오차를 유지한 coefficient-first 산술의 Debug 관성13개와
actual N5는 통과했다. 최신 Release C08a7-grid도 통과했지만 전체 검증은 미완료다.
C09 초기 재구성은 통과하나 full Newton100은 잔차 기준에 실패한다. Read-only
병진 고정 진단은 두 회전/auxiliary 보정 후 원 endpoint 기준을 만족했다.
[제안과 독립 검토](../hht-implicit-dynamics/c09-channel-newton-proposal.md)는
부분 행렬 N2-L 검사 영역 및 N7 full-model defect 보존을 명시한다.
HHT-ADR-017로 사용자 승인됐으며 production/controller 구현과 자연 trajectory 검증을 진행한다.
ADR-017 변경본 actual Debug C09의 여섯 trajectory는 자연 종료했지만 global-frame
covariance 비교에서 native8·113.03초로 실패했다. 원1e-10 기준을 유지하며
fixed selector의 비선형 chart 전환과 reduced HHT 이산화 영향을 조사한다.
[Read-only 진단](../hht-implicit-dynamics/channel-newton-covariance-diagnostic.md)은
순수 병진 비교 PASS와 유한회전 비교 FAIL을 분리했다. 같은 q/v/a의 회전된
assembly는 일치하지만 selected-coordinate 변환은 Newmark recurrence를
보존하지 않는다. [고정 null 보완공간 제안](../hht-implicit-dynamics/fixed-null-basis-proposal.md)은
별도 chart/integrator 변경으로 사용자 결정 전이며 기존 기준을 완화하지 않는다.
[실행 범위와 실패 기록](../hht-implicit-dynamics/temporal-remediation.md)을 따른다.
## Lumped shell C08b의 새 회전 좌표 예외
- 조건·현상(2026-10-12): 승인된 nodal lumped kinetic 변경본의 전체 Debug CTest에서
C08b는 `h=1/64,1/128`을 완료한 뒤 `h=1/256`에서 `invalid-dynamic-rotation`으로
종료했다. 이전 consistent 실행의 다섯 grid 완료 후 정확도 실패와 다른 경로다.
- 발견 당시 영향: 남은 세 grid와 마지막 refinement의 시간수렴·물리 기준이 미검증이었다.
원본 U 비교 PASS와 local 관성 검사의 통과로 이 예외를 대체할 수 없다.
최종 독립 diff 검토도 이를 FEM-REQ-HEX8-024의 P1 완료 blocker로 판정했다.
[후속 개발 인계](../hex8-structural-analysis/lumped-mass-adoption.md#최종-검토와-인계)에
필요한 관측량과 재검증 범위를 기록했다.
- 조사 상태: 별도 Debug probe에서 증분56·Newton 반복3·t=0.21875의 node index4
회전 좌표 `(0.64127523,-1.19777570,3.61620987)`가 유한하지만 크기가 π보다
큼을 확인했다. 후속 독립 조사에서 반복0부터 큰 보정이 생기며, q_n 시작의 큰 관성
잔차와 moving null의 미분이 정상적인 drilling 대수 접선을 거의 상쇄함을 확인했다.
확인한 상태·방향의 history·관성 항등식·접선 차분·선형 solve는 일치했다. Gate·
좌표 clamp·허용값은 유지한다. [상세 원인·후보 evidence](../hht-implicit-dynamics/newton-rotation-investigation.md).
- 후속 해결(2026-10-12): 사용자 요청으로 [HHT-ADR-013](../hht-implicit-dynamics/ADR.md)의
두 초기 형상·자유 energy 잔차 선택을 구현했다. 관련37/37 Debug PASS와 독립 source
검토, 실제 h=1/64..1/1024 전체5 grid 완료·새65-frame runtime 회귀 PASS로 조사한
회전 예외는 재발하지 않았다. [현재 구현·검증](../hht-implicit-dynamics/newton-start-policy.md).
원본101-frame U 재비교와 독립 kinetic/balance 대조도 완료했다.
- 남은 범위: C08b는 시간 정확도·차수와 roundoff 수준 P의 감소 기준에서 여전히 FAIL이다.
현재 C08b noise separation은 PASS이며 C08a noise INCONCLUSIVE와 구별한다. 전체802
Debug는11384.61초 뒤 native8:799 PASS·C08 정확도 FAIL2·기존 C04a SKIP1로 자연
종료했고 추가 예외0·검증 전후 source/원본/binary hash 동일성을 확인했다.
Runtime 개선을 가속도 정확도 해결이나 전체 green으로 표시하지 않는다.
## Python 운영 계약 검사의 기대값 불일치
- 추가 관찰(2026-10-10 Hex8 비교기 작업): 설정된 전체 Python 명령에 h5py dependency를
추가해 실행했으나 기존 `msvc_harness`·폐기된 `scripts.hooks` import의 collection5
오류로 native2·실행0개였다. 관련 comparator124/124 native0과 구분하며 전체 PASS가 아니다.
정확한 명령과 raw는 [Hex8 verification](../hex8-structural-analysis/verification.md)에 있다.
- 조건·현상: `tests/test_agent_skill_workflow_contract.py`의 inventory 검사는 11개
profile을 기대하지만 현재 `.codex/agents`에는 7개가 있다. 같은 파일은 루트 지침의
고정 단계 표를 parsing하고, 과거 phase 실행 예제를 검사한다. 현재 명시 실행기와
필요한 전문 작업만 호출하는 운영 원칙에 맞지 않는다.
- 영향: 이 검사를 현행 운영의 통과 증거로 쓰거나 통과시키기 위해 삭제된 절차를
복원하면 잘못된 개발 흐름을 다시 도입한다. 루트 문서 재구성 이후에는 옛 표 위치에
의존하는 검사도 조정 대상이다.
- 현재 해결하지 않는 이유: 2026-10-04 문서 정리에서는 source 정적 대조만 했고 Python
검사를 실행하지 않았다. 이후 위 collection 문제를 실제 관찰했지만 Hex8 기능 작업에서
기존 운영 검사나 폐기된 절차를 복원하는 수정은 범위 밖이다.
- 후속 방향: 유효한 동작·권한·검증 범위를 검사하도록 기대값을 정리하고 Python suite를
별도로 실행한다. 현재 CTest의 성공으로 대체하지 않는다.
## Shell 열해석의 새 필수 reference 비교 대기
- 조건·현상: 기존 INP/CSV는 `reference/shell-thermal/`에 보존돼 실제 비교했다.
Step-1/t=37/NT11의729행 중87행 FAIL, RMS/S 약0.0496741로 공통1%를 초과했다.
승인식의 독립 oracle도 같은 불일치를 보였으며 [사용자 결정](../shell-transient-heat-transfer/ADR.md#sth-adr-015-원본-reference-진단-전환과-새-모델-비교)에 따라 diagnostic으로 유지한다.
- 영향: 구현·내부 검증과 별개로 새 필수 외부 family의 통과가 없어 열해석 기능 검증
완료를 선언할 수 없다. 원본 NT11 한 성분·시점은 flux·반력·두께 분포의 대체 검증도 아니다.
- 현재 해결하지 않는 이유: 사용자가 새 모델·CSV를 별도 경로에 준비 중이다.
문서 정리는 reference 생성·보정이나 Abaqus 실행을 포함하지 않는다.
- 후속 방향: 새 파일의 경로·source identity·시점·성분·hash를 확정하고 승인 tolerance로
실제 비교한다. 원본 diagnostic의 행·값·실패 metric과 물리 한계를 유지한다.
## 외부 배포 결정의 공백
- 조건·현상: 외부 사용자 배포는 장기 목표지만 배포 형태·지원 환경·dependency 재배포
조건과 외부 입력의 신뢰 범위는 정해져 있지 않다. 사용자가 별도 보안 정책은 없다고 확인했다.
- 영향: 현재 로컬 실행·개인 연구 범위를 외부 서비스의 보안·설치·지원 보장으로 설명할 수 없다.
- 현재 해결하지 않는 이유: 제품 배포 범위와 권리 검토는 아직 요청되지 않았으며 코드만으로
사용자의 배포 방식을 정할 수 없다.
- 후속 방향: 배포를 실제 추진할 때 형식·대상·설치·검증·데이터 취급 조건을 구체화한다.
## 기존 one-equation PARDISO 반복 호출의 간헐적 heap 실패
- 조건·현상(2026-10-14): 성능 작업에서 기존 static partial shell fixture의 free
1×1 SPD 해법을 반복 호출할 때 native `0xc0000374`를 관찰했다. SpMV 없이
PARDISO factor/solve/release만 호출한 진단에서도 재현했다. 같은 입력·진단 소스를
개선 전 Release library에 연결한 기본 8-thread 실행은 62번째 호출에서 종료했다.
[입력·runtime·실행 근거](../calculation-performance/mkl-coverage.md#baseline-pardiso-heap-failure와-제한)를 보존한다.
- 영향: 새 MKL SpMV 회귀와 분리된 기존 backend 노출이지만 vendor 내부 원인은
미확정이다. 반복 검사나 실제 실행의 crash를 정상 종료 또는 검사 통과로 표시하지 않는다.
- 현재 처리와 한계: 기본 정책의 1×1 PARDISO 호출에 한해 local 1-thread를 적용하고
호출 뒤 TLS를 복원했다. 독립 검토와 관련 lifecycle·동시성·크기 전환 검사는 통과했다.
보조 반복 100회 통과가 라이브러리 전체 문제 해결을 보장하지 않으며, 호출자의
비영 TLS override와 더 큰 시스템에는 기존 정책을 유지한다.
- 후속 방향: 최종 전체 Debug 검사와 원본 결과에서 새 실패를 별도로 확인한다.
재발 시 실제 입력·phase·thread·DLL hash와 native crash 자료를 유지하여 backend를
조사한다. 원인 근거 없이 dispatch·pivot·수치 기준이나 설치 환경을 바꾸지 않는다.
-71
View File
@@ -1,71 +0,0 @@
# 개발 현황
기준일은 2026-10-12이다. 주목적은 개인 연구용 솔버 개발이며 외부 사용자 배포는 장기
목표다. 아래는 실제 실행과 기능별 계약을 대조한 요약이며 상세 checklist를 대신하지 않는다.
2026-10-04 문서 정리 당시의 기존 기능 기록과 이후 Hex8 개발의 실행 증거를 구분한다.
종료된 전체 MSVC x64 Debug 통합 회귀는 source `9f7fb2e`에서 **617개: 614 PASS·2 FAIL·1 SKIP**,
native CTest exit **8**이다. 기존 478개 검사가 포함되고 추가139개 모두 PASS다.
두 HHT 실패와 skipped 항목은 구현 전 baseline의 status·metric body와 정확히 같다.
실행·복구·보존 경로는 [전체 회귀 보고서](../shell-transient-heat-transfer/implementation-verification.md#통합-전체-회귀와-남은-완료-조건)에 있다.
dev 병합 `858e87b`는 검증한 구현과 동일한 tree이고 별도의 새 실행을 뜻하지 않는다.
Hex8 연결 후 source `1eb9cdd`의 전체 build는 native exit0이며, 발견된780개 CTest의
제외 없는 실행은 native8,777 PASS·2 FAIL·1 SKIP으로 종료됐다. 추가163개는 모두 PASS이며
기존 예외3개의 이름·status·metric body는 baseline과 같다. 이는 이전 pointwise 구현의
기록이다. 2026-10-10 승인된 체적 평균 energy는 root `18b36c1`에 연결했고 관련65/65,
작성자150/150과 네 시간수렴 사례가 PASS다. 변경본의 전체787 CTest도 제외 없이 자연
종료했다(native8:784 PASS·기존 FAIL2·SKIP1). 기존617개를 보존했고 추가170개는 모두
PASS·새 예외0이다. 두 기존 실패의 metric body는 동일하고 SKIP은 이름·상태만 대조했다.
## 구현과 검증 상태
| 영역 | 구현 상태 | 확인된 evidence와 한계 |
| --- | --- | --- |
| Abaqus 입력·Domain·source identity | 구현됨 | 최신 통합 회귀의 기존 reader/mapper 검사는 PASS. 허용 subset·identity는 [공통 계약](../contracts.md)을 따름 |
| B33·MITC4 선형 정적 | 구현됨 | 기존 local·integration·reference 검사 PASS. [Beam](../linear-static-3d-euler-beam/README.md)·[Shell](../linear-static-mitc4-shell/README.md)의 과거 readiness를 현재 release 통과로 승계하지 않음 |
| MITC4 비선형 정적·표면 압력 | 구현됨 | 기존 Newton·pressure tangent·결과/reference 검사 PASS. [비선형](../nonlinear-static-newton-raphson/README.md)·[압력](../shell-surface-pressure-load/README.md)의 물리 coverage와 경고 범위를 유지 |
| MITC4 frequency | 승인된 첫 구현 완료 기록 | 당시417개 검사·외부 Value5%·독립 검토 PASS, 최신 기존 회귀도 PASS. [S3·정확도 개선](../mitc4-shell-feast-eigen2/README.md#실패와-남은-범위)은 보류 |
| HHT 동해석 | 입력부터 HDF5까지 구현, 기능 검증 미완료 | 101-frame U 비교 PASS 기록·UR 경고200건. [두 시간수렴 실패와 잔여 coverage](../hht-implicit-dynamics/README.md#실패시행착오다음-작업) 유지 |
| HHT 굽힘 단면력 복구 | 두께 계수 수정됨 | 관련 Debug 14 tests와 원본 HDF5 재생성·독립 식 대조 완료 기록. 전체 동해석 완료와 별개 |
| HHT 관련 전체 CTest | Newton 시작 정책 변경본802개 자연 종료, 전체 green 아님 | native8:799 PASS·C08a/C08b 정확도 FAIL2·기존 C04a SKIP1, 추가 예외0. [초기 Newton 정책](../hht-implicit-dynamics/newton-start-policy.md)은 관련37/37 PASS·C08b 5개 grid 회전 예외 해소·원본 U101 PASS. 과거789개 FAIL4와 후속 focused 결과는 별도 이력이며 현재 시간 정확도·coverage는 미완료 |
| HHT ADR-018 최신 재검증 | C09·공식 Release C08a7 통과, 전체 검증 사용자 중단 | 2026-10-13 Debug44/856 PASS 후45번 중단. Release C08b·원본도 사용자 중단이며 원본은99증분·t=9.9까지 accepted 로그만 존재. 현재 HDF5가 없어 새 Abaqus 변위 비교 불가. [중단 구간 비교와 후속 순서](../hht-implicit-dynamics/interrupted-validation-comparison.md)에 따라 hexa 완료·성능 최적화 후 전체 재검증 |
| Shell transient heat transfer | 구현·내부 검증 완료, 필수 외부 비교 대기 | [추가139개 PASS·수렴/수지·독립 수치/물리 검토](../shell-transient-heat-transfer/README.md). 기존 NT11은87/729행 수치 FAIL인 diagnostic; 새 모델·CSV 준비 중 |
| Hex8 선형·기하비선형 강성·lumped mass | 구현·필수 원본 비교·검토·인계 완료, 최신 전체 통합 판정 유예 | [최종 인계](../hex8-structural-analysis/final-handoff.md): 현재 관련C++91·Python96·보존된 원본5개 재대조 PASS. Hex8 경로의 source와 원본 hash 동일성 및 독립 수치·물리 검토 확인. 기존38/137·전체802·원본101-frame smoke는 과거 근거이며 최신 전체 통과로 승계하지 않음. 사용자 요청에 따라 장시간 전체 검증은 성능 최적화 후 수행 |
| Python 검증 실행기 | 구현됨 | 명시 build/test runner와 별도 Python suite가 존재. 일부 운영 계약 검사는 현행 절차와 맞지 않는 기대값을 유지 |
| 외부 사용자 배포 | 계획 | 배포 방식·설치·지원 정책과 dependency 재배포 검토가 아직 정해지지 않음 |
## 남은 작업과 의존성
Hex8은 2026-10-10 사용자 B 승인에 따른 다섯 절차의 체적 평균 energy 구현과 재검증,
2026-10-11 승인된 lumped mass 변경본의 필수 원본5개 비교를 완료했다.
기존 정식화와 원본의 차이는 [미해결 문제](findings.md)에 과거 근거로 보존했다.
원본·tolerance·strict gate·HHT 계수·schema layout은 유지했다. 최신 전체 회귀는
자연 종료한 FAIL이며, [최종 검토와 인계](../hex8-structural-analysis/lumped-mass-adoption.md#최종-검토와-인계)는
완료했다. 후속 사용자 요청에 따라 [초기 Newton 정책](../hht-implicit-dynamics/newton-start-policy.md)을
구현해 실제 C08b 5개 grid의 회전 runtime 실패를 해소했다. 시간 정확도·P 감소 실패는
유지하며 전체802 회귀는799 PASS·2 FAIL·1 SKIP으로 자연 종료했다.
FEM-REQ-HEX8-024의 최종 완료 판정은 아직 보류다.
[원인 조사](../hht-implicit-dynamics/newton-rotation-investigation.md)의 private 후보와
현재 production 정책·닫힌 검사 evidence를 구분한다.
세부 현재 checklist는 기능 PRD 한 곳에 유지한다.
후속 [질량·요소 설정 조사](../hex8-structural-analysis/reference-mass-investigation.md)에서
공식 Abaqus1차 요소 row-sum lumped 질량 설명과 별도 mean K+lumped M의10개 λ 재현을
확인했다. 그 private 조사 이후 명시 승인으로 production 질량을 변경했다. 새 원본 modal
비교 PASS는 실제 변경본 evidence이며 다른 해석의 완료를 대신하지 않는다.
1. Shell 열해석은 준비 중인 새 reference 모델·CSV의 별도 경로·identity·시점·hash를
확정하고 승인 tolerance로 필수 비교를 실행한다. 기존 NT11 diagnostic FAIL과 고정
5점 두께 모델의 해상도·곡면·접합부 검증 한계를 유지한다. 구현을 처음부터 재개하지 않는다.
2. HHT는 기존 시간수렴 실패를 유지한 상태에서 물리 가속도 복구 후보의 정식화·독립
검증·채택 여부를 결정한다. 강체 병진 전체 이력, Newton 경계·실패 보존, 반복 결정론,
partition·좌표변환 coverage를 완료한다. 변경 후 관련 검사와 필수 전체 검사를 수행한다.
3. Python 운영 계약 검사는 폐기된 profile·고정 단계·phase 인자 기대값을 현행 명시
실행 절차에 맞게 정리하는 별도 작업이 필요하다. 현재 문서 수정에 테스트 코드 변경을
포함하지 않는다.
4. Eigen 첫 구현 이후 정확도 개선과 보류한 검증을 별도 범위로 정한다. 현재 승인된
5% 기준을 다른 해석으로 확대하거나 과거 실패 기록을 수정하지 않는다.
5. 이후 양방향 열-구조 연성과 외부 사용자 배포의 구체적인 요구·지원 범위를 정한다.
두 장기 목표 간 순서나 일정은 정해지지 않았다.
각 기능의 세부 checklist와 승인 이력은 기존 기능 단위로 유지한다. 전체 요약의 상태가
상세 계약·필수 검사·실패 기록을 대체하지 않는다.