서모스탯

편집 역사 토론
분자동역학 계산화학 마지막 수정: 2026-07-14 04:31:19

1. 개요[편집]

서모스탯
Thermostat
분야분자동역학 × 계산화학
목적온도 제어(정준 앙상블 NVT 구현)
주요 방식Berendsen, Nosé–Hoover, Langevin, velocity rescaling
악명 높은 함정flying ice cube 문제

뉴턴의 방정식은 에너지를 보존한다. 그런데 실험실은 25℃에 맞춰져 있다. 이 온도차를 메우는 장치가 서모스탯이다.

서모스탯(thermostat)은 분자동역학 시뮬레이션에서 계의 온도를 원하는 목표값 주위로 유지시켜, 정준 앙상블(canonical ensemble, NVT)을 샘플링하도록 만드는 알고리즘이다. 순수한 뉴턴 역학을 베를레 적분으로 굴리면 총 에너지가 보존되는 미시정준 앙상블(NVE)이 나올 뿐, 온도는 자유롭게 표류한다. 실제 실험은 대개 일정 온도(그리고 압력)에서 이뤄지므로, 시뮬레이션을 실험과 비교하려면 계를 가상의 열욕(heat bath)에 담가 온도를 붙들어둘 장치가 필요하다.

온도 자체는 등분배 정리(equipartition theorem)로 순간 운동에너지에서 읽어낸다. NN개 입자, NfN_f개 자유도의 계에서

12imivi2=Nf2kBT\frac{1}{2}\sum_i m_i v_i^2 = \frac{N_f}{2} k_B T

가 성립하므로, 순간 속도들로부터 순간 온도 TT가 정의된다. 서모스탯의 임무는 이 TT의 시간 평균을 목표값 T0T_0에 붙들어 매면서도, 정준 앙상블이 요구하는 온도의 요동까지 올바르게 재현하는 것이다. 이 둘을 동시에 만족시키는 게 생각보다 까다롭다.1

2. Berendsen: 빠르지만 반칙[편집]

가장 단순하고 직관적인 방식은 Berendsen 서모스탯(약한 결합, weak coupling)이다. 매 스텝 모든 속도에 스케일 인자 λ\lambda를 곱해 순간 온도를 목표값 쪽으로 지수적으로 끌어당긴다.

λ=1+Δtτ(T0T1)\lambda = \sqrt{1 + \frac{\Delta t}{\tau}\left(\frac{T_0}{T} - 1\right)}

여기서 τ\tau는 결합 시간상수. τ\tau가 작을수록 강하게 잡아당긴다. 평형화(equilibration) 단계에서 계를 목표 온도로 빠르게 데려가는 데는 최고다. 발산 직전의 계를 살릴 때도 유용하다.

문제는 이 방식이 올바른 정준 분포를 생성하지 못한다는 것. 온도 요동을 인위적으로 억눌러 실제 NVT보다 분포가 좁아진다. 게다가 후술할 flying ice cube 문제의 주범이다. 그래서 오늘날 통계 물리량 생산(production) 단계에서 Berendsen을 쓰는 건 리뷰어에게 지적당하기 딱 좋은 선택이다. “평형화엔 Berendsen, 생산엔 다른 거”가 이 바닥 국룰.2

3. Nosé–Hoover: 정통 결정론[편집]

정준 앙상블을 엄밀하게 생성하는 결정론적(deterministic) 방식의 대표가 Nosé–Hoover 서모스탯이다. 열욕을 하나의 추가 동역학 변수 ζ\zeta(마찰 계수)로 확장 해밀토니안에 편입시킨다. 운동방정식이 다음처럼 수정된다.

p˙i=Fiζpi,ζ˙=1Q(ipi2miNfkBT0)\dot{\mathbf{p}}_i = \mathbf{F}_i - \zeta\,\mathbf{p}_i, \qquad \dot{\zeta} = \frac{1}{Q}\left(\sum_i \frac{p_i^2}{m_i} - N_f k_B T_0\right)

계의 운동에너지가 목표보다 높으면 ζ\zeta가 양수가 되어 마찰처럼 속도를 감속시키고, 낮으면 음수가 되어 가속시킨다. 열이 계와 열욕 사이를 왕복하는 것을 미분방정식으로 흉내 낸 셈. QQ는 열욕의 “질량”으로, 온도 요동의 진동 주기를 결정한다.

Nosé–Hoover는 정준 분포를 정확히 재현한다는 이론적 뒷받침이 있어 널리 쓰인다. 다만 약점이 있으니 에르고딕성(ergodicity) 문제다. 단순 조화진동자처럼 자유도가 적거나 강하게 결합된 계에서는 위상공간을 골고루 훑지 못하고 특정 궤도에 갇힐 수 있다. 이를 보완하려고 서모스탯을 사슬처럼 여러 개 엮은 Nosé–Hoover chain을 쓴다. 서모스탯을 데우는 또 다른 서모스탯을 다는, 다소 눈물겨운 해법이다.

4. Langevin: 확률적 열욕[편집]

아예 확률(stochastic)을 끌어들이는 방식이 Langevin 서모스탯이다. 운동방정식에 마찰항과 무작위 요동력을 동시에 추가한다.

miv˙i=Fiγmivi+2γmikBT0  R(t)m_i \dot{\mathbf{v}}_i = \mathbf{F}_i - \gamma m_i \mathbf{v}_i + \sqrt{2\gamma m_i k_B T_0}\;\mathbf{R}(t)

마찰 γmivi-\gamma m_i \mathbf{v}_i은 에너지를 빼앗고, 무작위력 R(t)\mathbf{R}(t)은 에너지를 주입한다. 이 둘의 세기는 요동-소산 정리(fluctuation–dissipation theorem)로 정확히 묶여 있어, 장시간 평균이 목표 온도의 정준 분포로 수렴한다. 각 입자에 독립적으로 작용하므로 에르고딕성이 좋고 병렬화도 자연스러워, 요즘 GROMACS·LAMMPS 실무에서 매우 인기다. 대신 무작위력이 운동량을 국소적으로 흩뜨려 확산계수 같은 동역학 물성을 왜곡할 수 있어, 수송 계수를 재는 계산에는 γ\gamma를 신중히 골라야 한다.

관련 사촌으로 특정 속도 분포에 맞춰 운동에너지를 확률적으로 재조정하는 velocity rescaling(Bussi–Donadio–Parrinello, V-rescale)이 있다. Berendsen의 단순함에 올바른 정준 요동을 얹은 개량판으로, 생산 단계 기본값으로 애용된다.

5. Flying ice cube 문제[편집]

서모스탯 괴담의 최고봉이 flying ice cube 현상이다.3 Berendsen처럼 전역 속도 스케일링을 반복하면, 수치 오차가 계 전체의 병진·회전 운동(질량중심 운동)에 에너지를 야금야금 몰아준다. 등분배가 깨지면서 계 전체는 진공 속을 쌩쌩 날아가는데(운동에너지는 병진 모드에 몰림), 정작 내부 진동 자유도는 온도가 0에 가깝게 얼어붙는다. 즉 얼음덩어리가 날아다니는 꼴이 된다.

원인은 병진 운동에 온도 제어의 부담이 부당하게 실리는 것. 처방은 간단하다. 매 스텝(혹은 주기적으로) 질량중심 운동량을 0으로 빼주고(COM motion removal), 애초에 정준 앙상블을 올바르게 생성하는 서모스탯을 쓰는 것. 이 현상은 서모스탯이 단순히 “온도만 맞추면 되는” 물건이 아님을 보여주는 교과서적 반례다. 통계역학적으로 올바른 앙상블을 생성하느냐가 진짜 관건이다.

6. 어느 걸 쓸 것인가[편집]

  • 평형화: Berendsen 또는 V-rescale로 빠르게 목표 온도 진입.
  • 생산(통계 물성): Nosé–Hoover(chain) 또는 V-rescale. 정준 분포를 엄밀히 재현.
  • 큰 생체분자·용매: Langevin. 에르고딕성과 안정성이 좋다.
  • 동역학 물성(확산·점도): 확률적 서모스탯은 조심. NVE로 굴리고 초기 온도만 맞추는 편이 안전할 때도 많다.

압력까지 제어하려면 서모스탯에 짝을 이루는 배로스탯(barostat, Parrinello–Rahman 등)을 붙여 NPT 앙상블을 구성한다. 온도와 압력을 동시에 붙드는 순간, 시뮬레이션은 비로소 진짜 실험실 조건에 한 발 더 가까워진다.

7. 관련 문서[편집]

8. Footnotes[편집]

  1. 온도를 목표값에 딱 고정해버리면(요동 0) 그건 정준 앙상블이 아니라 등온 구속일 뿐이다. 정준 앙상블에서 순간 온도는 목표값 주위로 2/Nf\sqrt{2/N_f} 상대폭으로 요동쳐야 정상이다. 서모스탯의 진짜 시험대는 평균이 아니라 이 요동의 크기를 맞추는 것.

  2. Berendsen은 1984년 논문으로, 지금 기준으로는 “쓰지 마라”의 대명사가 됐지만 여전히 피인용 수만 회를 자랑한다. 학계에서 “가장 많이 인용되면서 가장 많이 욕먹는 알고리즘” 리스트에 단골로 오른다.

  3. 작명 센스가 일품이라 밈으로 굳었다. Harvey, Tan & Cheatham (1998)의 논문 제목이 아예 “The Flying Ice Cube”다. MD 코드 튜토리얼에서 “COM motion을 왜 빼야 하나요?”라는 질문의 표준 답변으로 소환된다.