物質の構造はその電子状態に大きな影響を与えます。誤った構造を与えると当然誤った結果が得られますので、作成した入力ファイルが自分の計算したい構造であるか、計算の前に確認するのはとても重要です。また構造最適化を行って得られた構造は正しく最適化されているか、また最適化して得られた構造を解析して実験あるいは高精度計算と比べてどの程度の誤差で計算されているか評価するのはとても重要です。
ここではQuantum-ESPRESSOの入出力ファイルに記述されている原子構造を可視化するための幾つかの方法を紹介します。
入力ファイルの可視化
pwi2xsf.shの利用
まずESPRESSOのroot directory以下にある
PW/tools
をコマンドサーチパスに追加します。bashを使用している場合は例えば~/.bashrc
に
PATH=${PATH}:${HOME}/QE/src/qe-6.6/PW/tools
を書き加え
source ~/.bashrc
を実行すれば良いでしょう。
which pwi2xsf.sh
which pwi2xsf.x
を実行してコマンドが表示されれば問題無く実行できる筈です。
計算を行うディレクトリにおいて
pwi2xsf.sh scf.in
を実行します。ここでscf.in
は使用する入力ファイル名にあわせて適宜変更して下さい。
入力ファイルの構造の記述に問題が無ければXSF形式の構造がスクリーンに出力され、さらにpwi2xsf.xsf_out
というXSF形式のファイルが生成されますので適宜名前と拡張子を変えてVESTAやVMDなどを利用して可視化して構造の確認を行います。
Quantum-ESPRESSOディストリービューションに含まれるpwi2xsf.f90は比較的古いため、新しい入力ファイルの記法に対応していない場合がありますので注意が必要です。例えばibrav=0
の場合、Quantum-ESPRESSOではcelldm(1)
を指定するとエラーが出力され止まりますが、pwi2xsf.sh
を実行するためにはcelldm(1)=1.d0
など出力結果に影響を与えない数値を与えておく必要があります。
最新のXCrySDenに含まれるpwi2xsf.shとpwi2xsf.f90を使うという選択しもありますが、VESTA
を使用する場合
DIM-GROUP
3 1
と空白に対応していませんので、xsfファイルを編集してから利用する必要があります(どちらにしても一手間かかってしまうようです)。pwi2xsf.f90を修正して使うのが良いですね。
XCrySDenの利用
XCrySDen
XCrySDenはQuantum-ESPRESSOの入力ファイルを直接読み込んで可視化することが可能です。
xcrysden
と実行し、Quantum-ESPRESSOの入力ファイルを指定して開いても良いですし、以下を実行しても良いでしょう。
xcrysden --pwi [QE input file]
ここでQE input file
はQuantum-ESPRESSOの入力ファイル名です。
Quantum ESPRESSO input generator and structure visualizerの利用
Quantum ESPRESSO input generator and structure visualizer
上記ページで入力ファイルをアップロードすることで構造の可視化が可能です。
cifファイル等 (*.cif, *.xyz, *.xsf, *.pdb, POSCAR) をアップロードして入力ファイルの作成を行うことも可能です。
ASEの利用
Atomic Simulation Environmentを利用すると構造を簡単に可視化できます。
ase-gui
ASEをインストールした環境で以下を実行するだけで構造を直接可視化できます。
ase-gui [QE input file]
構造の出力と可視化
例えば以下のスクリプトを実行することで入力ファイルに記述された構造をXYZなどのファイルに出力可能です。入力ファイルがh2.scf.in
だとすると
import ase
from ase.io import read, write
h2=ase.io.read("h2.scf.in")
write('h2.xyz',h2)
を実行するとh2.xyz
が出力されます。これを別のVESTAなどのソフトで可視化すると良いでしょう。ASEからVESTAなどを立ち上げても良いでしょう(ファイルフォーマットはASEのサイトを参考のこと)。
出力ファイルも同様にして可視化が可能です。
出力ファイルの可視化
pwo2xsf.shの利用
pwo2xsf.sh
はpw.x
の出力ファイルを読み込みXSF形式のファイルを生成します。
先ずはpwo2xsf.sh
へのコマンドサーチパスが通っているか確認します。
which pwo2xsf.sh
初期構造をXSFファイルに書き出すためには
pwo2xsf.sh -ic relax.out
を実行します。ここでrelax.out
には出力ファイルを指定します。このままでは構造はスクリーンに出力されますので
pwo2xsf.sh -ic relax.out > ic.xsf
などとレダイレクションします。
最新の構造を書き出すためには
pwo2xsf.sh -lc > lc.xsf
とすれば良いでしょう。他のオプションは
pwo2xsf.sh
と引数無しでコマンドを実行し確認することができます。
注意
Quantum-ESPRESSOディストリビューションに含まれるpwo2xsf.shのバージョンは古いため、出力ファイルにwarningが書き出された際にうまく対応できないことがあります。その場合はXCrySdenの最新版(1.6.2)のscripts/
以下に含まれるpwo2xsf.shを使用すると良いでしょう。
XCrySDenの利用
XCrySDenはQuantum-ESPRESSOの出力ファイルを直接読み込んで可視化することも可能です。入力ファイルと同様に
xcrysden
を実行してQuantum-ESPRESSOの出力ファイルを開くか、直接
xcrysden --pwo [QE output file]
を実行することで構造最適化の過程をムービーにしたり、最適化後の構造を表示することが可能です。
Materials Cloudの利用
Materials CloudのWork>ToolsにリンクされているQuantum ESPRESSO input generator and structure visualizerにQuantum ESPRESSOの入力ファイルをアップロードすると新しくPWscf計算の入力ファイルを作成されるだけでなく、ウェブ上で構造を見ることができます。
XMLファイルの利用
outdir
にXMLファイルが出力されます。AiiDAのパーサーを利用して可視化することも可能でしょう。ただし自分にはほぼ経験がありませんので、情報があれば更新します。