HyperAI超神経

VASP チュートリアル: 1-1. 孤立酸素原子の DFT 計算

1. チュートリアルの概要

このチュートリアルでは、VASP を例として、ハイ パフォーマンス コンピューティングの計算を最初から実行する方法を紹介します。


VASP (Vienna Ab-initio Simulation Package) の正式名称は、ウィーン大学の Hafner グループによって開発された電子構造計算および量子力学・分子動力学シミュレーション用のソフトウェア パッケージです。現在、材料シミュレーションおよび計算材料科学研究において最も人気のある商用ソフトウェアの 1 つであり、その高精度と強力な機能により、研究者が材料特性を予測および設計するための重要なツールとなっており、固体物理学や材料科学で広く使用されています。 、化学、分子動力学などの分野。 VASP は、擬ポテンシャルと平面波基底関数を使用して電子構造をシミュレートし、結晶、表面、ナノ構造などの周期的な境界条件を扱うシステムに特に適しています。

通过本教程的学习,您将能够:

* 在伪代码层面解释密度泛函理论 (DFT) 计算
* 创建输入文件以运行孤立原子的 DFT 计算
* 识别 stdout 和 OUTCAR 的基本结构
* 提取分子和原子的相关能量
* 从之前的 Kohn-Sham (KS) 轨道重新开始 DFT 计算

チュートリアルの目的

このチュートリアルは VASP公式チュートリアルVASP による DFT 計算の実装、入力ファイルの作成方法、出力ファイルの基本構造の理解方法、および関連するエネルギー データの抽出方法を学習します。

DFT は電子の自由度を扱うフレームワークです。疑似コード レベルでは、次の手順が含まれます。

  1. 電子の電荷密度が与えられると、ハミルトニアンを定義できます。
  2. ハミルトニアンの固有関数と固有値を計算します。
  3. 電子の電荷密度を更新します。
  4. 収束するまでステップ 1 ~ 3 を繰り返します。 VASP での実装の詳細については、以下を参照してください。 電子の基底状態を計算するVASPアルゴリズム

2. 操作手順

1. 入力ファイルとスクリプトを準備します(このチュートリアルは準備されています)

VASP 最適化計算を実行する場合、4 つのキー ファイルを準備する必要があります (このチュートリアルファイルは参考用です。使用する必要がある場合は、公式Webサイトで許可を申請してください):ポスカーインカールKポイント  そして ポトカー、すべてのサンプル ファイルは次の場所に配置されています。 /home/Oatom  下:

ポスカー: ファイルは、単位格子パラメータや各原子の座標位置などの計算モデルの原子構造情報を提供し、構造解析と最適化のための VASP の本体です。

ポスカー

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 点が使用されると、原子間の相互作用 (ゼロである必要がある) のみがより正確に記述されます。

ポトカー: ファイルには、計算中に各原子に使用される擬ポテンシャル情報が含まれています。

スクリプトを送信する: コマンド ラインから VASP 計算を実行するには、送信スクリプト (job.sh) を作成する必要があります。このスクリプトには、計算の呼び出し、VASP 実行可能ファイルの実行などに必要なリソースと環境が含まれています。ジョブをスクリプト内の指定された場所にコピーします。

#
# 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. 計算を開始する

VASP バージョン 6.3.0 を使用して、O 原子のサンプル出力 (stdout) を取得します。初期電荷は、孤立した重なり合う原子の電荷に対応します (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 の 1 行)
  • 時間とエネルギーの情報
  • 固有値に関する情報
   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 ファイルが読み取られ、前の Wave 関数から実行が継続されます (高速収束)。

6. 以前の計算をクリーンアップする

コマンドの実行 bash cleanup.sh、前の波動関数をクリアし、計算を完全に再開します。

3. まとめ

このチュートリアルでは、孤立した酸素原子の DFT 計算に焦点を当てます。単一の酸素原子の DFT 計算を設定して、孤立した原子のエネルギーを計算する方法を学びました。このプロセスには、ハミルトニアンの定義、ハミルトニアンの固有関数と固有値の計算、およびシステムが収束するまでの電子電荷密度の更新が含まれます。入力ファイルの準備には POSCAR、INCAR、KPOINTS、POTCAR が含まれ、各ファイルには固有の形式と役割があります。計算が完了したら、stdout ファイルと OUTCAR ファイルを分析することで、計算プロセスと結果を理解できます。