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


PDielecの使用法メモ

 PDielecはDFT計算結果等から赤外吸収スペクトル等を計算するpythonプログラムのパッケージです。単体で赤外吸収を計算出来る訳ではありません。微小な試料が媒質に埋まっている時の赤外吸収の周波数変化や強度変化を計算することができるのが特徴です。私は実験ではラマンを主に使っていて赤外はやってないのですが、ある事情で使い始めています。私の使っているQuantum EspressoのPHonon(ph.x)コード出力にも対応しているのがいいところです。しかし実際使ってみると、マニュアルには書かれていない、いくつか注意すべきことがあるようですので、それらをメモにしておきます。PDielecについての論文がここに出ています。なお、このプログラムについては3年前にサマープログラムで研究室に滞在していたChris Gregsonさんに教えてもらいました。
 パッケージは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出力(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の使用方法を理解してないのですが。
  なお、M3 MacBookAirだと、pdguiのウィンドウ下部が画面からはみ出していて、リサイズ出来ないので、特にSettingタブの時に困ることが生じました…外部モニターを繋げばいいのかもしれません。