Riemann 문제: CFD의 심장
유한체적법(Finite Volume Method)에서 셀 경계의 **수치 플럭스(numerical flux)**를
어떻게 계산하느냐가 해의 정확도와 안정성을 좌우합니다.
이 수치 플럭스를 결정하는 열쇠가 바로 Riemann 문제입니다.
Riemann 문제란?
초기 조건이 하나의 불연속면을 사이에 두고 좌우로 다른 상수 상태를 갖는 초기값 문제입니다:
U(x,0)={ULURif x<0if x>0
1차원 Euler 방정식에 대해 이 문제의 해석해는 세 개의 파(wave)로 구성됩니다:
- 좌향 파 (rarefaction 또는 shock)
- 접촉 불연속 (contact discontinuity)
- 우향 파 (rarefaction 또는 shock)
Godunov의 아이디어 (1959)
Godunov의 핵심 통찰은 간단하지만 강력합니다:
셀 경계에서의 플럭스를 구하려면, 인접한 두 셀의 평균값을 좌우 상태로 놓고
Riemann 문제를 풀면 된다.
유한체적법의 업데이트 공식:
Uin+1=Uin−ΔxΔt(F^i+1/2−F^i−1/2)
여기서 F^i+1/2가 바로 Riemann 문제의 해로부터 결정되는 수치 플럭스입니다.
Exact Riemann Solver
정확한 Riemann 풀이는 Newton-Raphson 반복법으로 star region의 압력 p∗를 구합니다.
좌우 파의 종류(shock/rarefaction)에 따라 Rankine-Hugoniot 관계식 또는
등엔트로피 관계식을 적용합니다.
Shock wave 관계식 (p∗>pK, K=L or R):
fK(p∗)=(p∗−pK)[p∗+BKAK]1/2
여기서 AK=(γ+1)ρK2, BK=γ+1γ−1pK 입니다.
Rarefaction wave 관계식 (p∗≤pK):
fK(p∗)=γ−12cK[(pKp∗)2γγ−1−1]
p∗는 다음 조건을 만족합니다:
fL(p∗)+fR(p∗)+(uR−uL)=0
Approximate Riemann Solver: 왜 필요한가?
Exact solver는 반복 계산이 필요하므로 비쌉니다.
실제 CFD 코드에서는 대부분 **근사 Riemann 풀이(approximate Riemann solver)**를 사용합니다.
Roe Solver (1981)
Roe는 비선형 Riemann 문제를 **선형화(linearization)**하여
행렬 A^에 대한 선형 Riemann 문제로 바꿉니다:
F^i+1/2=21(FL+FR)−21k=1∑3∣λ^k∣α^kr^k
Roe 평균(Roe average)을 사용하여 A^를 구성합니다:
u^=ρL+ρRρLuL+ρRuR,H^=ρL+ρRρLHL+ρRHR
장점: 접촉 불연속을 정확히 포착. 단점: 엔트로피 조건 위배 가능 (entropy fix 필요).
HLLC Solver (Toro, 1994)
HLL 풀이를 개선하여 접촉 불연속(Contact)을 복원한 것이 HLLC입니다.
세 개의 파속(wave speed) SL, S∗, SR을 추정합니다:
F^i+1/2=⎩⎨⎧FLFL∗FR∗FRif SL>0if SL≤0<S∗if S∗≤0≤SRif SR<0
star region 플럭스:
FK∗=FK+SK(UK∗−UK)
HLLC는 구현이 간단하면서도 robust하여 압축성 다상유동 코드에서 가장 널리 사용됩니다.
AUSM+ (Liou, 1996)
AUSM 계열은 플럭스를 대류항(convective)과 압력항(pressure)으로 분리합니다:
F^i+1/2=m˙1/2Ψ1/2+p^1/2D
여기서 m˙1/2은 셀 경계 질량 유량, Ψ는 대류되는 양입니다.
저마하 유동에서도 안정적이어서 all-speed scheme으로 확장하기 좋습니다.
다상유동으로의 확장
다상유동에서는 계면 양쪽의 EOS가 다르기 때문에,
Riemann solver를 multi-material 버전으로 일반화해야 합니다.
대표적인 접근:
- Ghost Fluid Method: 계면 근처에서 상대편 유체의 ghost cell을 구성하고,
각 상에서 독립적인 single-material Riemann 문제를 품
- HLLC for multi-material: star region에서 양쪽 EOS를 각각 적용하여
p∗, u∗를 결정
다음 글에서는 **계면 포착 기법(VOF, Level Set, Diffuse Interface)**을 비교합니다.