Files

10 KiB

MITC4 drilling·관성 3증분 성능·정확도 비교

실행일: 2026-10-18. 원래 솔버 source는 43867d0b3d33d5969f1b68bc79d0966005d9c991이며, 제품 기본값은 변경하지 않았다. 모든 변형은 격리한 소스와 실행물에만 적용했다.

7개 조건 모두 native/wrapper exit 0으로 정상 종료했다. 각 결과는 729절점·676요소·초기 상태와 3증분의 4프레임 사전 검사를 통과했다. Abaqus 9절점 병진 변위 U는 모두 통과했고, 회전 UR은 각 조건의 증분 1·2·3에서 기존 warning-only 수치 경고가 남았다.

이번 단일 측정에서 극분해 3회가 218.75초로 가장 짧았다. 그러나 회전 범위가 매우 작고, 반복 측정에 따른 변산을 조사하지 않았으므로 안정적 순위나 함수 자체의 개선율을 입증하지 않는다. 특히 3차 관성 급수는 별도 기존 Debug 검사 11개 중 5개가 실패하여 일반 유한회전 대체안으로 채택할 근거가 없다.

조건별 전체 시간과 정확도

U 절대오차는 입력 길이단위, UR 절대오차는 rad이다. 아래 B 대비 지표는 4프레임 전체 절점의 해당 family 중 최대값이며, 정규화 RMS는 frame별 RMS(case-B)/max|B|의 최대값이다. frame 0의 zero-scale 비교는 exact zero로 통과했고, 상대지표는 null이다.

조건 변경 시간(s) 관측 절감률(%) B 대비 U 최대 절대오차 U 정규화 RMS B 대비 UR 최대 절대오차 UR 정규화 RMS Abaqus U / UR
B 현행 12회·32차·1e-12 290.280145 0.0000 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 통과 / 경고
P1 극분해 1회 232.311233 19.9700 3.388132e-20 3.305887e-16 1.276796e-18 4.365331e-15 통과 / 경고
P3 극분해 3회 218.749838 24.6418 1.355253e-20 1.232148e-16 5.082198e-21 2.357974e-16 통과 / 경고
P6 극분해 6회 230.882202 20.4623 2.710505e-20 3.688812e-16 6.776264e-21 7.157217e-16 통과 / 경고
S3 관성 급수 상한 3 241.355570 16.8543 6.776264e-21 4.703781e-17 3.388132e-21 8.907073e-17 통과 / 경고
M6 질량 검사 1e-6 257.427006 11.3177 1.355253e-20 3.336765e-16 5.082198e-21 6.500324e-16 통과 / 경고
M3 질량 검사 1e-3 258.204294 11.0500 1.355253e-20 3.640247e-17 5.082198e-21 7.424945e-17 통과 / 경고

모든 조건의 iteration_count는 [0,3,3,3], 본 증분 Newton 합계는 9다. 이번 시간 차이를 Newton 횟수 감소로 설명할 수 없다. 모든 변경 조건은 B와 수치 bit가 완전히 같지는 않다.

외부 자료와의 비교

원본 CSV의 101프레임·9절점 전체 inventory를 확인한 뒤 increment 0..3을 투영했다. 각 조건에서 U/UR을 분리한 8개 family를 판정했다. U의 최대 정규화 RMS는 약 0.00210767812(0.210768%)로 현행 1% family 기준 이내이며 행별 기준도 통과했다. B의 UR 정규화 RMS는 증분 1·2·3에서 각각 약 2.4381%, 2.3972%, 2.4500%이고 행별 기준도 만족하지 않아 경고다. 다른 조건에서도 같은 증분의 UR 경고가 남았다.

Near-zero 1%·일반 행 상대 5%·family RMS 1%·zero-scale exact-zero 및 U blocking/UR warning-only 정책을 유지했다. 이 CSV에는 속도·가속도·에너지·응력 자료가 없어 이들의 외부 정확도 통과를 주장하지 않는다.

시험별 해석

극분해 1·3·6회

세 설정 모두 이 구간에서 정상 종료하고 U 외부 기준을 통과했다. B 대비 U 최대 절대오차는 최대 3.388132e-20, UR 최대 절대오차는 최대 1.276796e-18이다. 관측 시간 절감률은 각각 19.9700%, 24.6418%, 20.4623%다. 1회보다 3회가 빨랐지만 표본은 조건당 한 번이므로 안정적인 우열이나 반복 수에 대한 성능 곡선으로 해석하지 않는다.

관성 급수 32→3

ExpSkew와 LeftJacobian 모두 상수항 I를 유지하고 1~3차 항만 계산했다. 실제 모델에서는 241.355570초에 정상 종료했으며 B 대비 U 최대 절대오차는 6.776264e-21이었다. 이 짧은 구간의 최대 회전 vector norm은 약 1.256356e-5 rad(약 0.00072도), 최대 병진 vector norm은 약 4.898244e-5 입력 길이단위다.

반면 관련 기존 Debug 검사에서는 관성 평가 2건, finite-rotation null 1건, D3 oracle/80자리 anchor 2건이 실패했다. 동일 3차 다항식을 일관되게 미분하는 것과 정확한 SO(3) 회전·관성 관계를 만족하는 것은 다르다. 작은 회전의 3증분 U 일치로 이 실패를 해소하거나 큰 회전·장시간 정확도를 보증하지 않는다.

질량 검증 허용치 1e-6·1e-3

대칭성·null action·full Gram·Cholesky 복원 네 판정만 완화했으며 계산·검사 빈도와 분해 알고리즘은 그대로다. 따라서 동일 통과 경로에서 산술량을 줄이는 변경이 아니다. 관측 시간은 257.427006초와 258.204294초지만 이를 허용치 완화에 의한 연산 절감 효과로 단정하지 않는다.

두 조건 모두 B와 bit 일치하지 않는다. U/UR 최대 절대차는 각각 1.355253e-20, 5.082198e-21이다. 동일 실행물 B를 반복하지 않았고 차이의 원인을 분리하는 추가 진단도 수행하지 않았으므로 비결정성 또는 특정 backend를 원인으로 확정하지 않는다.

영에 가까운 평형 잔차에는 작은 절대차와 큰 정규화 차이가 함께 나타난다. 임의의 분모 하한이나 tolerance를 추가하지 않고 원래 scale과 절대차를 함께 제시한다.

조건·frame quantity B scale 최대 절대차 RMS / B scale
M6 / 2 평형 moment 잔차 4.983902e-12 2.229683e-11 2.607323e+00
M6 / 3 평형 moment 잔차 3.042144e-11 1.150355e-10 2.228454e+00
M3 / 3 평형 moment 잔차 3.042144e-11 1.136149e-10 2.581412e+00
M3 / 2 평형 moment 잔차 4.983902e-12 1.318146e-11 1.572574e+00

이 지표는 서로 다른 단위의 값과 합산하지 않으며, 새 채택 합격 기준으로 사용하지 않는다.

frame별 B 대비 변위 차이

조건 frame U 최대 절대차 U 정규화 RMS UR 최대 절대차 UR 정규화 RMS
P1 1 2.032879e-20 6.668800e-17 1.276796e-18 4.365331e-15
P1 2 1.270549e-20 3.305887e-16 3.427836e-21 6.427989e-16
P1 3 3.388132e-20 1.294566e-16 7.247426e-19 3.029683e-15
P3 1 6.776264e-21 1.862624e-17 3.388132e-21 4.895724e-17
P3 2 5.082198e-21 1.232148e-16 1.482308e-21 2.357974e-16
P3 3 1.355253e-20 3.106266e-17 5.082198e-21 6.770537e-17
P6 1 6.776264e-21 1.936513e-17 3.388132e-21 4.659017e-17
P6 2 1.439956e-20 3.688812e-16 3.811648e-21 7.157217e-16
P6 3 2.710505e-20 8.809773e-17 6.776264e-21 1.834233e-16
S3 1 6.776264e-21 1.862625e-17 3.388132e-21 4.894211e-17
S3 2 2.541099e-21 4.703781e-17 6.352747e-22 8.907073e-17
S3 3 6.776264e-21 1.727570e-17 3.388132e-21 4.566082e-17
M6 1 6.776264e-21 2.193772e-17 3.388132e-21 4.691258e-17
M6 2 1.355253e-20 3.336765e-16 3.599890e-21 6.500324e-16
M6 3 1.355253e-20 5.279542e-17 5.082198e-21 1.153463e-16
M3 1 1.355253e-20 3.640247e-17 5.082198e-21 7.424945e-17
M3 2 1.694066e-21 2.988954e-17 6.352747e-22 6.480886e-17
M3 3 6.776264e-21 1.957455e-17 3.388132e-21 4.852488e-17

실행·검증 근거

이 디렉터리는 상세 보고서와 결과 CSV만 버전 관리한다. 원시 실행 자료는 저장소 루트의 .build/drill3/r1/에 별도 보존했으며 아래 원시 자료 링크와 raw/ 경로는 이 로컬 보관물을 가리킨다. 원시 자료는 Git에 포함되지 않아 다른 checkout에는 없을 수 있다. 원시 기록의 절대 경로는 실행 당시 주소로 유지했으며, 이동 후 위치 대응은 로컬 보관물의 relocation.json에 기록했다.

환경은 Windows/MSVC x64 Release, Ryzen 7 5800H(8코어/16 logical CPU), 고성능 전원이다. VS18/MSVC 14.51.36231, MKL 2026.1, TBB 2023.1, HDF5 2.1.1을 사용했다. OMP/MKL/TBB thread 환경 override 없이 동일 기본 환경을 유지했다. B/P1/P3/P6/S3/M6/M3 순서의 서로 다른 7개 PID가 시간상 겹치지 않았음을 확인했다.

시간은 monotonic process 시작 요청~종료 확인이며 입력·초기화·해석·복구·로그·HDF5 close/final 공개를 포함한다. 빌드·복사·비교·별도 Debug 검사·profiler는 제외했다. 워밍업이나 solver 재실행은 없다.

신규·기존 비교기 검사 82건과 실행기 fake-child 검사 8건은 exit 0이다. 한정 Debug 검사는 80건 중 75통과·S3 5실패·skip 0이며, 실패의 원래 기대값과 허용치를 보존했다. 최종 통합 Python 검사 결과는 raw/final-python-tests.txt 및 raw/final-python-check.json에 별도 기록한다.

한계와 보존 범위

전체 Debug/CTest, 원본100증분, 시간 간격 수렴, 큰 회전, 장시간 누적 오차와 반복 통계는 이번 실험에서 실행하지 않았다. 기존 HHT 전체 검증의 미완료 상태도 그대로다. 원본 INP/CSV hash와 production source·12/32/1e-12 기본값은 보존했다. 현재 결과만으로 기본값 변경을 권하지 않는다.