VASPとPhonopyを組み合わせてシリコンの比熱容量を計算する
VASPはVienna Ab initio Simulation Packageの略です(VASPマニュアル – VASP Wiki) は、電子構造計算や量子力学的分子動力学など、第一原理から原子スケールの材料モデリングを行うコンピュータ プログラムです。
フォノピーPhonopy へようこそ — Phonopy v.2.37.1) は、調和レベルおよび準調和レベルでのフォノンバンド構造、熱特性、群速度、およびその他のフォノン関連の量を計算するための Python ツールキットです。
単純な調和近似のもとでは、フォノンが共有する比熱容量は具体的な導出Phonopyの公式サイトで確認できます。
チュートリアルコンテンツ
このチュートリアルでは、自動化されたスクリプトを使用して、Phonopy を使用した計算プロセスを説明します。このチュートリアルでは、比熱容量計算の基本的なプロセスを学習します。
- 摂動差スーパーセル構造を準備する
- すべての構造物の総エネルギーを計算する
- 力定数行列を計算する
- 力定数行列からのシリコンの比熱容量の計算
入力ファイル
入力ファイルには
├── POSCAR-unitcell
├── clean.sh
├── run.sh
└── run_vasp.sh
├── pt
│ ├── INCAR
│ ├── KPOINTS
│ └── POTCAR
POSCARユニットセル
Si #硅结构
5.38930000000000
0.0000000000000000 0.5071343999939496 0.5071343999939496
0.5071343999939496 0.0000000000000000 0.5071343999939496
0.5071343999939496 0.5071343999939496 0.0000000000000000
2
Direct
0.8750000000000000 0.8750000000000000 0.8750000000000000
0.1250000000000000 0.1250000000000000 0.1250000000000000
クリーン.sh
#!/bin/bash
rm -r *.yaml thermal_properties.pdf
band.yaml FORCE_SETS vasp poscar *out SPOSCAR
# 删除不必要文件
実行.sh
#!/bin/bash
rm -r vasp poscar
#准备微扰差分超胞结构
##########################
phonopy -d --dim 2 2 2 --pa auto -c POSCAR-unitcell
mkdir poscar
mv POSCAR-unitcell pp
mv POSCAR-* poscar/
##########################
#计算所有结构的总能
##########################
mkdir vasp
cd vasp
Pnum=$(ls -l ../poscar/ -IR | grep "^-" | wc | awk -F ' ' '{print $1}')
cp ../run_vasp.sh .
t_head="for i in {1.."
t_tail="}"
sed -i "3c ${t_head}${Pnum}${t_tail}" run_vasp.sh #生成 vasp 计算脚本
./run_vasp.sh
##########################
cd ../
mv pp POSCAR-unitcell
#计算力常数矩阵
##########################
phonopy -f vasp/*/vasprun.xml > pfcout
##########################
#根据力常数矩阵计算比热容
##########################
phonopy-load --mesh 31 31 31 -t -p -s
##########################
_vasp.shを実行します
#!/bin/bash
#计算 vasp 流程自动脚本
for i in {1..8}
do
rm -r $i
mkdir $i
cd $i
ii=$(printf "%03d" $i)
cp ../../poscar/POSCAR-${ii} POSCAR
cp ../../pt/* .
mpirun -n 1 vasp_std
cd ../
done
フォルダ pt 内のファイル
INCAR標準静的計算
ISTART = 1 (若有波函数、读取波函数)
ISPIN = 1 (非极化计算)
Static Calculation
ISMEAR = 0 (高斯占据)
SIGMA = 0.05 (高斯展宽)
NELM = 60 (最大电子步)
EDIFF = 1E-08 (SCF 收敛精度)
Kポイント
K-Spacing Value to Generate K-Mesh: 0.040
0
Gamma
4 4 4
0.0 0.0 0.0
ポトカー
システム内の対応する元素の擬ポテンシャルの組み合わせ。ここではSiの擬ポテンシャルである。
はじめる
1. コンテナのクローンを作成する
チュートリアルの作業ディレクトリを見つけてコンテナをクローンします
2. コンテナをセットアップする
4090を選択 - Pay as you go - vasp 6.3.0-cuda11.8 - ワークスペース

ロード後、ワークスペースを開きます

ターミナルを開く

パッケージを解凍する
unzip Cv_dft.zip
ディレクトリに入る
cd Cv_dft
準備したシリコン擬ポテンシャルをアップロードする
ここで使える公式サイトの例擬ポテンシャルPOTCARをディレクトリに置く

3. phonopy環境をインストールする
phonopy環境をインストールするには、次のコマンドを入力します。
conda install -c conda-forge phonopy
次にyと入力してEnterキーを押し、インストールに同意します。

4. スクリプトを実行する
次のように入力してスクリプトを実行します。
chmod 777 *.sh
./run.sh
5. 「比熱v温度」グラフを見る
最終的な計算結果はPDFで出力されます

ファイル「thermal_properties.pdf」を表示する

ターミナルでは、比熱容量が最終的に 48.8006881 J/K/mol になることが分かります。
ここで、単位を一般的な単位である J/K/kg に変換する必要があります。この単位格子には 2 つの原子があり、単位格子のモル質量は 0.056 kg/mol です。簡単な変換をしてみましょう。
48.8006881/0.056 J/K/kg = 871.4408589285714 J/K/kg
最終結果は論文と一致していることがわかります。格子力学に基づくシリコン単結晶の熱的性質(I) - 格子力学と比熱は888.03 J/K/kgという結果と一致しています。