SIMWIKI DOC // 수치해석

유한체적법

수치해석 이산화 기법 CONVERGED last update 2026-06-30 09:17:42

유한체적법
Finite Volume Method
약칭FVM
분야수치해석 · 이산화 기법
핵심 아이디어검사체적 적분 + 가우스 발산정리
주 사용처CFD 상용/오픈소스 코드 대부분

1. 개요[편집]

들어온 만큼 나간다. 아니면 쌓인다. 그게 전부다.

유한체적법(Finite Volume Method, FVM)은 해석 도메인을 유한 개의 검사체적(control volume)으로 분할하고, 지배 방정식을 각 검사체적에 대해 적분한 뒤 가우스 발산정리를 이용해 체적 적분을 면 플럭스(flux) 적분으로 변환하여 이산화하는 수치 기법이다. 미분방정식을 “점에서의 미분”이 아니라 “셀 경계를 드나드는 플럭스의 수지(收支)“로 다시 쓰는 것이 본질이며, 이 덕분에 보존 법칙을 다루는 전산유체역학과 궁합이 유난히 좋다. OpenFOAM, ANSYS Fluent, STAR-CCM+ 등 오늘날 산업용 CFD 코드의 절대다수가 FVM 기반이다.

2. 기본 원리[편집]

나비에-스토크스 방정식을 포함한 유체의 지배 방정식은 대부분 다음과 같은 일반 수송 방정식 형태로 쓸 수 있다.

(ρϕ)t+(ρuϕ)=(Γϕ)+Sϕ\frac{\partial (\rho\phi)}{\partial t} + \nabla \cdot (\rho \mathbf{u} \phi) = \nabla \cdot (\Gamma \nabla \phi) + S_\phi

FVM은 이 식을 미분한 채로 두지 않고, 검사체적 VV에 대해 적분한다. 이때 가우스 발산정리

VFdV=SFndS\int_V \nabla \cdot \mathbf{F} \, dV = \oint_S \mathbf{F} \cdot \mathbf{n} \, dS

를 적용하면 발산항들이 검사체적 표면 SS에서의 플럭스 적분으로 바뀐다.

tVρϕdV+SρϕundS=SΓϕndS+VSϕdV\frac{\partial}{\partial t}\int_V \rho\phi \, dV + \oint_S \rho\phi\,\mathbf{u}\cdot\mathbf{n}\,dS = \oint_S \Gamma\,\nabla\phi\cdot\mathbf{n}\,dS + \int_V S_\phi \, dV

즉 셀 내부의 ϕ\phi 총량의 시간 변화는 면을 통해 드나드는 대류 플럭스와 확산 플럭스, 그리고 내부 생성항의 합과 같다. 미분 연산이 전부 면 적분으로 넘어갔으므로, 남은 일은 각 면에서의 플럭스 SFndS\oint_S \mathbf{F}\cdot\mathbf{n}\,dS를 셀 중심 값들로부터 어떻게 평가하느냐뿐이다. FVM의 온갖 도식(scheme) 논쟁은 결국 이 면 값 보간 문제로 수렴한다.

3. 보존성[편집]

FVM의 최대 세일즈 포인트. 인접한 두 셀이 공유하는 면에서, 한쪽 셀에서 나가는 플럭스는 부호만 뒤집혀 그대로 이웃 셀로 들어가는 플럭스가 된다. 따라서 도메인 전체를 합산하면 내부 면의 플럭스가 전부 상쇄되고(telescoping) 경계면의 플럭스만 남는다.

  • 국소 보존(local conservation): 각 셀 단위로 질량·운동량·에너지 수지가 기계 정밀도 수준에서 정확히 맞는다. 격자가 아무리 거칠어도 성립한다.1
  • 전역 보존(global conservation): 국소 보존의 자동 귀결. 도메인 전체의 수지는 경계 조건으로 들어오고 나가는 양으로만 결정된다.

이 성질은 충격파 같은 불연속 해를 다룰 때 특히 중요하다. 보존형 이산화는 랭킨-위고니오(Rankine–Hugoniot) 관계와 정합적이어서 충격파의 전파 속도를 올바르게 포착하지만, 비보존형 기법은 충격파 위치 자체가 틀리게 나올 수 있다.

4. 대류항의 처리[편집]

확산항은 얌전한 타원형 성질 덕에 중앙차분으로 무난히 처리되지만, 대류항은 FVM 반세기 역사의 절반을 잡아먹은 골칫거리다. 면 값 ϕf\phi_f를 셀 중심 값으로 보간하는 방식에 따라 성격이 갈린다.

4.1. 중앙차분 (Central Differencing)[편집]

양쪽 셀 중심 값의 선형 보간. 2차 정확도라 오차는 작지만, 셀 페클레 수가 2를 넘는 대류 지배 유동에서 비물리적 진동(wiggle)을 일으킨다. 해에 없어야 할 굴곡이 생기면 아무리 오차 차수가 높아도 소용없다.

4.2. 상류도식 (Upwind)[편집]

흐름이 오는 쪽(상류) 셀의 값을 그대로 면 값으로 쓰는 방식. 1차 상류도식은 어떤 상황에서도 진동 없이 유계(bounded)를 유지하는 대신, 절단오차의 선두항이 확산항과 똑같은 형태로 나타난다. 이것이 악명 높은 수치확산(numerical diffusion)으로, 유효 확산계수가 대략 ρuΔx/2\rho |u| \Delta x / 2 수준이라 해의 급격한 변화를 사정없이 뭉개버린다.2 안정성과 정확도의 트레이드오프를 보여주는 교과서적 사례.

5. 고차 도식[편집]

“진동 없이 2차 이상”을 향한 여정이다. 고두노프(Godunov) 정리에 따르면 선형 단조(monotone) 도식은 1차 정확도가 한계이므로3, 고차와 유계성을 동시에 얻으려면 해의 국소 거동에 따라 도식을 바꾸는 비선형 기법이 불가피하다.

  • QUICK(Leonard, 1979): 상류 쪽으로 치우친 2차 다항식 보간. 면 보간 기준 3차 정확도이지만 단조성이 보장되지 않아 급구배에서 오버슈트가 생길 수 있다.
  • MUSCL(van Leer): 셀 내부에 기울기를 재구성하되 기울기 제한자(slope limiter)로 새로운 극값 생성을 억제하는 접근.
  • TVD(Total Variation Diminishing): 해의 총변동이 시간에 따라 증가하지 않도록 플럭스 제한자(minmod, van Leer, superbee 등)를 설계하는 틀. 매끄러운 영역에서는 고차, 불연속 근처에서는 1차로 자동 전환된다.

압축성 유동에서는 여기에 리만 솔버를 결합해 면에서의 파동 구조까지 고려하는 것이 표준이다.

6. 비정렬 격자와 산업 표준[편집]

FVM이 상용 CFD를 평정한 결정적 이유는 격자 유연성이다. 이산화에 필요한 것은 “셀의 체적, 면의 면적과 법선 벡터”뿐이므로, 셀이 육면체든 사면체든 임의 다면체든 알고리즘이 달라지지 않는다. 인덱스 구조 (i,j,k)(i,j,k)에 묶이는 유한차분법과 달리, 자동차 엔진룸 같은 복잡 형상에 비정렬 격자를 던져 넣어도 그대로 돌아간다는 뜻이다.

정리하면 상용 표준이 된 이유는 다음과 같다.

  • 국소 보존성 — 유체 문제의 물리와 정합적
  • 비정렬·다면체 격자 지원 — 실무 형상 대응력
  • 플럭스 기반 정식화 — 경계 조건을 경계면 플럭스로 자연스럽게 부과
  • 검사체적 수지라는 직관적 해석 — 디버깅과 검증이 상대적으로 수월

물론 공짜는 아니다. 비정렬 격자에서 3차 이상의 고차 정확도를 구현하기가 매우 번거로워, 대부분의 상용 코드는 2차 정확도에 머물러 있다. 극한의 정확도가 필요한 DNS 연구가 여전히 유한차분법이나 스펙트럴 계열의 영역으로 남아 있는 이유다.

7. 관련 문서[편집]

8. Footnotes[편집]

  1. 보존이 맞는다는 것과 해가 맞는다는 것은 별개의 문제다. 셀 10개짜리 격자도 질량 보존은 완벽하다. 다만 그 완벽하게 보존된 해가 현실과 아무 상관이 없을 뿐이다.

  2. 수치확산이 난류 점성처럼 해를 부드럽게 만들어 주는 바람에 “공짜 난류 모델”이라는 자조 섞인 농담이 있다. 문제는 이 모델의 계수를 물리가 아니라 격자 크기가 정한다는 것.

  3. Godunov, S. K. (1959). 아이러니하게도 도식 개발자들의 수십 년 노력에 “그 방향으로는 답이 없다”고 선고한 이 정리가, 비선형 제한자라는 우회로를 열어 현대 고해상도 도식의 출발점이 되었다.