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


PDielecの使用法メモ

 PDielecはDFT計算結果等から赤外吸収スペクトル等を計算するpythonプログラムのパッケージです。単体で赤外吸収を計算出来る訳ではなく、DFT計算等がまず必要です。PDielecは微小な試料が媒質に埋まっている時の赤外吸収の周波数変化や強度変化を計算することができます。私は実験ではラマンを主に使っていて赤外はやってないのですが、ある事情で使い始めています。私の普段使っているQuantum EspressoのPHonon(ph.x)コード出力にも対応しています。しかし実際使ってみると、マニュアルには書かれていない、いくつか注意すべきことがあるようですので、それらをメモにしておきます。PDielecについての論文がここに出ています。なお、PDielecについては3年前にサマープログラムで研究室に滞在していたChris Gregsonさんに教えてもらいました。
 パッケージはgithubにあります。https://github.com/JohnKendrick/PDielec
 pythonの環境が必要です。私の場合はM3 MacBookAirを使ってますが、以前Anacondaインストールして問題があったので、今回はminiconda3をインストールしました。condaが使えるとterminalからいくつかコマンド打ち込むことでインストールできます。ドキュメントのインストールでAnacondaのところを参照してください。pythonベースなので、WindowsやLinuxでも動きます。
 インストールが終わったら、ターミナルからpdguiとタイプすると、GUIのウィンドウが出てきます。そこから計算が実行できて、結果のスペクトルのプロット、振動モードの表示など全てできます。ただ、前記の論文では端末での使用例が示されていて、GUI版はその後で開発されたようです。
 上記の論文の時点ではVASP, CASTEP, GULPのみの対応でしたが、現在はそれら以外にAbinit, Crystal, Quantum Espressoの出力にも対応しています。このメモはQuantum Espressoが対象です。

Quantum Espresso出力(dynファイル)での使用法

 Quantum EspressoのPHononコードの出力ファイルの1つにダイナミカル・マトリックスや各振動モードの原子変位を記録したdynファイルがありますが、PDielecではこのファイルのみが必要となります。PDielecではこのファイルを拡張子がdynGを持っているとして認識しているので、dynファイルの拡張子をdynGに変えておく必要があります(またはPHononの入力ファイルでdynファイル名を.dynGとして指定しておきます)。pdguiのメインタブでQuantum Espressoを選んでおいて、dynGファイルをファイルダイアログで選択します(拡張子.dynG以外は選択できません)。
 既に計算してあったdynファイルをいくつか読ませたところ、読み取り時にエラーが出ました。そこで色々と試してみたのですが、Quantum Espressoの出力ファイルを使うためにはいくつかお約束があるらしいことが分かりました。
 PHonon計算する前に、普通PWscfで構造を最適化しますが、その入力ファイルで空間群(spacegroup =)を利用するとどうも良くないようです。ibravでセルを指定する必要があります(これは昔からのやり方)。実際この違いによるdynファイルの違いを見てみたのですが、ファイルの最初の方のBasic vectorsのところが空間群を使った場合はなくて、ibarvで指定した時には存在しました。どうもこれがないとエラーがでるようです。実際、空間群を使った出力にBasic vectorsのところ(それ以外にも少し変更必要)を追加したところ、エラーが出なくなりました。なので、再計算するのが面倒な場合(時間がすごくかかるなど)、Basic vectorsを追加することでエラーを回避することもありかもしれません。そのためにはPWscfの出力からBasic vectors部分を取り出す必要があります。また、3行目もちょっと変更が必要です。
 PHonon計算の方ですが、こちらは入力ファイルでepsil = .true.で計算する必要があります。epsilは誘電率を計算するフラグです。epsil = .false.でも読み込み時にはエラーは出ないようですが、誘電率テンソルや有効電荷のリストがdynGにないためにPDielecの計算ができないようです(強度等がゼロになる)。
 一応上記でdynGの読み込みは成功して、スペクトルの計算自体はできるようになりました。まだまだPDielecの使用方法を理解してないのですが、振動モードをアニメーションで見たり、それをgifかmp4で出力できました。
 なお、M3 MacBookAirだと、pdguiのウィンドウ下部が画面からはみ出していて、リサイズ出来ないので、特にSettingタブの時に困ることが生じました。古いIntel MacBookAirも同じでさらに悪いかも…外部モニターを繋いでみたら最下部まで見られました。ウィンドウ上下のリサイズはできないようになってます。