VASP에서 수소분자(Hydrogen molecule) 구조 최적화할때 수소원자(Hydrogen atom)로 분해될 경우 해결방법
Bond Energy 계산
VASP (Vienna Ab initio Simulation Package), DFT (Density Functional Theory)를 이용하여 기존 시스템에서 추가로 확인 할 것이 있어서 몇 가지 Bond energy를 구해야 할 일이 있었습니다.
리소스가 많이 필요했던 계산은 아니고 H-H, H-Cl, Cl-Cl의 Bond energy를 계산하는 비교적 간단한 일이었는데요.
수소분자 (H2), 염소분자 (Cl2), 염산 (HCl), 수소원자 (H), 염소원자 (Cl)을 각각 계산 후 Energy without entropy
와 Energy(sigma->0)
의 값들을 구하여 Bond energy
를 구하려고 했습니다.
무언가 이상한 수소분자(H2) Opimization 결과
계산 결과 H2의 경우 bond dissociation energy가 0.001 eV가 나왔습니다. 즉 H-H 공유결합 세기가 0.001 eV 라는 소리죠.
조금 자세히 들여본다면 일반적인 공유결합은 저것보다 훨씬 세기 때문에, 말도 안되는 계산 결과라는 것을 알 수 있습니다. 😐
처음에는 함수(Functional)를 잘못 썼나? 생각을 했는데요. 이 때는 PBE-D3 (PBE+D3 Grimme correction) 사용하였습니다. 그렇지만 Cl2를 통해 분석한 Cl-Cl 결합의 경우 다른 자료들과 비교해보니 얼추 들어맞더군요.
혹시 초기 구조 문제인지 알아보기 위해, OSZICAR
파일에서 에너지를 확인해보니 첫번째 loop에서 에너지가 크게 발산하는 것을 관찰하였습니다.
그래서 문제 확인을 위해 molden
을 통해 결합거리를 확인해보니 수소분자(H2)가 바로 떨어져서 2개의 수소원자(H)로 분리되더군요.
문제는 Spin-polarized calculation
왜 이런식으로 수소분자가 결합이 깨질까 하고 원인을 찾던 중, 구글링을 해보니 저랑 같은 실수를 한 사람이 있었습니다. (ResearchGate)
문제는 기존의 시스템에서 ISPIN = 2
, 즉 spin-polarized calculation 으로 계산 중이었는데, 이 때 수소분자의 ground state의 전자가 unpaired 상태이라서 바로 반발력이 작용하여 수소 원자 형태로 분리되는 것이죠.
이런 문제를 해결하기 위해선
1. ISPIN=1, 즉 non spin-polarized calculation로 바꿔 계산 하거나
2. up-down spin의 갯수를 맞춰주기 위해 ISPIN = 2
는 유지해놓고, NUPDOWN = 0
를 추가하면 됩니다. (net up&down spin number: 0)
참고로, NUPDOWN
의 default 값은 -1 입니다. (fully relaxed calculation)
저는 spin-polarized calculation 결과가 필요했으므로, net spin 값 변경을 통해 해결했습니다.
혹시라도 vasp 사용 중에 비슷한 문제가 발생했다면 메일이나 댓글로 공유해주세요! 아는 내용이라면 최대한 도와드릴게요. 읽어주셔서 감사합니다. 😃