응용 — 산업 CFD에서의 모델 선택

12장에 걸쳐 쌓아온 도구들을 한 장의 의사결정표로 정리하고, 어떤 흐름에 어떤 난류 모델이 맞는지를 판단하는 안목으로 책을 닫는다.

들어가며

여기까지 왔다면 이제 RANS, LES, DNS라는 약어가 더 이상 외워야 할 단어가 아니라, 각자의 가정과 비용 구조가 머릿속에 그려지는 도구들일 것이다. 마지막 장의 목표는 새로운 수식을 도입하는 것이 아니라, 이미 가진 것을 정리하는 것이다. 이 장을 다 읽고 나면, 논문이나 상용 CFD 매뉴얼을 펴서 “이 사람은 왜 이 모델을 골랐는가”를 스스로 평가할 수 있게 된다.

본론 1 — 1장의 다섯 가지 특성으로 돌아가기

1장에서 난류를 다섯 가지 특성으로 정의했다 — 불규칙성, 확산성, 큰 레이놀즈 수, 3차원 와도 변동, 소산. 이 책 전체는 결국 이 다섯을 어떻게 존중하느냐 또는 우회하느냐의 이야기였다.

  • DNS(10장)는 다섯 가지를 그대로 풀려고 한다. 가장 작은 소산 스케일 η\eta(에타, Kolmogorov 길이)까지 격자를 깔아 모든 와도 변동을 직접 계산한다. 모델은 없다.
  • LES(11장)는 큰 와동만 직접 풀고, 격자보다 작은 스케일의 소산은 SGS(sub-grid stress) 모델로 대체한다. 다섯 특성 중 큰 스케일은 그대로, 작은 스케일은 모델로 대체된다.
  • RANS(5–6장)는 다섯 특성 전부를 시간 평균 안으로 흡수하고, 평균장만 푼다. 와도 변동 자체는 계산되지 않고, 그 효과(레이놀즈 응력 uiuj\overline{u'_i u'_j})만 모델링된다.

세 접근은 “무엇을 풀고, 무엇을 모델로 대체할 것인가”라는 한 줄 질문에 대한 세 가지 답이다.

본론 2 — 한 장의 비교표

접근직접 푸는 것모델로 대체하는 것비용(Re 의존)벽 격자 요구효과가 큰 영역
DNS가장 작은 η\eta까지 모든 스케일없음Re3\sim \mathrm{Re}^3y+1y^+ \lesssim 1연구, 검증 데이터 생성
LES큰 와동SGS 응력Re1.8\sim \mathrm{Re}^{1.8}벽 근처 y+1y^+ \lesssim 1연소, 공력음향, 비정상 흐름
하이브리드(DES)벽은 RANS, 코어는 LES영역별로 다름LES와 RANS 사이벽함수 또는 분해외부공력, 박리 흐름
RANS(k-ω SST)평균장만레이놀즈 응력 전체Re 무관y+1y^+ \lesssim 1 또는 벽함수일상 산업 설계
RANS + 벽함수평균장만레이놀즈 응력 전체가장 저렴30y+10030 \lesssim y^+ \lesssim 100빠른 설계 반복

여기서 y+y^+(와이 플러스)는 6장과 7장에서 나온 무차원 벽거리. Re3\mathrm{Re}^3이라는 숫자는 무섭다. 레이놀즈 수가 10배 커지면 DNS 비용은 1000배가 된다. 항공기 날개의 Re107\mathrm{Re} \sim 10^7에서 DNS가 현실적으로 불가능한 이유다.

본론 3 — 의사결정 흐름

산문 한 단락의 흐름도로 정리하면 이렇다.

흐름의 레이놀즈 수가 5000 이하이고 형상이 단순하다면 — 예를 들어 작은 채널이나 저속 실험실 환경 — DNS를 고민할 가치가 있다. 그게 가능하면 가장 깨끗한 답을 준다. 그게 안 되고 박리·재부착·연소·소음 같은 본질적으로 비정상인 물리가 중요하다면, 그리고 계산 예산을 며칠 단위로 쓸 수 있다면 LES를, 벽 근처 격자 부담을 줄이고 싶다면 DES를 고른다. 그 외 대부분의 산업 설계 — 펌프, 밸브, 차체 외형, HVAC 덕트 — 에서는 RANS가 정답이고, 그중에서도 k-ω SST가 안전한 기본값이다. 이유는 단순하다. k-ω SST는 벽 근처에서는 k-ω, 자유전단 영역에서는 k-ε로 전환되도록 설계되어 박리에 강하면서도 자유흐름의 민감도가 낮다.

본론 4 — 자주 헛디디는 함정

  • 격자 수보다 y+y^+가 더 중요하다. 1000만 격자 메쉬도 첫 셀의 y+y^+가 200이면 SST의 의미가 사라진다. 반대로 100만 격자에서도 y+1y^+ \sim 1로 깔리면 충분히 신뢰할 만한 결과가 나온다.
  • LES는 “평균 속도 입구 조건”으로 시작하면 안 된다. LES는 입구에서부터 난류 변동을 요구한다. 합성 난류(synthetic turbulence) 입구나 사전 계산된 채널 흐름의 단면을 재활용하지 않으면, 도메인 한참 안쪽까지 흐름이 라미나처럼 흐른다.
  • DNS 결과를 산업 코드 검증에 그대로 갖다 쓰면 안 된다. DNS는 보통 주기 경계나 인공적인 강제(forcing)로 정상상태를 만든 결과다. 산업 형상의 경계조건과는 다르므로, 비교는 “같은 통계량을 같은 영역에서”라는 조건이 지켜져야 의미가 있다.
  • k-ε는 자유전단류에는 좋지만 박리에는 약하다. 이전 장에서 다룬 자유 제트·후류·혼합층은 k-ε의 본거지지만, 차체 뒤편의 박리 영역에서는 분리점을 늦게 예측하는 경향이 있다. 그래서 SST가 산업 기본값이 되었다.

파이썬으로 확인

본론 3의 의사결정 규칙을 그대로 함수로 옮긴다. 세 가지 예시 사례에 적용해 결과를 본다.

import numpy as np

def recommend(Re, time_budget_hours, is_near_wall_important):
    # 본론 3의 규칙을 그대로 코드화
    if Re < 5000 and time_budget_hours > 100:
        return "DNS"
    if is_near_wall_important and time_budget_hours > 24:
        return "LES (벽까지 해석)"
    if is_near_wall_important and time_budget_hours <= 24:
        return "RANS k-ω SST"
    if (not is_near_wall_important) and time_budget_hours > 24:
        return "DES"
    return "RANS k-ε with 벽함수"

# 예시 1: 저레이놀즈 채널 실험 재현 (연구 목적)
print(recommend(Re=3000, time_budget_hours=200,
                is_near_wall_important=True))

# 예시 2: 자동차 외부공력, 박리 영역 정확도 필요
print(recommend(Re=2.0e6, time_budget_hours=72,
                is_near_wall_important=False))

# 예시 3: 펌프 임펠러 설계 반복 (당일 회신)
print(recommend(Re=5.0e5, time_budget_hours=8,
                is_near_wall_important=True))

출력은 차례로 DNS, DES, RANS k-ω SST다. 단순한 규칙이지만, 첫 답을 던지는 데는 충분하다. 실제 프로젝트에서는 이 위에 검증 데이터 가용성·라이선스 비용·팀 숙련도가 얹힌다.

끝맺으며

여기까지 함께 와준 독자에게 진심으로 감사한다. 이 책의 목표는 “난류 전문가를 만드는 것”이 아니라 “다른 사람의 CFD 작업을 비판적으로 읽을 수 있게 하는 것”이었다. 그 다음은 코드를 직접 만져보는 일이다 — OpenFOAM, SU2, code_saturne 같은 오픈 코드 중 하나를 골라, 평판 경계층이나 후방 계단 흐름 같은 정형 사례를 재현해보는 것을 권한다. 그때부터가 진짜 시작이다.