QE cp.xのMD計算結果をDeePMD-kitで使用する方法

QE cp.xのMD計算結果をDeePMD-kitで使用する方法

計算化学

Quantum ESPRESSOのcp.xのMD計算結果をDeePMD-kitの学習データとして使用する方法のメモです。

スポンサーリンク

cp.xの計算時に必要なこと

各原子に働く力を出力する必要がありますので、forceを出力するためにtprnforをtrueにする必要があります。
ファイル名について、入力ファイル名と出力ファイル名が一致している必要があります。出力ファイル名はデフォルトではcp.poscp.velなどになり、これに合わせるなら入力ファイルはcp.inにする必要があります。(これを変えたい場合はprefixを指定し、入力ファイルも同名にします)

&CONTROL
tprnfor=.true.

また対応しているibrav0, 1, 2, 3, -3で、それ以外を指定して計算をした場合はデータ変換ができません。

以上に気を付けてcp.xの計算を行います。

スポンサーリンク

結果データの変換

DeePMD-kitのチュートリアル通りの方法で学習データと検証データを作成してみます。

チュートリアルのコードでは200枚のスナップショットを学習データと検証データに分けています。QEのcp.xのデータを読む際に変更するのは赤字の部分です。

import dpdata
import numpy as np

data = dpdata.LabeledSystem('cp', fmt = 'qe/cp/traj')
index_validation = np.random.choice(200,size=40,replace=False)
index_training = list(set(range(200))-set(index_validation))
data_training = data.sub_system(index_training)
data_validation = data.sub_system(index_validation)
data_training.to_deepmd_npy('training_data')
data_validation.to_deepmd_npy('validation_data')
print('# the training data contains %d frames' % len(data_training))
print('# the validation data contains %d frames' % len(data_validation))

‘cp’がファイル名、fmt=の部分がQEのcp.xのフォーマット指定です。こうすることで以下のファイルを読み込みます。

  • cp.in
  • cp.pos
  • cp.cel
  • cp.for

作成されるファイルはtraining_datavalidation_dataのそれぞれで、

  • type.raw
  • type_map.raw
  • set.000
    • box.npy
    • coord.npy
    • energy.npy
    • force.npy

以上のデータを使用してDeePMD-kitのdeep learningを実行できます。
学習データ作成、dp trainの実行については以下で解説しています。

コメント

  1. harrods より:

    大変参考になりました。
    ありがとうございます。

タイトルとURLをコピーしました