Home Science Coding Design Etc. AboutMe

VASP DFT 계산 중에 자주 발생했던 Error 모음 (Frequent Errors in VASP)

July 31, 2020   /   < 1 min read   /  

Vienna Ab initio Simulation Package, Density Functional Theory 계산 중에 자주 발생했던 Error 모음 (Frequent Errors in VASP)

I've seen the countless errors in DFT calculation, this post is a sum-up of them. Since there is no solution for Korean, I want to explain the solution for Korean. However, If you have the same error, please contact me. (reply or send mail to jongguk.ahn@gmail.com, if you send mail, please include "DFT" in your mail title, because sometimes Gmail classifies your mail as spam.)



지금까지 VASP를 통해 계산하던 중에 많고 다양한 Error이 있었는데요. VASP community를 참고하거나 Google에서 검색하면 더 많은 정보를 얻을 수 있지만, 한글로 된 문서는 많지 않아서 정리해놓으려 합니다.

혹시나 도움이 필요하시다면 주저말고 댓글이나 이메일로 물어보세요!😀 제가 아는 한에서 도와드리도록 하겠습니다.

참고로 이 글은 수시로 업데이트하고 있습니다.




stdout

 VERY BAD NEWS! internal error in subroutine INVGRP:
 inverse of rotation matrix was not found (increase SYMPREC)       3

Default로 설정되어 있는 Symmetry 문제이므로, ISYM = 0으로 바꿔줍니다. (계산에 필요한 시간은 더 늘어남)

INCAR file

before

!ISYM = default

after

ISYM = 0




stdout

 trying to continue reading WAVECAR, but it might fail
 Spin polarized Harris functional dynamics is a good joke ...

Optimize 계산을 마친 후에 Bader charge analysis나 Band structure를 계산할 때 발생할 수 있는 문제로, NSW 값을 잘못 설정했기 때문에 발생하는 오류. (NSW: # of OPT cycle)

before

NSW > 2

after

NSW = 0



stdout

 -----------------------------------------------------------------------------
|                                                                             |
|           W    W    AA    RRRRR   N    N  II  N    N   GGGG   !!!           |
|           W    W   A  A   R    R  NN   N  II  NN   N  G    G  !!!           |
|           W    W  A    A  R    R  N N  N  II  N N  N  G       !!!           |
|           W WW W  AAAAAA  RRRRR   N  N N  II  N  N N  G  GGG   !            |
|           WW  WW  A    A  R   R   N   NN  II  N   NN  G    G                |
|           W    W  A    A  R    R  N    N  II  N    N   GGGG   !!!           |
|                                                                             |
|      Your highest band is occupied at some k-points! Unless you are         |
|      performing a calculation for an insulator or semiconductor, without    |
|      unoccupied bands, you have included TOO FEW BANDS!! Please increase    |
|      the parameter NBANDS in file INCAR to ensure that the highest band     |
|      is unoccupied at all k-points. It is always recommended to             |
|      include a few unoccupied bands to accelerate the convergence of        |
|      molecular dynamics runs (even for insulators or semiconductors).       |
|      Because the presence of unoccupied bands improves wavefunction         |
|      prediction, and helps to suppress 'band-crossings.'                    |
|                                                                             |
 -----------------------------------------------------------------------------

INCAR 파일에서 NBANDS 설정이 너무 낮아서 발생하는 문제.

보통은 자동으로 VASP에서 원자 수를 고려하여 적당한 NBANDS 값을 적용하는데(default), 이 경우에는 너무 NBANDS 수가 적게 잡힌것 같다.

해결방법> 아마도 NBANDS 갯수를 늘려서 계산하면 될 것 같다. 확실한 NBANDS 갯수에 관한 건 다시 확인해봐야 할 것 같다. 참고로 사용한 원자수는 Carbon 28, Oxygen 4개 이고, 이 때 OUTCAR 파일에서 확인해본 결과 NBANDS는 90이였다.




stdout

 LDA part: xc-table for Pade appr. of Perdew
 POSCAR found type information on POSCAR  C  Ni
 POSCAR found :  2 types and     120 ions
 found WAVECAR, reading the header
 WARNING: stress and forces are not correct
 POSCAR, INCAR and KPOINTS ok, starting setup
 FFT: planning ...
 reading WAVECAR
 the WAVECAR file was read successfully
 RD_RHO_PAW: ion           1 data corrupt
 WARNING: PAW occupancies are missing on CHGCAR
 ERROR: charge density could not be read from file CHGCAR for ICHARG>10
 ERROR: charge density could not be read from file CHGCAR for ICHARG>10
 ERROR: charge density could not be read from file CHGCAR for ICHARG>10

ICHARG = 11 (band structure calculation)인데, 필요한 CHGCAR 파일이 누락 또는 변경되어서 발생한 문제.




Linux

PuTTY X11 proxy: unable to connect to forwarded X server: Network error: Connection refused
Molden: cannot connect to X server localhost:

Xming 을 실행하지 않아 발생하는 문제. PuTTY의 설정 Connection → SSH → X11 에서 Enable X11 forwarding을 허용하고, Xming 실행해야 함.



stdout

 VERY BAD NEWS! internal error in subroutine IBZKPT:
 Reciprocal lattice and k-lattice belong to different class of lattices. Often results are still useful...      96
  • 추가예정


stdout

 ZBRENT: fatal error in bracketing
     please rerun with smaller EDIFF, or copy CONTCAR
     to POSCAR and continue

IBRION = 2 일 때, 적합한 에너지 최소값을 찾지 못하는 오류. Brent's method를 통해 계산을 하는 와중에, 최소값 근처에서 진동(Oscillation) 하는 경우거나, 여러가지 요인으로 수렴하지 않을 때 발생하는 것 같다. 해결 방법으로는

  1. 최신 구조로 다시 계산을 돌리거나, (Re-calculation with newest structure)
  2. EDIFF 값을 줄여서 (calculation criterion adjust, 연산시간은 더 소요될 수도 있음) 계산하거나,
  3. 다른 알고리즘 (using IBRION = 0, 1,...)을 사용한다.




stdout

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   RANK 0 PID XXXXX RUNNING AT nodeXX
=   KILLED BY SIGNAL: 9 (Killed)
===================================================================================

Band calculation 을 하는 와중에, 메모리 부족 문제 때문에 자꾸만 계산 도중 튕겨나왔는데요. 우선 검색을 해보니 Optimization 도중에 튕긴 사례는 많이 있었는데, 이 경우 메모리를 늘리라는 이야기가 많아서 여러가지로 테스트 해보았습니다.

시도했던 케이스로는, (# of atoms = ~100)

  • 36 core + 64 GB memory
  • 64 core + 128 GB memory
  • 48 core + 192 GB memory
  • 72 core + 256 GB memory
  • 88 core + 192 GB memory

였고, 모두 다 시작부터 종료되거나, wavefunctions을 기록하는 과정에서 (writing wavefunctions) 계산이 종료됐습니다.

여러가지 검색 도중, NCORE (개별 오비탈에 할당하는 코어수) 값을 늘려서 부하를 줄이면 된다고 하길래, 기존의 사용하던 NCORE (4, 6, 8) 에서 12~16정도까지도 올려서 테스트 해보았지만 마찬가지로 실패. (아마도 Optimization의 경우에는 효과적일 것 같습니다.)

해결방법으로는,

  1. KPOINTS 파일의 intersections 을 줄이거나, (e.g., 20 → 10)
  2. KPOINTS 에서 intersections을 분할하여 여러번 계산하면 된다. (e.g., G→M, M→K, K→G instead of G→M→K→G)

제 경우, 계산의 정밀도를 위해 intersections 을 늘린 경우여서 분할하여 계산하고, 나중에 데이터들을 합쳤습니다.



stdout

 No initial positions read in

OUTCAR

  POSCAR: C Ni
  positions in direct lattice
↑ 여기까지만 나오고 더 이상 진행 안됨

POSCAR 파일이 잘못되어 발생한 문제. 보통 원자위치의 경우 copy&paste 하는데, 이 과정에서 이상한 문자가 들어갔거나 잘못된 공백이 삽입됐을 수도 있습니다. 다시 한 번 POSCAR 파일을 점검하여 해결했습니다.