docs(mitc4): record drilling choices and current verification limits
This commit is contained in:
@@ -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의 인증도 포함하지 않는다.
|
||||
@@ -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/보정 평형을 구별한다. |
|
||||
|
||||
@@ -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
@@ -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 시간과 수치 결과를 다시 측정한다. 검증되지 않은 가속을 완료로 기록하지 않는다.
|
||||
|
||||
Reference in New Issue
Block a user