사용자:Lovos/밀도범함수이론

위키백과, 우리 모두의 백과사전.

밀도범함수이론(Density Functional Theory, DFT)은 물질, 분자 내부에 전자가 들어있는 모양과 그 에너지를 양자 역학으로 계산하기 위한 이론의 하나이다. 페르미(Fermi) 등이 고안한것을 월터 콘(Walter Kohn)교수가 발전시킨 것이다. 이를 통해 어떤 분자가 세상에 존재할 수 있는지 없는지의 여부, 특정 분자의 모양과 성질 등등을 예측할 수 있다. 컴퓨터를 사용하는 과학 계산들 중에서, 가장 널리 쓰이는 양자 역학 계산 분야 중 하나이다. 월터 콘 교수는 1998년에 이 업적을 인정받아 노벨상을 받았다.

이것도 볼 것: 월터 콘의 자기 소개 글 (영어)

그러나, 상사 구조를 갖는 다체 문제에 어디든 적용할 수 있으므로, 최근 전자구조와 별 상관 없는 많은 통계 물리학에 사용되기도 하다.

기본 개념[편집]

물질의 성질을 공부하려면 {많은 원자핵}+{많은 전자}문제를 풀어야 한다. 그러나, 단순한 원자가 아닌 복잡한 분자 (혹은 고체, 등등)에 대한 문제를 풀기는 이론상 가능하지만 현실적으로는 불가능하므로 몇 개의 근사 방법이 필요하다. 첫 번째 근사는 본-오펜하이머 근사 (Born-Oppenheimer approximation)로 전자보다 수천 배 이상 무거운 핵을 고정된 것으로 보고 핵에 의한 정전기장안에서 전자의 운동으로 표현하는 것이다. 즉, 많은 전자로 이루어진 시스템 문제를 푼다는 것이다.

밀도범함수이론에서는 많은 전자 문제를 단순히 전자들의 파동함수들 대신 전자 밀도함수로 대체함으로 손쉽게 계산하도록 하고 있다. 다시 말하면, 공간상의 어떤 점에 전자가 있을 때 이 전자가 느끼는 포텐셜(potential (energy))은 다른 모든 곳에서 오는 것을 밀도함수를 통한 평균장으로 볼 수 있다.(Mean Field Theory/Approximation).

이 때 전자의 밀도함수는 전자의 파동함수들의 절대값을 구해 제곱해서 체워진 준위까지 더해준 것으로 정의된다.



밀도범함수의 출발은 원자핵+전자 시스템을 풀기위해 시작됐지만 이론상 많은 동일한 형태의 입자/장 상호작용을 하는 다체 문제면 적용할 수 있다고 할 수 있다.

포텐셜[편집]

이상의 논의로 부터, 시스템의 포텐셜은

  • 외부 요인에 의한 포텐셜(주로 원자핵 또는 이온이 전자에 어떻게 영향을 미치나를 기술한다 (혹은 그렇지 않을 수 도 있다). 원자핵+전자로 해서 모든 전자를 고려한다면 온전자(all electron)계산, 이온+전자(보통 가전자)로 고려한 경우는 가짜포텐셜(pseudopotential)계산이 해당되겠다.) ,
  • 전자들끼리의 정전기적 상호작용(하트리포텐셜이라 한다.),

  • 전자를 서로 교환했을 때 (순전히 양자 역학에서만) 나타나는 교환-상관(exchange-correlation)포텐셜이 있다.

으로 나타난다.

이 중 교환-상관 포텐셜은 아무도 정확히 어떤 형태를 가지는지 모르고, 보통의 경우 양자 몬테카를로 계산값과 장론의 결과를 근사적으로 잘 맞추는 형태로 시도하게 된다.

그리고 국소전자밀도에만 의존하는 교환-상관 포텐셜 범함수(functional)를 사용하게 되면 국소 밀도 근사(local density approximation)라고 하고 선형근사를 쓰게 되면 일반화된 기울기 근사(generalized gradient approximation)라고 한다. 많은 경우 국소 밀도 근사만으로 시스템을 잘 설명하지만 전하이동이 큰 시스템에서는 잘 맞지 않는 경항이 있다. 또한 non-local한 반응 및 그에 의존하는 계, 예를 들자면 흑연의 c축 방향의 격자상수 등을 잘 계산하지 못한다.

기술적으로(technically) 공간 상의 어떤 점에서 함수 값을 구할 때 모든 공간의 정보를 필요로 하는 경우 이를 논로컬(non-local)하다고 말하고 해당점의 정보만 필요한 경우를 로컬(local)하다고 말한다. 위의 포텐셜에서는 외부 요인에 의한 포텐셜은 local혹은 non-local할 수 있고, 하트리포텐셜은 확실히 non-local하며, local density approximation을 사용했을때는 교환-상관 포텐셜은 local하며, 일부 경험적으로 얻어진 교환-상관 포텐셜은 non-local한 경향을 나타낼 수 있다.

수학[편집]

호헨버그(Hohenberg) 와 콘(Kohn)의 정리:

1. 해밀토니안이 주어지면 파동함수를 구할 수 있고 파동함수에서 밀도함수를 구할 수 있는데 (이론상) 밀도함수에서 파동함수를 구할 수도 있다. 즉, 파동함수와 밀도함수는 일대일 함수 관계에 있고(bijective) 파동함수와 해밀토니안 또한 일대일 함수 관계에 있다. 결국 밀도함수와 해밀토니안은 일대일 함수 관계에 있다. (invertibility) : 계산 과정에서, 해밀토니안, 파동 함수, 밀도 함수는 같은 대상을 표현한 서로 다른 표현 방식에 지나지 않을 뿐, 같은 것이다.

2. 변분원리를 이용해서 정확한 바닥상태 에너지를 계산할 수 있다. (variational principle)

3. 외부에서 오는 포텐셜을 뺀 나머지는 언제나 같다. (universality)

콘-(Kohn-Sham) 정리: 정확한 바닥상태 밀도함수는 콘-샴 방정식이라고 하는 슈뢰딩거 방정식과 흡사한 방정식을 풀면 구할 수 있다.

 

여기에서 해밀토니안

 

은 전자 질량.

How to solve[편집]

정리하면

1. 전자 밀도를 구하기 위해 전자의 파동함수들을 이용하고

2. 전자 밀도를 이용해 포텐셜을 계산한다.

3. 주어진 포텐셜로부터 콘-샴 방정식을 푼다. 풀이 결과는 전자의 파동함수이다.

보통 계산을 위해서는 처음에 "적당히" 파동함수를 예상하고(tight-binding 방법으로 근사한다.) 1, 2, 3의 과정을 거치면 처음에 찍은 파동함수보다는 실제에 가까운 파동함수가 나온다. 다시 이것을 초기 예상값으로 하여 재계산을 거듭한다. 즉 self-consistent 방법으로 풀이한다. 실제 계산에서는 적당히 (상당히 보수적으로) 이전 단계의 초기 예상값과 계산 결과값을 잘 섞어서 초기 예상값으로 사용한다.

쉬운 설명[편집]

전자들이 돌아 다니는 분자들에서 전자들이 얼마나 불안하고 빨리 돌아다니고 있는지 그 에너지를 구하려면 양자 역학적으로 묘사해야 된다고 한다. 그런데 하나 이해하고 계산하려고 해도 머리가 지끈거리는 양자 역학 계산을 수십 수백 개 전자에 대해 하려 한다면? (아주 단순한 분자인 부탄 가스 분자 2개만 있어도 전자 숫자가 백 개에 이른다.) 그것은 너무나 긴긴 시간을 소모하는 일이다.

그래서 생각한 방법인즉슨, 전자 하나 하나의 움직임을 쫓아가지 말고, 전자 무더기를 한 덩어리의 양으로 따져 보자는 것이다. 그래서 전자가 자주 출몰하는 지역에는 덩어리가 많이 쏠려 있고, 전자가 덜 출몰하는 지역에는 덩어리가 조금밖에 없는 울퉁불퉁한 도넛의 모양으로, 전자들의 떠돌아다니는 영혼의 서글픈 그림자만 그려보는 것이다. 전자 하나 하나를 따지지 않고, 도넛으로된 전자 덩어리만 생각해도 에너지를 구하는 데 큰 문제가 없다고 하니까. 도넛으로 된 전자 덩어리의 모양과 에너지와의 관계를 표시하는 수식이 KS 방정식이다.

  • Self-consistent 방법

이 전자 덩어리의 모양을 구하는 방법이 self-consistent 방법인데, 이걸 설명해보자면 이렇다. 아무렇게나 도넛을 만들어 놓고, 방정식(전자들이 처한 상황에서 꼭 만족해야 할 조건식)을 얼마나 만족시키는지 계산해 본다. 당연히 잘 만족시키지 않을 것이다. 그러면 도넛의 어떤 부분을 주물럭 주물럭 해서 모양을 좀 바꾸어 본다. 잘 바꾸었다면, 아까보다는 좀 더 만족시킬 것이다. 이런식으로 대강대강 점차점차 주물럭 거리면서 모양을 바꾸어 조건식을 상당히 잘 맞출 때까지 바꾸어 보면, 어느 수준까지 주물럭거린 도넛은 우리가 원하는 전자 덩어리 모양과 꽤 비슷하다고 생각할 수 있다.

  • 교환 에너지(exchange energy)

밀도범함수론에서 가장 신경쓸 필요가 있는 교환 에너지(exchange energy)를 구하는 범함수란, 다음과 같은 것을 말한다. 왼쪽에 있는 전자 하나가 발에 땀나게 오른쪽으로 뛰어가고, 오른쪽에 있는 전자 하나가 열심히 뛰어서 왼쪽으로 가서 두 전자가 자리를 살짝 바꾼 경우를 따져 보자.

두 전자는 열심히 뛰어다녔음에도 불구하고, 두 전자가 정확히 자리를 바꾸기만 한 경우에는, 전자가 분명히 많이 움직여서 에너지를 갖고 있었다고는 하지만, 거국적으로 보았을 때는 아무런 변화가 없었던 것이고, 이 것은 양자 역학에서는 전자가 움직이지 않았다는 말과 다를 바 없게(!) 평가되어야 한다. 즉 이런 "자리만 바꾸기"가 많이 일어난다면, 움직였다고 한들 움직이지 않은 것이나 다를 바 없는 것들이 많았으므로, 실제 에너지는 더 낮아져야만 한다. (양자 역학적으로, 그런 것은 움직인 것이 아니다.)

밀도범함수론은 전자들이 선풍기의 날개나 헬리콥터 날개 처럼 매우 빨리 돌아다녀서 멀리서 보면 마치 덩어리처럼 보인다는 식으로 전자를 표현하고 있다. 따라서 전자끼리 자리만 바꾼 경우에는 움직이지 않은 것으로 치는 것을 따로 계산해 주어야 한다. 이런 자리만 바꾼 경우가 얼마나 있는지를 도넛의 모양을 대강 보고 짐작해 주어야 하며, 이 짐작을 하는 방법이 바로, "교환 에너지 범함수"라는 것이다. 실제로는 상관 에너지(correlation energy)라는 것도 동시에 고려해 주므로, 교환-상관 (exchange-correlation) 범함수라는 것을 사용하게 된다.

좋은 교환-상관 범함수를 구하는 방법은 딱히 정해져 있지 않다. 대강 만들어내는 것이고, 기존의 방법들에서 나온 결과를 참조시켜 작동하도록 하기도 한다. 최근에는 B3LYP라는 범함수가 대체로 모든 경우에 큰 오류가 없다고 평가받고 있다. 하지만 계가 커질수록 오차가 늘어나는 경향이 있어, M06이나 XYG 등의 범함수들이 등장하게 되었다.

소프트웨어[편집]

백 번 듣는 것보다 한번보는게 낫고 백 번 보는 것보다 한 번 해 보는 게 좋다는 말이 있듯이 밀도범함수이론을 컴퓨터에서 돌려 볼 수 있다. 여기에는 대개 두 가지 방법을 생각할 수 있다. 첫째, 혼자서 또는 팀을 짜서 구현하는 것이고 두 번째 방법은 남이 짜 놓은 것을 가져다가 쓰면 된다.

후자의 경우를 먼저 살펴 보면 ElectronicStructure.org/software에 자유 소프트웨어를 구할 수 있는 다수의 링크가 있다. (화학쪽 소프트웨어로는 NWChemGAMESS가 있다고 한다.) 대부분의 software가 기본적으로 운영 체제유닉스리눅스로 가정하고 있고, 다른 많은 과학 소프트웨어 배포본이 그렇듯이 포트란 소스가 있고 이걸 컴파일해서 쓰는 형태이다. 꼭 그렇지는 않지만 상용 포트란 컴파일러가 필요할 것으로 생각할 수 있다. 분명히, BLASLAPACK 같은 수학 라이브러리가 필요할텐데 netlib에서 구할 수 있을 것이다. 다음에 컴파일된 프로그램을 돌리기 위해서는 작은 문제가 아니라면 (커다란 메모리가 필요하고 따라서 받아들이는 데에 오랜 시간이 걸리는 문제 (왜냐하면 N 순의 알고리즘이 적용되어 있지 않다면 O(N^3)만큼의 시간이 필요하다.)) 슈퍼 컴퓨터나 리눅스 클러스터가 필요할 것으로 보인다. 물론 소스 코드를 수정하는 것은 쉽지는 않겠지만 읽는 것으로는 크게 문제 될 것이 없을 것이다.

다음에 전자의 경우를 살펴 보겠다. 구현하는 데 가장 중요한 사항은 기초 세트(basis set)를 결정하는 일이라고 생각합니다. (basis set는 Hilbert space를 span하는 완전한 세트이기 때문에 basis set가 바뀌면 representation, 쉽게 말해서 수식이 바뀌기 때문이다.) 흔히 쓰이는 basis set는 평면파(plane wave)와 local orbital (가우시안을 사용한다 해서 가우시안-Gaussian-이라고 하는 유명한 소프트웨어가 있음.)가 있다. 그 다음 결정할 일은 all electron을 할 건지 pseudopotential을 쓸 것인지 또 교환상관 포텐셜은 어떤 것을 쓸 것인지를 결정한다. 이제 굵은 가지는 결정되었고 세부 사항으로 어떤 플랫폼에서 돌릴 것인지 어떤 수학 라이브러리를 쓸 것인지 결정하고 코드를 쓰면 되겠다. (숙련된 프로그래머라면 대략 몇 달만에 겨우 돌아가는 코드를 짤 수 있을 것으로 여겨진다. 물론 그 코드가 쓸만하게 될 때까지는 수년~수십년이 걸릴 것으로 생각된다.)

참고 문헌[편집]

Kohn 교수의 발상(original idea)이 담긴 논문은:

1. P. Hohenberg and W. Kohn, Phys. Rev. 136B, 864 (1964).

2. W. Kohn and L.J. Sham, Phys. Rev. 140, A1133 (1965).

일반적인 학습 서적:

1. R.M. Dreizler and E.K.U. Gross, Density Functional Theory, Springer-Verlag (1990) ISBN 3-540-51993-9 or ISBN 0-387-51993-9.

2. R.G. Parr, W. Yang, and Y. Weitao, Density-Functional Theory of Atoms and Molecules, Oxford University Press ISBN 0195092767