Godunov 방법은 보존형태의 비선형 보존법칙
qt+f(q)x=0,
의 수치적 근사를 위해 개발된 유한체적법(Finite Volume Method) 중 하나로, 특히 충격파나 희박파와 같이 해가 불연속적인 문제에서도 물리적으로 올바른(엔트로피 조건을 만족하는) 약한 해를 계산할 수 있도록 설계되었습니다. 이 방법의 핵심 아이디어는 도메인을 셀로 분할한 후, 각 셀 경계에서 좌측과 우측의 상수 상태를 갖는 Riemann 문제를 풀어 그 해를 이용해 셀 내 보존량의 변화를 업데이트하는 것입니다.
1. 셀 분할과 셀 평균

전체 공간을 균일한 셀 Ci=[xi−21,xi+21]로 분할합니다. 여기서 정수 인덱스 i는 각 셀의 중심을 나타내며, 반정수 인덱스 i±21는 인접 셀 사이의 공통 경계를 의미합니다. 각 셀 내의 보존 변수 q의 평균은 다음과 같이 정의됩니다.
Qin≈Δx1∫xi−21xi+21q(x,tn)dx.
이러한 셀 분할 방식은 셀 경계에서의 플럭스 계산과 보존성(conservation property)을 명확하게 유지할 수 있다는 점에서 큰 이점을 가집니다.
2. 보존법칙의 적분 형태와 업데이트 공식
보존법칙의 기본 적분 형태는 셀 Ci에 대해
dtd∫xi−21xi+21q(x,t)dx=f(q(xi−21,t))−f(q(xi+21,t))
로 표현됩니다. 이를 시간 Δt 동안 적분하면
∫xi−21xi+21q(x,tn+1)dx=∫xi−21xi+21q(x,tn)dx−∫tntn+1[f(q(xi+21,t))−f(q(xi−21,t))]dt.
양 변을 Δx로 나누면, 셀 평균을 업데이트하는 공식은
Qin+1=Qin−ΔxΔt(Fi+21−Fi−21)
가 되며, 여기서 Fi±21는 해당 셀 경계에서의 시간 평균 플럭스를 나타내고,
Fi+21≈Δt1∫tntn+1f(q(xi+21,t))dt.
이와 같이 보존법칙의 적분 형태를 모방함으로써 전체 보존량이 정확하게 유지되도록 합니다.
3. 셀 경계에서의 Riemann 문제 해결
Godunov 방법의 가장 핵심적인 단계는 각 셀 경계, 예를 들어 xi+21에서 Riemann 문제를 해결하는 것입니다. 이때 인접 셀 Ci와 Ci+1의 셀 평균을 각각
qL=Qin(좌측 상태),qR=Qi+1n(우측 상태)
로 두고, 다음 Riemann 문제를 고려합니다.
qt+f(q)x=0,q(x,0)={qL,qR,x<0,x>0.
Riemann 문제의 해는 자기유사적 성질을 가지므로, 해는
q(x,t)=Q(ξ)withξ=tx
의 형태로 나타납니다. 특히 x=0는 ξ=0에 해당하므로, 셀 경계에서 구하고자 하는 해는
q(0,t)=Q(0)=q∗.

왜 x=0에서 해를 구하는가?
- 셀 경계에서 플럭스 결정:
유한체적법에서는 인접 셀 사이의 경계 상태가 결정되어야 하므로, x=0 (또는 일반적으로 셀 경계 xi+21)에서의 해 q∗를 이용해 수치 플럭스
Fi+21=f(q∗)
를 정의합니다. 이 수치 플럭스는 업데이트 공식에 직접 대입되어 셀 평균을 갱신하는 데 사용됩니다.

- 자기유사성의 활용:
Riemann 문제의 해는 ξ=tx에 대한 함수이므로 x=0는 ξ=0에 해당합니다. q(0,t)=Q(0)는 전체 해의 중심값을 대표하며, 충격파와 희박파 등의 전파 속도, 엔트로피 조건 등 물리적 조건을 반영하여 올바른 해를 선택하는 기준이 됩니다.
해를 구하는 방법
-
스칼라 보존법칙의 경우:
f(q)가 볼록(convex) 또는 오목한 경우, qL와 qR 사이에서는 충격파나 희박파가 발생하게 됩니다.
- 희박파(fan)의 경우, q(0,t)는 좌우 상태를 부드럽게 연결하는 값으로 결정됩니다.
- 충격파의 경우, Rankine–Hugoniot 조건
s=qR−qLf(qR)−f(qL) 와 추가적인 엔트로피 조건을 이용해 q(0,t)가 결정됩니다.
-
선형 혹은 선형화된 시스템의 경우:
상수 계수 A=f′(q)인 선형 시스템에서는 좌측 상태 qL와 우측 상태 qR의 차이를 고유벡터의 선형 결합으로 분해하여,
qR−qL=p=1∑mαprp,
각 파동은 속도 λp로 전파됩니다. 따라서 x=0에서의 해는 각 특성파의 진행 방향에 따라
q(0,t)=qL+p:λp>0∑αprp(또는 반대로)
와 같이 결정됩니다.
4. 수치 플럭스의 정의와 업데이트
셀 경계에서 구한 Riemann 문제의 해 q∗=q(0,t)를 사용하여 수치 플럭스를 정의하면,
Fi+21=f(q∗).
이 값을 앞서 유도한 업데이트 공식
Qin+1=Qin−ΔxΔt(f(qi+21∗)−f(qi−21∗))
에 대입하여 각 셀의 평균값을 다음 시간 단계로 갱신합니다.
5. Godunov 방법의 특징 및 확장
-
보존성 유지:
셀 경계에서의 플럭스가 인접 셀에 동일하게 적용되므로, 전체 보존량(예: 질량, 에너지 등)이 정확히 보존됩니다.
-
불연속 해 포착:
Riemann 문제를 풀어 셀 경계의 상태를 결정하므로, 충격파나 희박파와 같은 불연속 해를 물리적으로 올바른 방식으로 포착할 수 있습니다.
-
기본 1차 정확도:
기본 Godunov 방법은 1차 정확도를 가지지만, 이후 제한기(limiter) 등을 도입하여 고해상도(high-resolution) 방법으로 확장할 수 있습니다.
-
선형 및 비선형 문제 모두 적용 가능:
선형 시스템에서는 고유값 분해를 통한 명시적 해법을, 비선형 시스템에서는 적절한(종종 근사적인) Riemann 솔버를 사용하여 문제를 해결할 수 있습니다.
요약
Godunov 방법은 다음과 같은 절차로 진행됩니다.
-
셀 분할:
도메인을 셀 Ci=[xi−21,xi+21]로 분할하고, 각 셀의 평균 Qin을 계산합니다.
-
Riemann 문제 해결:
각 셀 경계 xi+21에서 좌측 상태 qL=Qin와 우측 상태 qR=Qi+1n를 사용하여 Riemann 문제
qt+f(q)x=0,q(x,0)={qL,qR,x<0,x>0,
를 풉니다. 이때 해는 자기유사 변수 ξ=x/t를 도입하여 q(0,t)=Q(0)=q∗로 나타내며, 이는 셀 경계에서의 상태를 결정하는 중요한 값입니다.
- 수치 플럭스 정의 및 업데이트:
q∗를 이용해 수치 플럭스 Fi+21=f(q∗)를 정의하고, 보존형 업데이트 공식
Qin+1=Qin−ΔxΔt(f(qi+21∗)−f(qi−21∗))
를 사용해 셀 평균을 갱신합니다.
이와 같이 Godunov 방법은 셀 경계에서 Riemann 문제를 풀어 x=0에서의 해를 구하는 것이 핵심이며, 이 해를 바탕으로 인접 셀 사이의 플럭스를 결정하여 전체 보존성을 유지하는 동시에, 충격파나 희박파 등 불연속 해를 올바르게 포착하는 수치적 기법입니다.