docs(mitc4): record drilling choices and current verification limits

This commit is contained in:
KOKO\Mimi
2026-10-20 15:17:40 +09:00
parent 45ac118d68
commit f09b3e1249
20 changed files with 378 additions and 20 deletions
@@ -0,0 +1,39 @@
# MITC4 drilling의 직접 스프링 기본값과 기존 방식 선택
## 상황
기존 비선형 상대 비틀림은 drilling의 polar·minimal swing·atan2와 고차 미분을 계산한다.
사용자는 이 계산을 생략하는 작은 직접 스프링을 기본값으로 요청했고, 초기 director와
전체 회전 기준에서 유한 강체 회전의 인공 에너지·복원모멘트가 생기는 것을 허용했다.
기존 polar1·관성3차 근사와 정확도 실패는 별도 보존 대상이다.
## 결정
모델 전체의 compile-time 설정 하나로 직접 초기 director 스프링 또는 기존 상대 비틀림을
선택하며 기본값은 직접 방식이다. `gamma=d0·phi`, `U=0.5*kd*sum(gamma²)`를 사용하고
초기 physical rotary 대각8개 평균의 `1e-3` scale을 고정한다.
선형·비선형 정적·pressure·frequency·HHT에 같이 적용한다.
직접 HHT hidden 미분은 실제 cubic 관성이 계산한 null과 같은 scalar에서 도출한다.
인공 내부 spatial 모멘트를 별도로 기록한다. 기존 raw 평형을 보존하고 직접 방식의 기존
moment gate는 raw에서 인공 모멘트를 차감한다. 기존 방식은 raw 판정·현재 계산을 유지한다.
기존 feature/procedure/schema와 외부 U/UR 기준을 바꾸지 않고 추가 marker와 진단으로 구분한다.
## 검토한 대안
기존 상대 비틀림만 유지하면 drilling 회전 계산 생략 요구를 충족하지 못한다.
직접 스프링에 상대 회전 보정을 다시 넣으면 허용한 비객관성을 제거하는 대신 그 계산을
다시 도입하게 된다. 현재는 모델·section별 runtime 입력을 늘리는 대신 한 코드 설정을 택했다.
Global URZ에만 스프링을 놓으면 기울어진 초기 director의 drilling을 나타내지 못하므로 쓰지 않는다.
## 결과와 한계
직접 force의 병진·절점 간 coupling과2차 방향미분은0이지만 HHT null의 고차 미분은 필요하다.
인공 에너지를 physical stress/resultant/energy에 혼합하거나 spring 질량을 추가하지 않는다.
Raw 평형만 보고 직접 방식의 유한 강체 회전을 불평형으로 거부해서는 안 되며, 보정 분모에
인공 모멘트를 더해 실제 불평형을 숨겨서도 안 된다. 옛 markerless 파일의 방식은 미상이다.
현재 선형/eigen block이 두 방식에서 같은 것은 정상이다.
이 선택은 기존 근사 실험의 D3·Legacy constraint/C08·mass-null/triad 실패나 비선형 시간정확도를
해결하는 결정이 아니다. 정식 Direct HHT U 통과와 전체 Debug의10 FAIL/1 SKIP은 함께 남는다.
공식 성능 개선이나 전체 solver correctness의 인증도 포함하지 않는다.
+1
View File
@@ -13,3 +13,4 @@
| `0009-hex8-numerics.md` | Mean-volume 강성·reference row-sum mass·high+low 상태를 사용한다. |
| `0010-thermal-discretization.md` | 다섯 두께 온도점·consistent capacity·Backward Euler를 사용한다. |
| `0011-tolerance-experiment-acceptance.md` | 이번 MITC4 HHT 실험은 변위 검증 통과·실패10개 보류로 수용하며 실제 FAIL/SKIP과 후속 검증을 보존한다. |
| `0012-mitc4-drilling-options.md` | 초기 director 직접 스프링을 기본으로 하고 기존 상대 비틀림을 코드로 선택한다. 인공 spatial 모멘트와 raw/보정 평형을 구별한다. |
+33 -7
View File
@@ -1,5 +1,28 @@
# 해결되지 않은 문제
## 2026-10-20 현재 실행과 미완료 경계
직접 스프링 기본 source `6bbbb2b`의 전체 Native/CTest는 각각1035개 중
1024 PASS·10 FAIL·1 INCONCLUSIVE SKIP이다. 기존 실패를 ID뿐 아니라 현재 raw 수치와
발생 단계로 대조했다. 새 직접 스프링 수식·저장 연결 검사는 통과했으며 아래 근사 문제를
이번 변경에서 자동 복원하거나 허용치를 더 완화하지 않았다.
- 관성 D3 두 검사의 첫 차이는 약0.22761592214, 명시 Legacy drilling gradient 차이는
약0.00329135061318이다. Legacy C08a hidden ratio는0.00123371144037로1e-3을 초과한다.
- C08 controller4개는 첫 격자(h=1/64,1/16,1/256,1/64)의 inc1에서100회 correction을
소진했다. 시간수렴·차수 판정 이전 실패이며 이전 통과로 대신하지 않는다.
- LargeDirect는 accepted inc1/t=.25/iteration5의 mass-null 실패, UniformTranslation의
유한회전 subrun은 inc2/t=.02의 triad/rotation mismatch가 유지됐다.
- N7 finest 비교 하나는 arithmetic/solve resolution의 INCONCLUSIVE SKIP이다.
정식 직접 HHT의729nodes·101frames와9node U101 families는 이번에 실제 통과했지만
비선형 q/v/physical a의 시간정확도와 위 독립 물리 실패를 해결하지는 않는다.
기존 방식의 대형 HHT 외부 U 재해석은 미실행이다. 별도 관련162검사 중7 FAIL은 기존5개와
Direct 기본값 전용 검사를 잘못 포함한2개로 분리했다. 두 선택 오류도 실제 FAIL로 보존했다.
정식 fine/fine_02/pressure·새 thermal 자료는 없으며 `reference/temp`를 쓰지 않았다.
이 미완료는 승인된 근사 정확도 조사와 외부 자료 제공이 필요한 범위이므로, 이번 drilling
선택 구현을 전체 solver 검증 통과로 확대하지 않는다.
## 이번 실험의 보류 결정
2026-10-19 사용자는 Abaqus U 비교를 이번 실험의 검증 통과로 수용하고 아래 실패10개를
@@ -74,14 +97,17 @@
- 다음 접근: 새 reference의 identity·시점·hash와 blocking 계약을 확정해 별도로 검증한다.
음수 온도 clamp·원본 보정·RMS 완화로 기존 기록을 통과로 바꾸지 않는다.
## Eigen partial-BC 정적 평형 충돌
## 기존 drilling 방식의 partial-BC raw 정적 gate 한계
- 조건·관측: MITC4 eigen의 S3 partial rotational BC 사례와 public static 평형 사이의
충돌이 기능 기록에 보류 상태로 남아 있다.
- 영향: 모드별 Value 5% 승인 예외가 이 정적 평형 문제나 Abaqus 알고리즘 동등성을 해결하지 않는다.
- 지금 해결하지 않는 이유: 수식·공개 정적 평형 계약의 별도 조사이며 문서만으로 고칠 수 없다.
- 다음 접근: 동일 source BC에서 static과 eigen의 null/finite 공간·힘/모멘트 의미를 독립 대조한다.
부분 회전구속을 full clamp로 대체하지 않는다.
- 조건·관측: 보존한 S3 partial rotational BC의 public static 사례는 현재 기본 직접 방식에서
raw 인공 모멘트를 별도로 복구·차감한 뒤 기존1e-10 gate를 통과한다. 기존 방식의 raw
gate는 같은 사례에서 계속 거부되며 명시 Legacy 검사와 별도 build의 실제 진단에 보존했다.
- 영향: 직접 방식의 해당 충돌은 해결했지만 기존 방식의 raw 수용 범위를 넓힌 것은 아니다.
Eigen Value5% 예외나 모든 partial-BC 비선형 모델의 성공을 뜻하지 않는다.
- 지금 남겨 두는 이유: 기존 방식의 수치 판정 보존이 승인된 계약이다. 그 gate를 자동으로
보정값으로 바꾸거나 부분 회전구속을 full clamp로 대체하지 않는다.
- 다음 접근: 기존 방식의 수용 범위를 변경하려면 같은 BC에서 null/finite 공간과
generalized/spatial 힘·모멘트의 계약을 별도로 판정한다.
## 성능 목표 미달과 과거 회귀
+34 -1
View File
@@ -1,5 +1,38 @@
# 구현과 검증 상태
## 2026-10-20 MITC4 drilling 선택
초기 director 직접 스프링을 기본으로 하고 기존 상대 비틀림을 코드 한 곳에서 선택하는
구현을 선형·비선형 정적·pressure·frequency·HHT와 저장·reader·비교기에 연결했다.
직접 방식의 비객관성은 허용하며 raw/인공/보정 spatial 평형을 구별한다.
아래 실행 근거의 제품 source는 `6bbbb2ba8c8078c7a637886201750753da0af5c0`이다.
| 현재 실제 실행 | 결과와 captured exit |
| --- | --- |
| Native x64 Debug 전체 | unit915:904 PASS/10 FAIL/1 SKIP, exit1; integration74와 reference46은 모두 PASS, exit0/0 |
| CMake x64 Debug 전체 CTest | 같은1035 identity,1024 PASS/10 FAIL/1 SKIP, exit8 |
| 별도 Python 전체 |164 PASS, exit0; pytest9.1.1/NumPy2.4.6/h5py3.16.0의 격리 Python3.11 환경 |
| 기존 방식 별도 Debug 관련 검사 |162 unique=155 PASS/7 FAIL. 기존 물리5개와 Direct 기본값 전용 선택 오류2개를 분리하며 실제 FAIL은 보존 |
| 두 방식의 정식 linear/coarse-NL/eigen |실제 생성·기존 비교 모두 PASS. 현재 선형 변위와 eigen table은 두 방식에서 정확히 동일 |
| 직접 방식 정식 HHT |Release CLI0/비교0,729nodes·101frames, 외부9node U101 families PASS; 최대 정규화 RMS0.2282326248391787%, UR 경고200개 |
| 기존 방식 실제 HHT |별도 Debug 소형3frame CLI/readback PASS.729node 외부 U 재해석은 미실행 |
두 Debug build와 별도 기존 방식 Debug/공식 Direct Release build는 exit0이며 실제
MSVC19.51.36260.0 x64/v145, toolset directory14.51.36231과 probe false/OFF를 확인했다.
Compile source·등록/실행 identity·CL/link·staged/loaded DLL·원본 hash를 대조했다.
정식 원본34파일은 불변이고 실제10 HDF5/128평형 frame의 추가 marker·스키마·대수 관계를 검사했다.
실행 명령/exit·raw/XML·현재 실패 원인·선별/제외 목록과 hash는
`.build/drilling-options-20261020/T4/`에 보존했다. 이 자료가 없는 checkout의 현재 실행 근거로 간주하지 않는다.
Native/CTest의10 FAIL은 기존 D3·명시 Legacy constraint/C08·후속 mass-null/triad 원인과
현재 수치/실패 단계를 대조했다. N7 하나는 해상도 INCONCLUSIVE SKIP이다. Legacy의 선택 오류2개는
Direct mode literal 또는 production Direct 수용을 전제한 검사이며 기본 Direct 전체에서는 PASS했다.
반력·영운동·실제 Legacy marker는 별도 HHT 출력으로 확인했고, 오류 선택의 FAIL을 PASS로 바꾸지 않았다.
정식 fine/fine_02/pressure·새 thermal 자료 누락과 기존 NT11 수치 불일치도 남는다.
구현과 관련 실행은 확보했으나 전체 물리/시간정확도 검증 완료는 아니다. 성능 인증은 하지 않았다.
## 2026-10-19 수렴 실험 기록
2026-10-19 후속 사용자 결정으로 이번 MITC4 HHT 실험은 **변위 검증 통과·실패10개 보류로 조건부 완료**한다.
[수용 결정](decisions/0011-tolerance-experiment-acceptance.md)을 따르며 아래 전체 검사 raw 통계와
N7·자료 부재·미해결 물리 문제는 보존한다. 전체 물리/시간정확도 검증 통과로 확대하지 않는다.
@@ -60,7 +93,7 @@ Fresh Refactor·통합 Native·통합 CMake 실행물에서 같은 scratch 입
2. 구성된 전체 실행 결과를 바탕으로 MITC4 local 미분/물리 실패와 실제 후보 후속 gate 실패를
분리한다. 후보 비선형 q/v/physical a 시간수렴·N7 및 후보 원본 비교를 확보한다.
전체 검사 실행 사실과 미해결 수치 검증을 구분하고, 자료가 필요한 비교는 확보 뒤 수행한다.
3. Eigen partial-BC 정적 평형 충돌과 thermal 외부 불일치의 영향을 각각 판정한다.
3. 기존 drilling 방식의 partial-BC raw 정적 gate 한계와 thermal 외부 불일치의 영향을 각각 판정한다.
기준 완화·질량 변경·원본 보정으로 해결하지 않는다.
4. 같은 물리·허용치·출력·정밀도를 보존한 상태에서 성능 회귀 원인을 조사하고 최종 source의
Release 시간과 수치 결과를 다시 측정한다. 검증되지 않은 가속을 완료로 기록하지 않는다.