1. 개요
| 격자 볼츠만 방법 Lattice Boltzmann Method | |
|---|---|
| 약칭 | LBM |
| 이론적 기반 | 볼츠만 수송방정식 |
| 계산 스케일 | 중간자적 (mesoscopic) |
| 대표 격자 모델 | D2Q9, D3Q19, D3Q27 |
| 핵심 절차 | 충돌 (collision) · 스트리밍 (streaming) |
유체를 통째로 풀지 말고, 아주 많은 가상 입자가 격자 위에서 춤추게 하라. 그러면 유체는 저절로 나타난다.
격자 볼츠만 방법(Lattice Boltzmann Method, LBM)은 유체를 연속체로 보고 나비에-스토크스 방정식을 직접 이산화하는 대신, 입자 분포함수의 볼츠만 방정식을 격자 위에서 푸는 중간자적(mesoscopic) 수치해석 기법이다. 기체를 이루는 개별 분자를 하나하나 추적하는 미시적(microscopic) 관점과, 밀도·속도장만 다루는 거시적(macroscopic) 관점의 딱 중간에 서서, 격자점마다 정의된 입자 분포함수 의 시간 발전을 계산한다.
전통 CFD가 미분방정식을 이산화해 거대한 연립 대수방정식을 반복법으로 푸는 것과 달리, LBM은 매 시간 단계마다 “충돌”과 “스트리밍”이라는 국소적이고 단순한 두 연산만 반복한다. 압력-속도 연성을 위한 반복 계산(SIMPLE 알고리즘 같은)이 아예 필요 없고, 계산이 이웃 격자점끼리만 통신하는 국소 연산이라 병렬 컴퓨팅이 극도로 쉽다. 이 단순함과 병렬성이 LBM을 GPU 컴퓨팅 시대의 총아로 만든 핵심 무기다.
2. 격자 가스에서 LBM 까지
LBM은 볼츠만 방정식에서 곧바로 내려온 것이 아니라, 격자 가스 자동자(lattice gas automaton)라는 다른 뿌리에서 자라났다. 1986년 프리슈·하슬라허·포모(FHP) 모형은 삼각격자 위에서 입자의 유무를 불 값(0 또는 1)으로 두고 충돌 규칙을 표로 적어 나비에-스토크스 방정식을 복원했다. 세포 자동자로 유체를 푼다는 발상이었고, 정수 연산만 쓰니 비트 단위로 병렬화된다는 매력이 있었다.
문제는 통계 잡음이었다. 불 값은 격자점마다 입자가 있거나 없거나 둘 중 하나라, 거시량을 얻으려면 넓은 영역과 긴 시간에 걸쳐 평균을 내야 했다. 1988년 맥나마라와 자네티가 이 지점을 끊었다 — 불 점유수를 앙상블 평균한 실수 분포함수 로 바꾸면 잡음이 원리적으로 사라진다. 이것이 격자 볼츠만 방정식의 출발점이고, 대가로 비트 연산의 우아함을 잃고 부동소수점으로 돌아왔다.
남은 것은 표로 적힌 충돌 규칙이었다. 1992년 첸·d’위미에르·랄망이 이를 아래의 BGK 이완항으로 갈아 끼우면서 오늘날의 LBGK 형태가 완성됐다. 1997년 허와 뤄는 연속 볼츠만 방정식에서 속도 공간을 가우스-에르미트 구적으로 이산화하면 같은 식이 유도된다는 것을 보여, LBM이 격자 가스의 변종이 아니라 운동론의 정당한 이산화임을 못 박았다. 뿌리는 자동자였지만 족보는 기체동역학에 있다는 뜻이다.1
3. 격자 속도 모델 (DnQm)
LBM의 무대는 균일한 정렬 격자다. 각 격자점에는 미리 정해진 유한 개의 이산 속도 방향 가 있고, 각 방향마다 그 방향으로 움직이는 입자의 양을 나타내는 분포함수 가 얹힌다. 이 격자 구조를 DnQm 표기로 부르는데, 은 공간 차원, 은 이산 속도(방향) 개수다.
| 모델 | 차원 | 속도 방향 수 | 용도 |
|---|---|---|---|
| D2Q9 | 2D | 9 | 2차원 표준 |
| D3Q15 | 3D | 15 | 3차원 경량 |
| D3Q19 | 3D | 19 | 3차원 표준 |
| D3Q27 | 3D | 27 | 3차원 고정밀 |
가장 유명한 것이 2차원 표준인 D2Q9다. 정지 상태(1개), 상하좌우(4개), 대각선(4개)을 합쳐 9개 방향의 분포함수를 가진다. 각 방향에는 격자 대칭성과 등방성을 보장하도록 정해진 가중치 가 부여된다.
| 방향 묶음 | 이산 속도 | 개수 | 가중치 |
|---|---|---|---|
| 정지 | 1 | ||
| 축 방향 | 4 | ||
| 대각 방향 | 4 |
이 숫자들은 외우는 게 아니라 모멘트 조건에서 떨어지는 것이고, 그래서 손으로 검산된다. 규격화는 이고, 2차 모멘트는
로 정확히 격자 음속의 제곱이 나온다( 면 대각 방향이 부호로 상쇄돼 0이다). 이 등방성이 깨지면 채프먼-엔스코그 전개에서 나오는 점성항에 격자 방향이 새어 들어와, 회전시킨 같은 문제가 다른 답을 준다. 속도 방향이 많을수록(D3Q27 등) 정밀도와 안정성은 올라가지만 메모리와 연산이 함께 늘어나는, 익숙한 트레이드오프가 여기서도 성립한다.
3.1. 격자 단위와 평형 분포
LBM 코드는 거의 항상 격자 단위()로 쓴다. 그러면 격자 음속이 로 고정되고, 압력은 상태방정식 로 밀도에 직접 묶인다 — 전통 CFD가 따로 푸는 압력 방정식이 여기서 사라지는 이유다.
평형 분포 는 맥스웰 분포를 속도에 대해 2차까지 자른 것이다.
을 넣으면 코드에 그대로 박히는 꼴이 된다.
이면 로 가중치만 남고, 와 가 위 모멘트 조건에서 바로 따라온다. 2차에서 잘랐다는 사실이 곧 LBM의 마하수 제약이다 — 버린 항이 이라 압축성 오차가 로 남고, 실무에서 격자 속도를 (즉 )로 묶는 국룰이 여기서 나온다. 속도 방향이 많을수록(D3Q27 등) 정밀도와 안정성은 올라가지만 메모리와 연산이 함께 늘어나는, 익숙한 트레이드오프가 여기서도 성립한다.
4. 충돌-스트리밍
LBM의 심장은 놀랍도록 단순한 두 단계의 반복이다. 격자 볼츠만 방정식은 다음과 같이 쓴다.
이 한 줄이 스트리밍(streaming)과 충돌(collision)로 분해된다.
- 충돌 단계: 각 격자점에서 분포함수 가 국소적으로 재분배된다. 입자들이 부딪혀 평형을 향해 이완하는 과정으로, 위 식의 충돌항 가 담당한다. 순전히 국소 연산이라 이웃과 통신이 없다.
- 스트리밍 단계: 충돌 후의 분포함수가 각자의 이산 속도 방향 를 따라 이웃 격자점으로 그대로 이동한다. 그냥 값을 옆 칸으로 옮기는 것뿐이라 부동소수점 연산조차 거의 없다.
이 “부딪히고(collision) → 흘려보내고(streaming)“의 반복이 LBM 계산의 전부다. 무거운 행렬 역산도, 전역 압력 방정식도 없다. 이 간결함이 코드를 짜기 쉽게 만들고, 무엇보다 병렬화를 거의 공짜로 만든다.2
5. BGK 근사
문제는 충돌항 다. 원래 볼츠만 방정식의 충돌항은 입자 간 충돌을 다루는 복잡한 적분항이라 그대로는 감당이 안 된다. 그래서 실무 LBM은 이를 극도로 단순화한 BGK 근사(Bhatnagar-Gross-Krook, Phys. Rev. 94, 1954)를 쓴다. 핵심 아이디어는 “충돌이란 결국 분포함수를 국소 평형 분포 쪽으로 끌어당기는 이완 과정일 뿐”이라는 것이다.
여기서 는 단일 이완시간(relaxation time)으로, 분포함수가 평형에 얼마나 빨리 수렴하는지를 조절한다. 놀랍게도 이 이완시간 가 유체의 동점성계수 와 직접 연결된다.
여기서 는 를 단위로 재 무차원화한 이완시간이다(이 규약을 섞으면 점성이 배씩 틀린다 — 입문자가 가장 많이 밟는 지뢰다). 격자 단위에서는 , 이므로 식이 아주 짧아지고, 실제 코드는 대신 이완 빈도 를 들고 다닌다.
즉 점성을 넣고 싶으면 숫자 하나만 돌리면 된다. 거꾸로 격자 설정이 레이놀즈수를 결정한다. 폭 격자, 대표 격자속도 로 을 맞추려면 , 따라서 , 다. 를 올리려면 를 깎아야 하고 그러면 가 2로, 가 로 밀려간다 — 아래 §약점의 안정성 문제가 정확히 이 벽이다.
단일 이완시간이라 SRT(Single Relaxation Time) 모델이라고도 부른다.
6. Chapman-Enskog와 나비에-스토크스 복원
여기서 자연스러운 의문이 든다. “격자 위에서 가상 입자 놀이를 하는 게 진짜 유체 방정식을 푸는 것과 무슨 상관인가?” 이 연결고리를 증명하는 것이 채프먼-엔스코그 전개(Chapman-Enskog expansion)다.
이 다중 스케일 점근 해석은 격자 볼츠만 방정식을 크누센수에 대해 전개하여, 거시 극한에서 분포함수의 모멘트가 정확히 질량 보존(연속 방정식)과 운동량 보존(나비에-스토크스 방정식)을 만족함을 보인다. 분포함수의 0차·1차 모멘트가 각각 밀도와 운동량에 대응한다.
다시 말해 LBM은 나비에-스토크스를 “직접” 풀지 않지만, 그 해를 “복원”한다. 미시적 규칙(충돌-스트리밍)에서 거시적 유체 거동이 창발하는 셈인데, 이 점근 등가성이 성립하려면 앞서 언급한 격자 등방성(D2Q9의 가중치 설계)과 저마하수 조건이 필요하다. 복원되는 것은 엄밀한 비압축 방정식이 아니라 만큼 약압축성인 방정식이고, 그래서 정상 유동을 풀 때도 밀도가 로 미세하게 출렁인다. LBM이 본질적으로 약압축성·저속 유동에 맞춰진 방법이라는 사실이 바로 여기서 나온다.3
7. 경계조건 — 바운스백과 Zou-He
전통 CFD는 벽에서 속도를 직접 지정하지만, LBM이 들고 있는 변수는 가 아니라 분포함수 다. 그래서 “벽에서 미끄러지지 않는다”는 조건을 분포함수의 언어로 번역해야 하고, 이 번역이 LBM 구현에서 가장 말썽을 많이 일으키는 대목이다.
- 바운스백(bounce-back). 고체 노드로 들어간 분포를 온 방향 그대로 되돌려 보낸다(, ). 세 줄이면 끝나고, 형상이 아무리 복잡해도 “이 노드는 고체”라는 플래그만 있으면 동작한다. 벽을 노드 사이 중간에 놓는 판본(half-way bounce-back)이 직선 벽에서 2차 정확도를 주고, 노드 위에 놓는 판본(full-way)은 1차로 떨어진다. 계단식으로 꺾인 경사 벽에서는 유효 벽 위치가 만큼 흔들려 정확도가 다시 1차로 주저앉는다 — 복잡 형상이 “공짜”라는 말의 숨은 청구서다.
- 압력·속도 지정(Zou-He, 1997). 유입구에서 속도를, 유출구에서 압력(밀도)을 걸고 싶을 때는 미지의 분포 성분을 모멘트 조건으로 역산해야 한다. 조우와 허는 비평형 부분을 되튕기는 가정()을 추가해 모자란 식을 채웠고, 이 조합이 압력차로 구동되는 평면 하겐-푸아죄유 흐름의 해석해를 정확히 재현한다는 것을 보였다.
8. SRT를 넘어서 — MRT·TRT
SRT는 단순한 대신 모든 모멘트를 같은 속도로 이완시킨다. 그런데 거시 물리에 직접 대응하는 모멘트(밀도·운동량·응력)와, 아무 물리도 나르지 않는 고차 “유령 모멘트”(ghost moment)가 같은 로 묶일 이유가 없다. 를 2 가까이 밀면 유령 모멘트가 거의 이완되지 않고 남아 격자 규모의 진동으로 터지는데, 이것이 고레이놀즈수 SRT 불안정의 정체다.
MRT(다중 이완시간, d’위미에르 등 2002)는 충돌을 모멘트 공간에서 수행한다. 변환 행렬 으로 를 만들어 모멘트마다 다른 이완율을 주고 되돌린다.
는 이완율 대각행렬이고, 점성을 정하는 응력 모멘트의 이완율만 에 묶고 나머지는 안정성을 위해 자유롭게 고른다. 모든 이완율을 같게 두면 가 되어 SRT로 정확히 환원된다 — MRT는 SRT의 일반화이지 다른 방법이 아니다.
TRT(두 이완시간)는 이 중간 타협으로, 분포를 대칭·반대칭 부분으로 갈라 이완율을 , 둘만 둔다. 둘의 조합
이 벽의 유효 위치를 지배하고, 으로 잡으면 바운스백 벽이 푸아죄유 유동에서 정확히 노드 중간에 놓인다. 점성을 바꿔도 벽이 움직이지 않는다는 뜻이라 투과율 측정 같은 정량 계산에서 즐겨 쓰인다.4
9. 강점과 약점
LBM은 만능이 아니다. 잘하는 것과 못하는 것이 뚜렷이 갈린다.
9.1. 강점
- 복잡 경계·다공성 매질: 계단식 경계로 복잡한 형상을 손쉽게 표현하고, 벽면 처리는 분포함수를 되튕기는 바운스백(bounce-back)이라는 단순 규칙으로 끝난다. 다공성 매질 유동처럼 형상이 미쳐 날뛰는 문제에서 격자 생성 부담이 전통 CFD보다 훨씬 가볍다.
- 병렬성(GPU): 충돌은 완전 국소, 스트리밍은 최근접 이웃 통신뿐이라 GPU와 궁합이 환상적이다. 수백만 격자점을 그래픽 카드에 갈아 넣어 실시간에 가깝게 돌리는 사례가 많다.
- 다상·다성분: 샨-첸 모델(1993)처럼 입자 간 유사 퍼텐셜을 힘항으로 넣으면 상 분리가 저절로 일어나 계면을 따로 추적할 필요가 없다. 레벨셋 방법이나 VOF 방법과 대비되는 이 성질 덕에 다상유동 연구에서 활발히 쓰인다.
9.2. 약점
- 압축성·고마하수: BGK-LBM은 태생이 약압축성 저속 유동용이다. 평형 분포를 에서 자른 탓에 격자 음속이 로 고정돼 있어, 초음속이나 강한 압축성 유동은 표준 LBM의 사정권 밖이다(충격파를 잡으려면 격자를 더 키우거나 평형 분포를 고차로 확장해야 한다).
- 고레이놀즈수 안정성: 레이놀즈수가 높아지면 , 즉 ()로 붙으면서 유령 모멘트가 이완되지 않아 수치 불안정이 고개를 든다. 위의 MRT·TRT나 엔트로피 LBM 같은 처방으로 버티지만, 근본적으로 까다로운 영역이다.
- 균일 격자 제약: 전통적 LBM은 균일 정렬 격자를 전제해, 경계층처럼 국소적으로만 촘촘한 격자가 필요한 곳에서 국소 격자 세밀화(refinement)를 넣기가 유한체적법보다 번거롭다.
정리하면, LBM과 전통 CFD는 대체재라기보다 서로 다른 특기를 가진 도구다. 유한체적법 기반 상용 코드가 여전히 산업 표준의 왕좌에 앉아 있지만, 복잡 형상·다공성·GPU 대량 병렬이라는 특정 전장에서는 LBM이 확실히 한 방을 가지고 있다.5
10. 관련 문서
- 전산유체역학
- 나비에-스토크스 방정식
- 유한체적법
- 다상유동
- 격자
- 레이놀즈수
- 볼츠만 방정식 · 채프먼-엔스코그 전개 · 크누센수 · 기체동역학
- 마하수 · 압축성 유동 · 다공성 매질 유동
- SPH · 병렬 컴퓨팅 · GPU 컴퓨팅
11. Footnotes
-
그래서 “LBM 은 격자 가스의 후손이냐 볼츠만 방정식의 이산화냐”는 질문에는 둘 다라고 답하는 것이 정확하다. 역사적으로는 전자, 논리적으로는 후자다. 논문 서론에서 어느 쪽을 먼저 쓰는지로 저자의 출신 진영을 점칠 수 있다는 농담이 있다. ↩
-
“행렬 역산이 없다”는 말은 CFD를 오래 한 사람에게는 거의 종교적 해방으로 들린다. 압력 포아송 방정식과 씨름해 본 적이 있다면 이 단순함의 가치를 안다. ↩
-
LBM이 저마하수 방법이라는 건 종종 오해를 부른다. “볼츠만 방정식 기반이니 희박 기체나 초음속에 강하겠지”라고 기대하고 왔다가, 정작 표준 LBM이 비압축성 저속 유동에 최적화되어 있다는 걸 알고 당황하는 것이 국룰. ↩
-
이라는 값이 어디서 뚝 떨어진 것처럼 보이는데, 바운스백의 유효 벽 위치를 의 함수로 풀어 보면 그 지점에서 오차항이 상쇄된다. 이 숫자를 “매직 파라미터”라고 부르는 관행이 있는 걸 보면 작명에 공을 들인 사람은 없었던 듯하다. ↩
-
학회에서 LBM 진영과 전통 FVM 진영이 만나면 “그거 장난감 아니냐” vs “너희는 격자 짜다 인생 끝나잖아”의 신경전이 벌어지곤 한다. 물론 둘 다 각자의 문제에서 훌륭하게 작동한다. ↩
이 문서의 주요 출처
- Bhatnagar, Gross & Krook (1954), A Model for Collision Processes in Gases. I., Phys. Rev. 94(3), 511-525
- Qian, d'Humieres & Lallemand (1992), Lattice BGK Models for Navier-Stokes Equation, Europhys. Lett. 17(6), 479-484
- He & Luo (1997), Theory of the lattice Boltzmann method: From the Boltzmann equation to the lattice Boltzmann equation, Phys. Rev. E 56(6), 6811-6817
- Chen & Doolen (1998), Lattice Boltzmann Method for Fluid Flows, Annu. Rev. Fluid Mech. 30, 329-364
- Zou & He (1997), On pressure and velocity boundary conditions for the lattice Boltzmann BGK model, Phys. Fluids 9(6), 1591-1598
- Shan & Chen (1993), Lattice Boltzmann model for simulating flows with multiple phases and components, Phys. Rev. E 47(3), 1815-1819
의견을 반영할게요. 감사합니다.