Quantum ESPRESSO入出力結果（原子構造）の可視化方法

物質の構造はその電子状態に大きな影響を与えます。誤った構造を与えると当然誤った結果が得られますので、作成した入力ファイルが自分の計算したい構造であるか、計算の前に確認するのはとても重要です。また構造最適化を行って得られた構造は正しく最適化されているか、また最適化して得られた構造を解析して実験あるいは高精度計算と比べてどの程度の誤差で計算されているか評価するのはとても重要です。
ここではQuantum-ESPRESSOの入出力ファイルに記述されている原子構造を可視化するための幾つかの方法を紹介します。

# 入力ファイルの可視化

## pwi2xsf.shの利用
まずESPRESSOのroot directory以下にある

```Bash
PW/tools
```
をコマンドサーチパスに追加します。bashを使用している場合は例えば``~/.bashrc``に

```Bash
PATH=${PATH}:${HOME}/QE/src/qe-6.6/PW/tools
```
を書き加え

```Bash
source ~/.bashrc
```
を実行すれば良いでしょう。

```
which pwi2xsf.sh
```

```
which pwi2xsf.x
```
を実行してコマンドが表示されれば問題無く実行できる筈です。

計算を行うディレクトリにおいて

```Bash
pwi2xsf.sh scf.in
```
を実行します。ここで``scf.in``は使用する入力ファイル名にあわせて適宜変更して下さい。
入力ファイルの構造の記述に問題が無ければXSF形式の構造がスクリーンに出力され、さらに``pwi2xsf.xsf_out``というXSF形式のファイルが生成されますので適宜名前と拡張子を変えて[VESTA](https://jp-minerals.org/vesta/jp/)や[VMD](https://www.ks.uiuc.edu/Research/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](http://www.xcrysden.org/)
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](https://www.materialscloud.org/work/tools/qeinputgenerator)
上記ページで入力ファイルをアップロードすることで構造の可視化が可能です。
cifファイル等 (*.cif, *.xyz, *.xsf, *.pdb, POSCAR) をアップロードして入力ファイルの作成を行うことも可能です。

## ASEの利用
[Atomic Simulation Environment](https://wiki.fysik.dtu.dk/ase/)を利用すると構造を簡単に可視化できます。

### 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
```
と引数無しでコマンドを実行し確認することができます。

:bangbang: 注意 :bangbang: 
Quantum-ESPRESSOディストリビューションに含まれるpwo2xsf.shのバージョンは古いため、出力ファイルにwarningが書き出された際にうまく対応できないことがあります。その場合は[XCrySden](http://www.xcrysden.org/)の最新版（1.6.2）の``scripts/``以下に含まれるpwo2xsf.shを使用すると良いでしょう。

## XCrySDenの利用
XCrySDenはQuantum-ESPRESSOの出力ファイルを直接読み込んで可視化することも可能です。入力ファイルと同様に
```
xcrysden
```
を実行してQuantum-ESPRESSOの出力ファイルを開くか、直接
```
xcrysden --pwo [QE output file]
```
を実行することで構造最適化の過程をムービーにしたり、最適化後の構造を表示することが可能です。

### Materials Cloudの利用
[Materials Cloud](https://www.materialscloud.org/home)のWork>Toolsにリンクされている[Quantum ESPRESSO input generator and structure visualizer](https://www.materialscloud.org/work/tools/qeinputgenerator)にQuantum ESPRESSOの入力ファイルをアップロードすると新しくPWscf計算の入力ファイルを作成されるだけでなく、ウェブ上で構造を見ることができます。

## XMLファイルの利用
``outdir``にXMLファイルが出力されます。[AiiDA](https://aiida-quantumespresso.readthedocs.io/en/latest/index.html)のパーサーを利用して可視化することも可能でしょう。ただし自分にはほぼ経験がありませんので、情報があれば更新します。