Numerical Dungeon: 게임으로 배우는 수치해석
선형 고차는 Godunov에 막히고, 오답 세 번이면 HP가 0이 되어 그 스테이지가 닫힌다.
Numerical Dungeon#
책으로만 돌리면 CFL이 1을 넘는 순간이 손에 안 남는다. 오답이 HP를 깎는 5스테이지로, 의존 영역과 제한자와 Riemann 문제와 Abgrall 조건이 어디서 갈리는지 맞춰 본다.
스테이지 번호를 바꾸면 퀴즈가 묻는 스킴이 바뀌고, 오답 한 번은 HP를 1칸 줄인다.
HP가 0이면 그 판은 끝이다. 뒤 스테이지일수록 정답 XP가 크니, 초반에 HP를 얼마나 남기는지가 보스전의 여유다.
Rules#
- HP 3칸 - 오답 시 HP가 1 감소합니다. HP가 0이 되면 Game Over!
- XP - 정답마다 XP를 획득합니다. 뒤로 갈수록 보상이 큽니다.
- 난이도 - Stage 1
2는 기본, 34는 핵심 이론, 5는 최종 보스입니다.
각 스테이지에서는 먼저 개념 설명을 읽고, 이어지는 퀴즈에 답합니다. 틀려도 상세한 해설이 붙는다. 그 해설이 다음 판의 힌트다.
스테이지가 묻는 순서#
Stage 1: CFL Condition#
CFL 조건은 domain of dependence 개념과 직결됩니다. 물리적 정보의 전파 속도보다 수치적 정보의 전파 속도가 빨라야 합니다. 암시적(implicit) 스킴은 CFL 제한이 없지만, 비선형 시스템을 풀어야 하는 대가가 있습니다.
CFL이 1을 넘으면 격자 한 칸의 수치 의존 영역이 물리 의존 영역보다 좁아진다. 그 칸의 갱신은 도달할 수 없는 정보를 요구하고, 빈자리는 외삽이 채운다. 외삽은 진동으로 돌아온다. HP가 3칸뿐인 것은 그 실수를 세 번만 허용하겠다는 규칙이다. 암시적 스킴은 스텐실을 전역으로 넓혀 시간 제한을 푼다. 사라진 시간 제약의 자리에 매 스텝 반복 비용이 앉는다.
Stage 2: Numerical Diffusion#
수치 확산을 줄이려면 고차 스킴을 써야 하지만, Godunov 정리에 의해 **비선형 제한자(limiter)**가 필요합니다. 대표적인 limiter: minmod, van Leer, superbee, MC limiter.
1차 업윈드가 그 확산을 어떻게 떠안는지는 FTCS와 업윈드의 CFL 교환에 숫자로 남아 있다. 고차로 가기 전에, 뭉개짐과 진동이 같은 CFL 예산에서 맞바뀐다는 쪽을 보면 Stage 2의 오답이 줄어든다.
Stage 3: Godunov's Theorem#
이 정리가 TVD(Total Variation Diminishing), ENO, WENO 등 현대 수치 기법의 발전을 촉발했습니다. Godunov가 막은 조합은 선형이면서 단조인 고차다. 비선형이 빠지면 안정과 정확도는 같이 가지 않는다.
TVD, ENO, WENO는 그 금지를 비선형으로 우회한다. minmod, van Leer, superbee, MC는 이웃 기울기를 보고 셀마다 기울기를 다시 고른다. 어느 쪽도 선형 계수를 고정해 두지 않는다. 계수를 고정하면 Stage 3의 정답이 뒤집힌다.
Stage 4: Riemann Problem#
Sod, Lax, Shu-Osher 등의 표준 테스트 문제로 Riemann solver를 검증할 수 있습니다. 불연속 하나에서 충격파, 접촉, 팽창이 같이 갈라지는지 보는 문제다. 그 셋을 한 칸 안에서 맞추지 못하면 압력 진동이 다음 스테이지와 같은 증상으로 돌아온다.
Stage 5: Multiphase Pressure Oscillation#
Abgrall의 조건은 다상유동 수치해석의 출발점입니다. 체적분율이 움직이는데 압력은 균일해야 하는 상태에서, 그 짝이 깨지면 압력만 요동친다. 밀도 오차와는 다른 증상이다.
제한자를 끄면 보스전 HP가 먼저 닳는다#
고차 스킴을 선형 계수로 고정하면 Godunov가 이미 막아 둔 조합이 된다. 단조이면서 2차 이상인 선형 스킴은 없다. 제한자를 끄면 Stage 3이 먼저 틀리고, HP 3칸은 진동 몇 번에 소진된다. 초반 CFL을 맞춰 아낀 HP가 여기까지 남아 있어야 한다.
Stage 5의 압력 진동은 체적분율과 압력이 따로 놀 때 난다. Abgrall 조건은 그 짝을 맞추라는 요구다. 충격파를 칸 하나에서 푸는 절차는 Godunov 충격관과 같은 계산이다. 그 칸의 파동 분해가 틀리면 압력 진동은 던전 밖에서도 같은 모양으로 돌아온다.
관련
도움이 됐다면 공유해주세요.