VASP 튜토리얼: 1-1. 분리된 산소 원자의 DFT 계산
1. 튜토리얼 소개
이 튜토리얼에서는 VASP를 예로 들어 고성능 컴퓨팅에서 계산을 처음부터 수행하는 방법을 보여줍니다.
VASP는 Vienna Ab-initio Simulation Package의 약자로, 비엔나 대학의 하프너 그룹이 전자 구조 계산과 양자 역학-분자 동역학 시뮬레이션을 위해 개발한 소프트웨어 패키지입니다. 이는 재료 시뮬레이션과 계산재료과학 연구를 위한 가장 인기 있는 상용 소프트웨어 중 하나입니다. 높은 정확도와 강력한 기능으로 인해 연구자들이 재료 특성을 예측하고 설계하는 데 중요한 도구가 되었습니다. 고체물리학, 재료과학, 화학, 분자동역학 및 기타 분야에서 널리 사용됩니다. VASP는 가상 퍼텐셜과 평면파 기반 세트를 사용하여 전자 구조를 시뮬레이션하며 결정, 표면, 나노 구조와 같은 주기적 경계 조건이 있는 시스템에 특히 적합합니다.
通过本教程的学习,您将能够:
* 在伪代码层面解释密度泛函理论 (DFT) 计算
* 创建输入文件以运行孤立原子的 DFT 计算
* 识别 stdout 和 OUTCAR 的基本结构
* 提取分子和原子的相关能量
* 从之前的 Kohn-Sham (KS) 轨道重新开始 DFT 计算
튜토리얼 목표
이 튜토리얼은 VASP 공식 튜토리얼VASP를 사용하여 DFT 계산을 수행하고, 입력 파일을 만드는 방법, 출력 파일의 기본 구조를 이해하고, 관련 에너지 데이터를 추출하는 방법을 알아봅니다.
DFT는 전자의 자유도를 처리하는 프레임워크입니다. 의사코드 수준에서는 다음 단계가 포함됩니다.
- 전자 전하 밀도가 주어지면 해밀토니안을 정의할 수 있습니다.
- 해밀토니안의 고유함수와 고유값을 계산합니다.
- 전자 전하 밀도를 업데이트합니다.
- 수렴할 때까지 1~3단계를 반복합니다. VASP 구현에 대한 자세한 내용은 다음을 참조하세요. 전자 기저 상태를 계산하기 위한 VASP 알고리즘.
2. 작업 단계
1. 입력 파일과 스크립트를 준비합니다(이 튜토리얼에서는 이미 준비했습니다)
VASP 최적화 계산을 수행할 때는 4가지 핵심 파일을 준비해야 합니다. (본 튜토리얼 파일은 참고용입니다. 필요하신 경우 공식 홈페이지에서 허가를 받아 사용해주시기 바랍니다.):POSCAR , 인카 , K포인트 그리고 포트카모든 샘플 파일이 다음 위치에 배치되었습니다. /home/Oatom
아래에:
POSCAR:이 파일은 단위 셀 매개변수와 각 원자의 좌표 위치를 포함한 계산 모델의 원자 구조 정보를 제공하며, 구조 분석 및 최적화를 위한 VASP의 주요 내용입니다.
POSCAR
O atom in a box
1.0 ! universal scaling parameters
8.0 0.0 0.0 ! lattice vector a(1)
0.0 8.0 0.0 ! lattice vector a(2)
0.0 0.0 8.0 ! lattice vector a(3)
1 ! number of atoms
cart ! positions in cartesian coordinates
0 0 0
우리는 단일 원자에 대해 POSCAR 파일을 사용합니다. 격자 매개변수는 이웃 단위 셀의 원자가 서로 (상당히) 상호 작용하지 않을 만큼 충분히 크게 선택됩니다.
인카: 이 파일은 VASP 계산의 작업 유형과 계산 매개변수를 정의하고, VASP에 어떤 물리적 속성을 계산해야 하는지, 그리고 이러한 계산을 어떻게 수행해야 하는지 지시합니다.
SYSTEM = O atom in a box
ISMEAR = 0 ! Gaussian smearing
K포인트: 이 파일에는 계산에 필요한 K-포인트 그리드 정보가 포함되어 있습니다. K-포인트는 브릴루앙 영역에서 전자 상태가 샘플링되는 지점입니다.
Gamma-point only
0
Monkhorst Pack
1 1 1
0 0 0
원자나 분자의 경우 k-포인트 하나만 있으면 충분합니다. 더 많은 k-포인트를 사용하면 원자 간의 상호작용(0이어야 함)만 더 정확하게 설명할 수 있습니다.
포트카: 이 파일에는 계산 중 각 원자에 사용되는 의사전위 정보가 포함되어 있습니다.
스크립트 제출: 명령줄에서 VASP 계산을 실행하려면 계산을 호출하고, VASP 실행 파일을 실행하고, 기타 관련 콘텐츠를 포함하는 제출 스크립트(job.sh)를 작성해야 합니다. 이 스크립트를 사용하면 스크립트에 지정된 컴퓨팅 리소스에 작업을 전달할 수 있습니다.
#
# To run VASP this script calls $vasp_std
# (or posibly $vasp_gam and/or $vasp_ncl).
# These variables can be defined by sourcing vaspcmd
. vaspcmd 2> /dev/null
#
# When vaspcmd is not available and $vasp_std,
# $vasp_gam, and/or $vasp_ncl are not set as environment
# variables, you can specify them here
[ -z "`echo $vasp_std`" ] && vasp_std="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi/vasp_std"
[ -z "`echo $vasp_gam`" ] && vasp_gam="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi//vasp_gam"
[ -z "`echo $vasp_ncl`" ] && vasp_ncl="mpirun --allow-run-as-root -np 8 /data/app/vasp/6.3.0/gcc-mkl-openmpi//vasp_ncl"
#
# The real work starts here
#
$vasp_std
환경 변수 vasp_std, vasp_gam, vasp_ncl이 설정되지 않은 경우 VASP 프로그램을 실행하는 명령으로 설정합니다. 이렇게 하면 나중에 필요할 때 항상 기본값을 사용할 수 있습니다. 여기서 -np 1은 하나의 프로세스를 실행하도록 지정합니다.
2. 계산 시작
O 원자에 대한 샘플 출력(stdout)은 VASP 버전 6.3.0을 사용하여 얻었습니다. 초기 전하는 분리된 중첩 원자의 전하와 일치합니다(POTCAR 파일). 처음 4단계에서는 전하가 일정하게 유지되고, 그 다음에는 전하가 업데이트됩니다(rms(c) 열).
* 具体步骤:
新建一个终端,输入下面命令
cd Oatom/
vasp_std
3. 표준 출력(stdout): 터미널은 계산 결과를 표시합니다.
running on 8 total cores
distrk: each k-point on 8 cores, 1 groups
distr: one band on 1 cores, 8 groups
using from now: INCAR
vasp.6.3.0 05Feb16 (build Aug 22 2016 16:46:23) complex
POSCAR found : 1 types and 1 ions
scaLAPACK will be used
LDA part: xc-table for Pade appr. of Perdew
POSCAR, INCAR and KPOINTS ok, starting setup
WARNING: small aliasing (wrap around) errors must be expected
FFT: planning ...
WAVECAR not read
entering main loop
N E dE d eps ncg rms rms(c)
DAV: 1 0.384469664751E+02 0.38447E+02 -0.96726E+02 16 0.293E+02
DAV: 2 0.345965628955E+01 -0.34987E+02 -0.34942E+02 32 0.450E+01
DAV: 3 -0.244485866931E+00 -0.37041E+01 -0.34307E+01 16 0.308E+01
DAV: 4 -0.312557021227E+00 -0.68071E-01 -0.66914E-01 16 0.508E+00
DAV: 5 -0.313520305300E+00 -0.96328E-03 -0.96311E-03 32 0.506E-01 0.286E-01
DAV: 6 -0.314540466589E+00 -0.10202E-02 -0.17853E-03 16 0.332E-01 0.142E-01
DAV: 7 -0.314637222361E+00 -0.96756E-04 -0.22710E-04 16 0.134E-01
1 F= -.31463722E+00 E0= -.16037490E+00 d E =-.308525E+00
writing wavefunctions
OSZICAR 및 stdout 파일의 기호에 대한 간략한 설명:

4. 실행 결과 보기
실행 후 결과는 저장됩니다. ./Oatom/OUTCAR
, 명령을 입력하세요 cat OUTCAR
결과를 보려고.
다음은 대시로 구분된 OUTCAR 파일의 섹션입니다.
- INCAR, POTCAR, POSCAR를 읽어보세요
- 최근접 이웃 거리 및 대칭 분석
- 자세한 직무 정보
- 격자, k-포인트 및 위치에 대한 정보
- 기준 설정 정보(평면파 수)
- 비국소적 의사 잠재력 정보
- 각 전자 단계에 대한 정보(OSZICAR의 한 줄)
- 시간 및 에너지 정보
- 고유값에 대한 정보
POTLOK: cpu time 0.0878: real time 0.0877
SETDIJ: cpu time 0.0015: real time 0.0014
EDDAV: cpu time 0.0267: real time 0.0434
DOS: cpu time 0.0001: real time 0.0001
--------------------------------------------
LOOP: cpu time 0.1165: real time 0.1346
eigenvalue-minimisations : 16
total energy-change (2. order) : 0.3844697E+02 (-0.9672571E+02)
number of electron 6.0000000 magnetization
augmentation part 6.0000000 magnetization
Free energy of the ion-electron system (eV)
---------------------------------------------------
alpha Z PSCENC = 0.27135287
Ewald energy TEWEN = -91.92708002
-Hartree energ DENC = -281.84385691
-exchange EXHF = 0.00000000
-V(xc)+E(xc) XCENC = 26.11948841
PAW double counting = 245.99840262 -247.84808825
entropy T*S EENTRO = -0.08636665
eigenvalues EBANDS = -44.50008162
atomic energy EATOM = 432.26319604
Solvation Ediel_sol = 0.00000000
---------------------------------------------------
free energy TOTEN = 38.44696648 eV
energy without entropy = 38.53333313 energy(sigma->0) = 38.49014980
- 응력 텐서 정보
E-fermi : -8.8431 XC(G=0): -0.8043 alpha+bet : -0.1463
k-point 1 : 0.0000 0.0000 0.0000
band No. band energies occupation
1 -23.8439 2.00000
2 -8.9040 1.33333
3 -8.9040 1.33333
4 -8.9040 1.33333
5 -0.4676 0.00000
6 1.8633 0.00000
7 1.8633 0.00000
8 1.8633 0.00000
- 에너지 정보
The O atom (Example: Oatom)
FORCE on cell =-STRESS in cart. coord. units (eV):
Direction XX YY ZZ XY YZ ZX
--------------------------------------------------------------------------------------
Alpha Z 0.27135 0.27135 0.27135
Ewald -30.64236 -30.64236 -30.64236 0.00000 0.00000 0.00000
Hartree 93.90244 93.90244 93.90244 -0.00000 -0.00000 -0.00000
E(xc) -27.93035 -27.93035 -27.93035 -0.00000 -0.00000 -0.00000
Local -147.86211 -147.86211 -147.86211 0.00000 0.00000 0.00000
n-local -20.54942 -20.54942 -20.54942 -0.00000 -0.00000 -0.00000
augment 5.55366 5.55366 5.55366 0.00000 -0.00000 0.00000
Kinetic 126.50998 126.50998 126.50997 -0.00000 0.00000 -0.00000
Fock 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
-------------------------------------------------------------------------------------
Total -0.74681 -0.74681 -0.74681 0.00000 -0.00000 -0.00000
in kB -2.33695 -2.33695 -2.33695 0.00000 -0.00000 -0.00000
external pressure = -2.34 kB Pullay stress = 0.00 kB
- 고유값에 대한 정보
FREE ENERGIE OF THE ION-ELECTRON SYSTEM (eV)
---------------------------------------------------
free energy TOTEN = -0.31463722 eV
energy without entropy= -0.00611258 energy(sigma->0) = -0.16037490
5. 다시 계산
다시 계산해야 하는 경우 명령을 다시 입력할 수 있습니다. vasp_std
, 계산을 다시 시작할 수 있습니다. VASP를 다시 시작하면 WAVECAR 파일을 읽고 이전 파동 함수에서 계속 실행합니다(빠른 수렴).
6. 이전 계산 정리
실행 명령 bash cleanup.sh
이렇게 하면 이전 파동 함수가 지워지고 계산이 완전히 다시 시작됩니다.
결론
이 튜토리얼은 분리된 산소 원자의 DFT 계산에 초점을 맞춥니다. 우리는 분리된 원자의 에너지를 계산하기 위해 단일 산소 원자에 대한 DFT 계산을 설정하는 방법을 배웠습니다. 이 과정에는 해밀토니언을 정의하고, 해밀토니언의 고유 함수와 고유값을 계산하고, 시스템이 수렴할 때까지 전자 전하 밀도를 업데이트하는 작업이 포함됩니다. 준비된 입력 파일에는 POSCAR, INCAR, KPOINTS, POTCAR가 포함되며, 각각 고유한 형식과 기능을 갖습니다. 계산이 완료된 후 stdout 및 OUTCAR 파일을 분석하여 계산 과정과 결과를 이해할 수 있습니다.