docs(mitc4): record drilling choices and current verification limits
This commit is contained in:
@@ -2,6 +2,11 @@
|
||||
|
||||
## 목적과 경계
|
||||
|
||||
2026-10-20 현재 drilling 기본값은 초기 director의 직접 작은 스프링이다.
|
||||
모델 전체의 한 코드 설정으로 기존 상대 비틀림도 선택하며 정적 pressure에도 같은
|
||||
선택을 적용한다. 직접 방식은 drilling의 polar/swing/twist 계산을 생략한다.
|
||||
아래 polar 근사 실험의 실패는 보존한 기존 방식의 근거이며 직접 스프링 식을 뜻하지 않는다.
|
||||
|
||||
2026-10-18 후속 사용자 지시의 [local 근사 실험](../abaqus-tolerance/local-kernel-experiment.md)에서
|
||||
공유 nonlinear MITC4의 polar 반복을 12→1회로 변경했다. 후속 사용자 지시로 관련 접선
|
||||
테스트 오차를 1e-3으로 완화한 뒤에도 drilling constraint의 gradient 항등식 검사가
|
||||
@@ -20,8 +25,12 @@
|
||||
초기 director/frame에서 같은 trial의 기하·strain·internal force·consistent tangent를 계산한다.
|
||||
Rotation-vector generalized moment와 global spatial moment는 일의 짝이 다르다.
|
||||
반력의 공개 moment 복구에서 chart 변환을 적용하며 성분명 변경으로 대체하지 않는다.
|
||||
Physical MITC strain·constitutive response와 objective numerical drilling potential을 분리한다.
|
||||
Physical MITC strain·constitutive response와 선택한 numerical drilling potential을 분리한다.
|
||||
Drilling scale은 초기 상태에서 정하고 trial마다 다시 tuning하지 않는다.
|
||||
직접 방식은 `gamma_i=d_i0·phi_i`, `f_i=kd*gamma_i*d_i0`,
|
||||
`K_ii=kd*d_i0*d_i0^T`다. 병진과 절점 간 drilling coupling은 exact zero다.
|
||||
유한 강체 회전에도 인공 복원모멘트가 생기는 것을 허용한다. 기존 방식의 objective
|
||||
유도와 polar1 구현을 이 직접 방식에 적용하지 않는다.
|
||||
평형 residual은 internal minus external이며 follower load가 있으면 tangent는
|
||||
`Kint-dFext/dq`다. Unsymmetric tangent를 대칭화하지 않는다.
|
||||
|
||||
@@ -58,6 +67,11 @@ Accepted free residual은 matching external scale이 nonzero이면 infinity-norm
|
||||
exact-zero이면 typed absolute `<=1e-3` force 또는 force-length다. Factor-one 전역 force/moment
|
||||
balance는 각각 normalized `<=1e-8`이다. 이는 기존 comparator의 승인 계약이며 두 양을
|
||||
하나의 `1e-10` 기준으로 요약하지 않는다. Linear 정적·HHT·eigen의 별도 gate는 바꾸지 않는다.
|
||||
이 전역 수치 판정은 기존 reference 비교기의 책임이다. Procedure에 새 전역 gate를
|
||||
만들지 않는다. 비교기는 직접 방식 marker일 때 기존 moment family에
|
||||
`raw_moment-Mdrill`을, 기존 방식·marker 없는 옛 파일에는 raw 값을 사용한다.
|
||||
`Mdrill`은 현재 위치의 병진 모멘트팔과 `Jl(phi)^(-T)`로 변환한 내부 drilling
|
||||
모멘트의 source 순서 합이다. 분모에 인공 모멘트를 더하지 않는다.
|
||||
|
||||
## 구현과 상태 수명
|
||||
|
||||
@@ -73,8 +87,14 @@ Domain→non-owning model→stable full/free DOF→local trial response→ordere
|
||||
|
||||
## 검증에서 배운 점과 남은 경계
|
||||
|
||||
2026-10-20 source `6bbbb2b`의 기본 직접 방식과 별도 기존 방식에서 정식 coarse
|
||||
nonlinear 입력의 생성·기존 비교를 통과했다. 두 방식의 저장·reader·원자적 실패 보존도
|
||||
검사했다. 보존한 기존 방식의 gradient 항등식은 차이 약0.00329135로 계속 실패하며,
|
||||
전체 Native/CTest 각각1035개는1024 PASS·10 FAIL·1 INCONCLUSIVE SKIP이다.
|
||||
이는 현재 실행 결과이며 아래 과거 기록이나 coarse U 통과로 모든 비선형 검증을 대체하지 않는다.
|
||||
|
||||
기존 nonlinear reference와 rollback·finite rotation·tangent·equilibrium 검증 기록이 있다.
|
||||
이는 새 revision의 build/test 통과를 의미하지 않으며 이번 작업은 문서 정리만 수행한다.
|
||||
과거 기록만으로 새 revision의 build/test 통과를 의미하지 않는다.
|
||||
Reaction은 단일 global 합만 맞춰 local reaction 정확성을 대체할 수 없다.
|
||||
큰 자세 변화와 원점 이동에서 spatial moment balance를 함께 확인해야 한다.
|
||||
외부 U 통과는 warning UR 또는 review RF/RM의 수치 일치를 뜻하지 않는다.
|
||||
|
||||
@@ -5,7 +5,40 @@
|
||||
>
|
||||
> 적용 경계: 물리 정식화와 당시 수치 stabilization 유도를 구분한다. 현재 공변 trace-average
|
||||
> scale·frozen lifecycle은 [고유치 질량·stabilization](../mitc4-shell-feast-eigen2/formulation-mass-stabilization.md)을
|
||||
> 함께 따른다. 이전 minimum-diagonal 식을 현재 기준으로 재도입하지 않으며 S3 partial-BC 보류를 유지한다.
|
||||
> 함께 따른다. 이전 minimum-diagonal 식을 현재 기준으로 재도입하지 않는다.
|
||||
> S3 partial-BC는 직접 방식의 보정 gate와 기존 방식의 raw gate를 구분한다.
|
||||
|
||||
## 2026-10-20 drilling 채택 범위
|
||||
|
||||
기본값은 초기 global 단위 director `d_i0`와 total global rotation vector `phi_i`의
|
||||
직접 스프링이다. 아래 §10의 corotation·minimal swing·atan2 유도는 선택 가능한
|
||||
기존 상대 비틀림 방식의 원문으로 보존한다. 기존 구현은 기준 source
|
||||
`52e321e15c70377d4318aace3f3bc64b3ea1a65c`의 polar1을 유지하며, 원문의 정확한
|
||||
객관성·미분 항등식이 이 근사 구현에서 모두 통과했다는 뜻은 아니다.
|
||||
|
||||
```text
|
||||
gamma_i = d_i0 · phi_i
|
||||
kd = 1e-3 * average(initial physical K20 tangent-rotation diagonals, 8 entries)
|
||||
Udrill = 0.5 * kd * sum_i gamma_i^2
|
||||
f_drill,i,rot = kd * gamma_i * d_i0
|
||||
K_drill,ii,rot,rot = kd * d_i0 * transpose(d_i0)
|
||||
D² f_drill[v,v] = 0
|
||||
```
|
||||
|
||||
병진 force/tangent와 서로 다른 절점의 coupling은 exact zero다. Global URZ 또는
|
||||
현재 director를 `d_i0` 대신 사용하지 않는다. Scale은 BC 전 초기 physical K20에서
|
||||
기존 결정적 overflow 방지 평균으로 한 번 계산하며 zero 대각도 8개 평균에 포함한다.
|
||||
음수/nonfinite 대각, 모두 zero인 대각, nonfinite/nonpositive kd는 실패다.
|
||||
Clamp·floor·density 치환이나 trial별 재조정은 없다.
|
||||
|
||||
직접 경로는 drilling의 polar/swing/twist/atan2를 평가하지 않는다. Physical strain·
|
||||
geometry·관성 계산은 유지한다. 초기 director와 전체 회전 기준이므로 유한 강체 회전의
|
||||
인공 에너지·복원모멘트를 허용하며 아래 기존 방식의 self-equilibrated 성질을 요구하지 않는다.
|
||||
내부 generalized drilling 힘은 현재 위치의 모멘트팔과 `Jl(phi)^(-T)` 변환으로 spatial
|
||||
`Mdrill`을 만들고 source 순서로 누적한다. Raw 평형은 보존하고 직접 방식의 기존 moment
|
||||
판정에만 `raw_moment-Mdrill`을 사용한다. 기존 방식은 raw 판정을 유지한다.
|
||||
비선형 정적 procedure에는 원래 진단만 있었으며 수치 gate는 기존 reference 비교기에 있다.
|
||||
새 procedure gate나 인공 모멘트를 포함한 정규화 분모를 만들지 않는다.
|
||||
|
||||
## 1. Metadata
|
||||
|
||||
|
||||
Reference in New Issue
Block a user