직접수치모사 (DNS) — 왜 연구 전용 도구인가

나비에-스토크스 방정식을 모델 없이 직접 푸는 DNS의 비용이 레이놀즈 수의 9/4제곱으로 폭발하는 이유를 냅킨 계산으로 확인한다.

들어가며

9장에서 우리는 가장 큰 와동 LL (대문자 엘, 적분 스케일)과 점성이 운동에너지를 열로 바꾸는 가장 작은 와동 η\eta (에타, 콜모고로프 스케일)가 동시에 존재한다는 사실을 보았다. 이번 장에서는 그 두 스케일을 모두 격자에 담으려고 시도할 때 컴퓨터에 어떤 일이 벌어지는지 따져본다. 이 장을 마치면 “왜 DNS는 산업 현장에서 안 쓰는가?”라는 질문에 한 줄의 냅킨 계산으로 답할 수 있다.

본론 1 — DNS의 정의: 모델이 없다

DNS(Direct Numerical Simulation, 직접수치모사)는 나비에-스토크스 방정식을 어떤 난류 모델도 없이 그대로 푸는 방법이다. 5장의 RANS는 평균을 분리해 uiuj-\overline{u'_i u'_j} 항을 모델로 닫았고, 11장의 LES는 큰 와동만 풀고 작은 와동을 모델로 처리한다. DNS는 그런 닫음 모델을 두지 않는다. 대신 격자를 η\eta 까지 잘게 쪼개서 에너지 캐스케이드의 모든 스케일을 수치적으로 직접 해상한다.

따라서 DNS는 “근사가 없는 수치 실험”이라 불린다. 풍동 실험과 같은 자격으로 새 난류 통계를 만들어내는 연구 도구다.

본론 2 — 격자 수가 Re9/4\mathrm{Re}^{9/4} 로 늘어난다

핵심 수식 하나만 이해하면 된다. 도메인의 한 변 길이를 LL, 가장 작은 셀 크기를 η\eta 라 하자. 1차원으로 필요한 격자 점 수는 단순히

Lη\frac{L}{\eta}

이다. 9장에서 보였듯이 적분 스케일 레이놀즈 수 Re=UL/ν\mathrm{Re} = UL/\nu (ν\nu, 누, 운동학적 점성)에 대해

LηRe3/4\frac{L}{\eta} \sim \mathrm{Re}^{3/4}

가 성립한다. 3차원에서는 세 방향 모두 해상해야 하므로 총 격자 점 수 NN

N(Lη)3Re9/4N \sim \left(\frac{L}{\eta}\right)^3 \sim \mathrm{Re}^{9/4}

가 된다. 9/4 는 2.25 다. 레이놀즈 수가 10배 커지면 격자는 약 178배, 100배 커지면 약 31,623배로 늘어난다.

여기에 시간 적분의 안정 조건(CFL 조건) ΔtΔx/Uη/U\Delta t \propto \Delta x / U \propto \eta / U 가 붙어, 공간과 시간을 함께 따지면 총 비용은 Re3\mathrm{Re}^3 에 비례한다. 본문에서는 격자 수만 표로 살펴보자.

본론 3 — 냅킨 계산: 어떤 Re에서 슈퍼컴퓨터가 필요한가

NRe9/4N \sim \mathrm{Re}^{9/4} 만으로도 산업 활용 가능성에 대한 답이 나온다.

Re\mathrm{Re}NRe9/4N \sim \mathrm{Re}^{9/4}현실적 해석
10210^2104.53×104\sim 10^{4.5} \approx 3 \times 10^4노트북에서 수 분
10310^3106.756×106\sim 10^{6.75} \approx 6 \times 10^6워크스테이션에서 하룻밤
10410^4109109\sim 10^{9} \approx 10^9국가 슈퍼컴퓨터 한 번
10510^51011.252×1011\sim 10^{11.25} \approx 2 \times 10^{11}세계 최상위 시스템의 다년 프로젝트
10610^61013.53×1013\sim 10^{13.5} \approx 3 \times 10^{13}현 세대 하드웨어로는 불가능

자동차 외부 공력은 Re107\mathrm{Re} \sim 10^7, 여객기 날개는 Re108\mathrm{Re} \sim 10^8 영역이다. 표의 가장 마지막 줄에서 두세 단계 더 내려가야 산업 문제에 닿는다는 뜻이다. 그래서 DNS는 산업 코드의 검증과 새 모델 데이터의 생산에만 쓰이고, 설계 루프에는 RANS와 LES가 들어간다.

파이썬으로 확인

위의 표를 직접 출력해보자. numpy 만 사용하고, Re9/4\mathrm{Re}^{9/4} 만 계산한다.

import numpy as np

# DNS 격자 점 수 추정: N ~ Re^(9/4)
# 9/4 = 2.25, 9장의 L/eta ~ Re^(3/4)를 3차원으로 올린 결과

Re_values = [1e2, 1e3, 1e4, 1e5, 1e6]
exponent = 9 / 4  # 2.25

print(f"{'Re':>10} | {'N ~ Re^(9/4)':>15}")
print("-" * 30)
for Re in Re_values:
    N = Re ** exponent
    print(f"{Re:>10.1e} | {N:>15.2e}")

# 참고: 시간 적분의 CFL 조건을 함께 고려하면 총 비용은 Re^3 에 비례한다.
# 위 표는 공간 격자만의 비용이며, 실제 실행 시간은 더 가파르게 증가한다.

실행하면 Re=104\mathrm{Re} = 10^4 에서 N3.16×109N \approx 3.16 \times 10^9 이 출력된다. 1장에서 본 “Re는 단일 변수로 흐름의 정성적 상태를 결정한다”는 말은, 비용 측면에서는 단일 변수가 계산 가능성의 경계를 결정한다로 바뀐다.

다음 장으로

DNS의 격자 비용을 받아들일 수 없다면 두 가지 선택이 있다. 평균을 취해 모든 변동을 모델로 처리하거나(RANS, 5–6장), 큰 와동만 풀고 작은 와동을 모델로 처리하거나(LES). 11장: 대와동모사 (LES)에서는 후자를 정량적으로 다룬다 — DNS의 Re9/4\mathrm{Re}^{9/4} 가 LES에서 어떤 지수로 줄어드는지가 핵심이다.