HyperAI超神経

VASP を用いた機械学習の力場トレーニング

ウィーン第一原理シミュレーションパッケージ(VASPマニュアル – VASP Wiki) は、電子構造計算や量子力学的分子動力学など、第一原理から原子スケールの材料モデリングを行うコンピュータ プログラムです。

第一原理分子動力学(MD)と組み合わせて使用される機械学習力場カテゴリ:機械学習による力場 – VASP Wiki)、基礎となる物理メカニズムを第一原理から捉えることができ、比較的低い計算コストで長時間のシミュレーションが可能になります。通常、密度汎関数理論 (DFT) フレームワークなどで、電子の量子力学的処理が必要となるため、単一の ab initio 分子動力学ステップの計算コストは非常に高くなります。完全に古典的な分子動力学計算では、各原子に作用する力を計算するために、DFT の代わりに力場が使用されます。これらの原子間ポテンシャルは、伝統的に実験観察に基づいており、経験的手法を通じて既知の力(ファンデルワールス力、静電電荷相互作用など)が組み込まれています。したがって、力場の品質は、特定のシステムにおける相互作用がどれだけよく理解されているかによって決まります。 VASP は、上記の 2 つの問題を解決するために、リアルタイムの機械学習力場を提供します。

チュートリアルコンテンツ

このチュートリアルでは、シリコン結晶を例に、NpT アンサンブル分子動力学を通じて Vasp 機械学習力場をトレーニングする方法を説明します。このチュートリアルでは、機械学習の力場トレーニングの基本的なプロセスを学習します。

  1. 分子動力学入力ファイルの準備
  2. 実際の状況に応じて分子動力学と機械学習のパラメータを変更する
  3. トレーニングを始める
  4. フォノンスペクトルの計算による機械学習力場の簡単な検証

入力ファイル

入力ファイルには

├── dft_phonon (DFT 参考声子谱文件)
│  
├── ml_phonon (机器学习力场计算声子谱)
|   ├── run.sh (计算脚本)
|   :     :     (其他文件省略)
|   :     :
|
├── mltrain_train (机器学习力场训练输入文件)
│   ├── INCAR (vasp 设置文件)
│   ├── KPOINTS (K 点文件)
│   ├── POSCAR (硅结构文件)
│   
|
└── t.py 声子谱绘制文件

ここでは、機械学習力場をトレーニングするための入力ファイルについてのみ説明します。

インカール

SYSTEM = Si16
ISYM   = 0        ! 不考虑对称性

! ab initio
PREC   = Normal !正常精度
IVDW   = 11     !范德华修正

ISMEAR = 0     ! 费米占据
SIGMA  = 0.02  ! 费米展宽

ENCUT  = 300   !波函数截断
EDIFF  = 1e-5  !计算精度

LWAVE  = F    !不保留波函数
LCHARG = F    !不保留电荷文件
LREAL  = F    !不做实空间投影计算

! MD
IBRION = 0        ! 进行分子动力学计算
NSW    = 500    ! 分子动力学步数
POTIM  = 5.0      ! 分子动力学时间间隔 5fs

#NpT 系综分子动力学设置
MDALGO = 3                ! 郎之万温控方法
LANGEVIN_GAMMA   = 5      ! 原子扰动系数
LANGEVIN_GAMMA_L = 10     ! 晶格扰动系数
PMASS  = 10               ! 晶格质量
TEBEG  = 400              ! 初始温度为 400
ISIF   = 3        ! 

! machine learning
ML_LMLFF  = T
ML_ISTART = 0  !进行机器学习力场训练
ML_WTSIF  = 2

#随机数种子
RANDOM_SEED =         688344966                0                0

ポスカー

16 原子スーパーセル

Si16
1.0
-5.468728 -5.468728 0.000000
-5.468728 0.000000 -5.468728
-0.000000 -5.468728 -5.468728
Si
16
direct
0.125000 0.125000 0.125000 Si
0.125000 0.125000 0.625000 Si
0.125000 0.625000 0.125000 Si
0.125000 0.625000 0.625000 Si
0.625000 0.125000 0.125000 Si
0.625000 0.125000 0.625000 Si
0.625000 0.625000 0.125000 Si
0.625000 0.625000 0.625000 Si
0.250000 0.250000 0.250000 Si
0.250000 0.250000 0.750000 Si
0.250000 0.750000 0.250000 Si
0.250000 0.750000 0.750000 Si
0.750000 0.250000 0.250000 Si
0.750000 0.250000 0.750000 Si
0.750000 0.750000 0.250000 Si
0.750000 0.750000 0.750000 Si

Kポイント

Not only Gamma point
 0
Gamma
 2 2 2
 0 0 0

ポトカー

システム内の対応する元素の擬ポテンシャルの組み合わせ。ここではSiの擬ポテンシャルである。

はじめる

1. コンテナのクローンを作成する

チュートリアルの作業ディレクトリを見つけてコンテナをクローンします

2. コンテナをセットアップする

4090を選択 - Pay as you go - vasp 6.3.0-cuda11.8 - ワークスペース

1

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

2

ターミナルを開く

3

ディレクトリに入る

cd mltrain_train

準備したシリコン擬ポテンシャルをアップロードします。公式サイトの例擬ポテンシャルPOTCARをディレクトリに置く

4

3. phonopy環境をインストールする

conda install -c conda-forge phonopy

次にyと入力してEnterキーを押し、インストールに同意します。

4. 機械学習力場のトレーニング

Vaspを直接実行する

mpirun -n 1 vasp_std


実行が完了すると、トレーニング済みの機械学習力場ファイル ML_FFN が左側に表示されます。

5

5. フォノンスペクトル計算による力場の可用性の簡単な検証

力場ファイルとPOTCARをフォノンスペクトル計算フォルダにコピーします。

cp ML_FFN  ../ml_phonon/ml/ML_FF
cp POTCAR ../ml_phonon/ml/
cd ../ml_phonon/

phonopy環境を起動し、計算用のスクリプトrun.shを実行します。

chmod 777 *.sh
./run.sh

前のレベルに戻り、Pythonスクリプトt.pyを実行してフォノンスペクトルの比較チャートを描画します。

python t.py
8

分子動力学のステップはわずか 500 であるため、2 つの最終的なフォノン スペクトルはまったく異なることがわかります。したがって、より良い結果を得たい場合は、INCAR の分子動力学のステップ数を増やし、トレーニング中の計算精度を向上させることができます。