Quantum ESPRESSO入力ファイル作成手順　１．結晶構造の作成

クロスアビリティ Winmostarサポートチームです。
WinmostarはQuautum ESPRESSOを簡単かつ高度に利用するための統合GUI環境となっています。学生は無料で利用でき、学生以外も無料トライアルを入手することができますので、是非 [WinmostarのWebサイト](https://winmostar.com/jp/) をご覧ください。

#0. はじめに
第一原理計算ソフトQuantunm ESPRESSO <https://www.quantum-espresso.org> の入力ファイルの書き方について、複数回にわたって解説していきます。今回はその初回として、結晶構造の設定方法を紹介します。

> この記事では、初歩的な内容しか紹介しません。
> 入力ファイルの詳細について知りたい方は、マニュアル http://www.quantum-espresso.org/Doc/INPUT_PW.html をご参照下さい。


#1. Bravais格子
結晶構造の設定に当たり、先ずは、Bravais格子を選択します。具体的には、以下のように入力ファイルのibravという変数に整数値を設定します。

```
&SYSTEM
    ibrav = *
/
```
設定可能な整数値は、0,1,2,3,-3,4,5,-5,6,7,8,9,-9,10,11,12,-12,13,14です。各々の値にBravais格子のタイプが割り当てられているのですが、マニュアル http://www.quantum-espresso.org/Doc/INPUT_PW.html#idm199 を見てみると少し煩雑で使いこなすのは大変そうですね。。。初心のユーザーは、とりあえず 0,1,2,3,4 のみ覚えていれば大丈夫です(５つも覚えるのは無理という方は、ibrav = 0が使えれば何とかなります)。以下は、各ibravの値の詳細です。

####ibrav = 0 (格子ベクトルの直接設定)
Bravais格子のタイプは明示的に指定せずに、格子ベクトルを入力ファイルに直接記入します。CELL_PARAMETERSというキーワードの後ろに、このように設定します。

```
CELL_PARAMETERS {angstrom}
  3.092010   0.000000   0.000000
 -1.546005   2.677759   0.000000
  0.000000   0.000000   5.073350
```
{　}内は長さの単位です。angstrom (Å)を使うのが一番わかり易い思います。

####ibrav = 1 (単純立方格子)
単純立方格子、simple cubicを使用します。要するに立方体ですね。格子定数は、入力ファイルの a という変数で指定します。単位はÅです。

```
&SYSTEM
    ibrav = 1
    a     = 3.0
/
```
格子定数の設定には celldm(1:6)という配列変数も使えるのですが、どの配列要素にどの値が格納されるのかわかり難かったり、単位がbohrだったりします。初心者には難解な仕様なので、celldmはお勧めしません。
> 他のBravais格子の場合も同様に、celldmではなくaを使うことをお勧めします。

####ibrav = 2 (面心立方格子)
面心立方格子、FCCを使用します。Quantum ESPRESSOを含めて第一原理計算で使用する面心立方格子は、primitive cellです。conventional cellではないので、注意してください。conventional cellは一辺の長さがaの立方体で、4つの原子を含んでいます。いわゆる、教科書に載っている面心立方格子ですね。これを縮約して、原子一つを含むように変換したものがprimitive cellです。primitive cellの格子ベクトルは

```math
  v_1 = (-a/2,   0, a/2)
  v_2 = (   0, a/2, a/2)
  v_3 = (-a/2, a/2,   0)
```
と定義されます。a はconventional cellにおける格子定数であることに注意してください。a はÅ単位で、

```
&SYSTEM
    ibrav = 2
    a     = 3.0
/
```
と設定します。

####ibrav = 3 (体心立方格子)
体心立方格子、BCCを使用します。面心立方格子の場合と同様に、primitive cellです。conventional cellは一辺の長さがaの立方体で、２つの原子を含んでいます。primitive cellは原子一つのみを含み、格子ベクトルは

```math
  v_1 = ( a/2,  a/2,  a/2)
  v_2 = (-a/2,  a/2,  a/2)
  v_3 = (-a/2, -a/2,  a/2)
```
と定義されます。実は、体心立方格子のprimitive cellの定義には複数のバリエーションがあるのですが、Quantum ESPRESSOでは上記のものを採用しています。++他のソフトからのデータ変化時などには、格子ベクトルの定義に要注意です。++ a はconventional cellにおける格子定数で、入力ファイルにて

```
&SYSTEM
    ibrav = 3
    a     = 3.0
/
```
と設定します。

####ibrav = 4 (六方最密格子)
六方最密格子、HCPを使用します。格子ベクトルは

```math
  v_1 = (a, 0, 0)
  v_2 = (-a/2, a * sqrt(3)/2, 0)
  v_3 = (0, 0, c)
```
と定義されます。ibrav = 1,2,3 の場合と異なり、六方最密格子では二つの格子定数a,cを設定します。

```
&SYSTEM
    ibrav = 4
    a     = 3.0
    c     = 6.0
/
```
a,c ともにÅ単位です。


#2. 原子数
Bravais格子の設定が完了したら、格子内に配置する原子数を指定します。原子数宇は nat に設定します。また、原子種(元素)数は ntyp に設定します。

```
&SYSTEM
    ibrav = 4
    a     =  3.092
    c     =  5.073
    nat   = 4
    ntyp  = 2
/
```


#3. 原子種(元素)
ntypで指定した数の原子種(元素)のデータを設定します。ATOMIC_SPECIESというキーワードの後ろに、このように設定します。

```
ATOMIC_SPECIES
Si  28.08550  Si.pbe-rrkj.UPF
C   12.01070  C.pbe-rrkjus.UPF
```
１列目が元素名です。２列目が質量(g/mol単位)です。３列目が擬ポテンシャルファイル名です(擬ポテンシャルの詳細については次回以降で解説したいと思います。)。
２列目の元素の質量ですが、要するに原子量ですよね。周期表に載っている値です。この値をユーザーが毎度毎度、周期表を見つつ手入力するのって面倒ですよね。そこで、Quantum ESPRESSOでは質量に -1 を設定すると、標準的な原子量が自動設定される機能が実装されています。

```
ATOMIC_SPECIES
Si  -1.0  Si.pbe-rrkj.UPF
C   -1.0  C.pbe-rrkjus.UPF
```
同位体を使う場合を除いては、-1 を設定するのが便利です。


#4. 原子位置
最後に、natで指定した数分の原子位置を設定します。ATOMIC_POSITIONSというキーワードの後ろに、このように設定します。

```
ATOMIC_POSITIONS {angstrom}
Si     -0.000002   1.785172   2.534588
Si      1.546005   0.892585   5.071262
C      -0.000002   1.785172   4.441264
C       1.546005   0.892585   1.904590
```
{　}内は原子位置の指定方法で、

- angstrom
- bohr
- crystal
- alat

の４種類が利用可能です。

####angstrom / bohr
angstrom および bohr は それぞれ、Åおよび原子単位にてカルテシアン座標で原子位置を指定します。

####crystal
crystalは、格子ベクトルを基底とした内部座標にて原子位置を指定します。内部座標なので、指定する原子位置は０～１の無次元量です。

####alat
alatは、格子定数 *a* を単位としてカルテシアン座標で原子位置を指定します。他の格子定数(b, c)は使用されないので、ご注意ください。つまり、x, y, z の全方向について、a でスケーリングされた座標を使うわけです。「angstrom, bohrがあるのに、なぜこのような変な座標系が必要なのか？」「内部座標を使いたいならcrystalで良いのでは？」と疑問に思われる方もいるかもしれません。alatが力を発揮するのは、ibrav = 2, 3, 4 の時です。つまり、面心立方格子、体心立方格子、六方最密格子の時です。このとき、格子ベクトルはprimitive cellに対応していますが、格子定数 a はconventional cellに対応しています。したがって、alatを使うと、原子位置は++conventional cellにおける内部座標++として指定することができるわけです。crystalの場合は、primitive cellにおける内部座標です。面心立方格子や体心立方格子のprimitive cellって想像しづらいですよね。なので、3次元構造がイメージし易いconventional cellの内部座標による設定が便利なのです。


---------------------------------------
次回は、SCF計算のための入力設定、もしくは、擬ポテンシャルについて解説したいと思います。
なお、Winmostarを利用するとQuautum ESPRESSOをGUI上から簡単かつ高度に活用することができます。学生は無料で利用でき、学生以外も無料トライアルを入手することができますので、是非 [WinmostarのWebサイト](https://winmostar.com/jp/) をご覧ください。

Quantum ESPRESSO入力ファイル作成手順シリーズ
[１．結晶構造の作成](https://qiita.com/xa_member/items/727c1a62930611babaf7) 
[２．SCF計算の設定](https://qiita.com/xa_member/items/a098e94d633a1d29f1c0) 
[３．擬ポテンシャルファイルの選択方法](https://qiita.com/xa_member/items/006d9dd44c662a17903d) 
[４．原子座標のみの最適化](https://qiita.com/xa_member/items/dc860b1656f7dfe93c8a)
[５．格子ベクトル及び格子内部の原子座標の最適化](https://qiita.com/xa_member/items/4c667817e50facd8a770)
[６．状態密度の計算](https://qiita.com/xa_member/items/7aa75304b2ce7f90c8d4)
[７．局所状態密度の計算](https://qiita.com/xa_member/items/95c7bd64981f7329b94b)
[８．バンド構造の計算](https://qiita.com/xa_member/items/a519c53b63df75a68894)
[９．バンド数の設定](https://qiita.com/xa_member/items/d923ea537328cdba8b10)
[１０．van der Waals相互作用](https://qiita.com/xa_member/items/bd64362329c7235bf248)
[１１．LDA+U法](https://qiita.com/xa_member/items/ab3e1333e92bc424f5a7)
[１２．NEB法](https://qiita.com/xa_member/items/e3b63a1fdca12f95e8cb)
[１３．Phonon計算（特定q点）](https://qiita.com/xa_member/items/77e464c01c5db1e847ea)
[１４．Phonon計算（バンド構造）](https://qiita.com/xa_member/items/5c02fcae08431588659d)
[１５．擬ポテンシャルの作成](https://qiita.com/xa_member/items/5feb8f432170141c89cd)
[１６．擬ポテンシャルのテスト](https://qiita.com/xa_member/items/3902c1660fb7064a4c34)
[１７．SCF計算の入力ファイルの実例](https://qiita.com/xa_member/items/febde40c8a17b7b83cc5)