PDielecの使用法メモ の履歴(No.2)


PDielecの使用法メモ

 PDielecはDFT計算結果等から赤外吸収等を計算するpythonプログラムのパッケージです。微小な試料が媒質に埋まっている時の赤外吸収の周波数変化や強度変化を計算することができるのが特徴です。私の使っているQuantum EspressoのPHonon(ph.x)コード出力にも対応しているとのことで使ってみてますが、マニュアルには書かれていないいくつか注意すべきことがあるようですので、それらをメモしておきます。PDielecについての論文はここに出ています。
 パッケージはgithubにあります。https://github.com/JohnKendrick/PDielec
 pythonの環境が必要です。私の場合はM3 MacBookAirを使ってますが、miniconda3をインストールしました。condaが使えるとterminalからいくつかコマンド打ち込むことで使えるようになります。インストールのAnacondaのところを参照してください。
 インストールが終わったら、ターミナルからpdguiとタイプすると、GUIのウィンドウが出てきます。そこから計算は全てできます。
 以下、Quantum Espressoが対象ですが、他のDFT計算プログラム(VASP, CASTEP, Abinit, Crystal)やGULPの出力にも対応しています。

Quantum Espressoの出力での使用法

 Quantum EspressoのPHononコードの出力ファイルの1つにdynファイルがありますが、これがPDielecでは必要になります。PDielecではdynGを拡張子として認識しているので、dynファイルの拡張子をdynGに変えておく必要があります。pdguiのメインタブでQuantum Espressoを選んでおいて、dynGファイルを指定します。
 私の既に計算してあったdynファイルをいくつか読ませたところ、読み取り時にエラーが出ました。そこで色々と試してみたのですが、Quantum Espressoの出力ファイルを使うためにはいくつか計算時に特定の指定をしておかないといけないらしいことが分かりました。
 PHonon計算する前に、普通PWscfで構造を最適化しますが、その入力ファイルで空間群を使うとどうも良くないようです。ibravでセルを指定する必要があるようです(これは元々使われていたやり方)。実際この違いによるdynファイルの違いを見てみたのですが、ファイルの最初の方のBasic vectorsのところが空間群を使った場合はなくて、ibarvで指定した時には存在しました。どうもこれがないとエラーがでるようです。実際、空間群を使った出力にBasic vectorsのところ(それ以外にも少し変更必要)を追加したところ、エラーが出なくなりました。なので、再計算するのが面倒な場合(時間がすごくかかるなど)、Basic vectorsを追加することでエラーを回避することもありかもしれません。そのためにはPWscfの出力からBasic vectors部分を取り出す必要があります。また、3行目もちょっと変更が必要です。
 PHonon計算の方ですが、こちらは入力ファイルでepsil = .true.で計算する必要があるようです。epsilは誘電率を計算するフラグです。epsil = .false.でも読み込みでエラーは出ないようですが、強度などが全てゼロになっていました。
 なお、M3 MacBookAirだと、pdguiのウィンドウ下部が画面からはみ出していて、リサイズ出来ないので、特にSettingタブの時に困ることが生じました…外部モニター繋げばいいのかもしれません。