Quantum Espresso用の結晶の構造データの取得

https://qiita.com/hiro949/items/2ea86ef94df2f5d7ab41

の補足資料です。

第一原理計算をするには対象となる物質の構造のデータが必要となります。それを作るためのツールなどを紹介したいと思います。

結晶構造の情報は論文などを調べて入手します。必要な情報は
- 単位胞内の原子の位置
- 基本並進ベクトル

の2つです。対称性やWycoff位置から自力でこれらを求めてもよいのですが、自動的にやってくれるソフトがあるのでそれを紹介します。

# 結晶構造のデータベース

　まず構造データを調べるところからです。おすすめは以下のサイトです(ライセンスを得ていないと入れないので理系の大学などのネット回線でないと閲覧できないかもしれません。)：

https://materials.springer.com/

調べたい物質を検索して検索条件で`crystal structure`にチェックを入れれば、結晶構造についての情報が載った論文に絞って探すことができます。

また次のページでもライセンスなしで物質のcifファイルが入手できます。

http://aflowlib.org/search/

このページは周期表に構成元素を入力して検索するようになっています。

　次に良さそうな論文のページに行くと、大抵の場合cifファイルがダウンロードできます。
（たまにかなりマイナーな物質だとcifファイルを用意してないことや、そもそも結晶内の原子の位置が分かってないことがあります。）

このcifファイルはVESTAという結晶の描画ソフトのデータになっていて、VESTAにドラッグ＆ドロップすると結晶構造を3Dで図示してくれます。VESTAについては以下のページが参考になると思います。

https://ma.issp.u-tokyo.ac.jp/app-post/1176

# cif2cellで入力データに変換

これをCif2cellというpythonパッケージで処理すると、Quantum Esspressoの入力形式に合わせて先に述べた必要な2つの情報を出力してくれます。
Cif2cellの使い方はこちらの記事で紹介されていました：

https://qiita.com/Yasushi-Shinohara/items/07a540a9c5cb0bcbf175

cif2cellのzipファイルをダウンロードして解凍すると、中に`setup.py`というファイルが入ってるので

```
sudo python setup.py install
```

としてコンパイルすれば使えるようになります。(必要に応じてオプションもつけてください。)

## 注意点

ちなみにCif2cellはpython2でしか動かないので注意してください。python3には対応していません。

## 実行例

$\mathrm{Bi_2Se_3}$という物質で試してみます。

https://materials.springer.com/isp/crystallographic/docs/sd_0305047

の論文の構造で計算してみます。リンク先からダウンロードしたcifファイルは`Bi2Se3.cif`として保存しました。cifファイルの中身は長いのでこの記事の最後に張り付けておきます。


これをVESTAで図示すると次のようになります。紫がBi、黄緑がSeです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2445529/97bc0cb8-93cf-b85d-edb6-d695544f103b.png)

### 構造データの取得

これに対して

```
cif2cell -p pwscf -f Bi2Se3.cif -o Bi2Se3.in --transform-cell="[[1,0,0],[0,1,0].[0,0,1]]"
```

を実行して次のファイルを得ます。最後の`--transform-cell`はx,y,z軸の座標系の方向を回転させるオプションです。一応付けましたが今回、座標系は元のままなので今のコマンドではつけなくてもいいです。また、もしもpython3で動かそうとして、エラーが発生した場合は、python2をダウンロードしたうえで

```
python2 cif2cell -p pwscf -f Bi2Se3.cif -o Bi2Se3.in
```

などとして下さい。すると、次のファイルが出力されます。

```Bi2Se3.in
#************************************************************************************
#*                  Generated by cif2cell 1.2.10 2022-05-19 13:30                   *
#*  T. Bjorkman, Comp. Phys. Commun. 182, 1183-1186 (2011). Please cite generously. *
#*                                                                                  *
#*                                         ()                                       *
#*             Failed to get author information, No journal information             *
#************************************************************************************

&SYSTEM
  ibrav = 0
  A =    4.13400
  nat = 5
  ntyp = 2
/
CELL_PARAMETERS {alat}
  0.577350269189626   0.000000000000000   2.306079664570230 
 -0.288675134594813   0.500000000000000   2.306079664570230 
 -0.288675134594813  -0.500000000000000   2.306079664570230 
ATOMIC_SPECIES
  Bi  208.98000  Bi_PSEUDO
  Se   78.96000  Se_PSEUDO
ATOMIC_POSITIONS {crystal}
Bi   0.400460000000000   0.400460000000000   0.400460000000000 
Bi   0.599540000000000   0.599540000000000   0.599540000000000 
Se   0.209700000000000   0.209700000000000   0.209700000000000 
Se   0.790300000000000   0.790300000000000   0.790300000000000 
Se   0.000000000000000   0.000000000000000   0.000000000000000 
```

なお、Bi_PSEUDO、Se_PSEUDOの場所はそれぞれ使う擬ポテンシャルのファイル名に書き替えてから使います。

# 手動でやる場合

たまにダウンロードしたcifファイルがcif2cellで読み込めない場合があるのでそのとき用に自分でやる場合も紹介しておきます。VESTAを使います。

まずcifファイルをドラッグ&ドロップしてvestaで読み込みます。

Edit $\rightarrow$ Edit data $\rightarrow$ unit cell

を開きます。次にRemove symmetryをクリックすると対称性を無視したデータが得られます。そして

apply $\rightarrow$ OK

をクリックします。

これは体積$abc$($a,b,c$は直交座標の基底$a,b,c$の大きさです。)の直方体のユニットセルにおける内部座標のデータです。

次に

File $\rightarrow$ Export Data

をクリックし、新しいcifファイルとして保存します。

例えば$\mathrm{Bi2Se3}$のデータで試すと、得られたcifファイルの冒頭は

```Bi2Se3_noSymm.cif
#======================================================================
# CRYSTAL DATA
#----------------------------------------------------------------------
data_VESTA_phase_1

_chemical_name_common                  'sm_isp_SD0305047-standardized_unitcell'
_cell_length_a                         4.134000
_cell_length_b                         4.134000
_cell_length_c                         28.600000
_cell_angle_alpha                      90.000000
_cell_angle_beta                       90.000000
_cell_angle_gamma                      120.000000
_cell_volume                           423.289581
_space_group_name_H-M_alt              'P 1'
_space_group_IT_number                 1

loop_
_space_group_symop_operation_xyz
   'x, y, z'

loop_
   _atom_site_label
   _atom_site_occupancy
   _atom_site_fract_x
   _atom_site_fract_y
   _atom_site_fract_z
   _atom_site_adp_type
   _atom_site_U_iso_or_equiv
   _atom_site_type_symbol
   Se1        1.0     0.000000     0.000000     0.209700    Uiso  ? Se
   Se1        1.0     0.000000     0.000000     0.790300    Uiso  ? Se
   Se1        1.0     0.666667     0.333333     0.543033    Uiso  ? Se
   Se1        1.0     0.666667     0.333333     0.123633    Uiso  ? Se
   Se1        1.0     0.333333     0.666667     0.876367    Uiso  ? Se
   Se1        1.0     0.333333     0.666667     0.456967    Uiso  ? Se
   Bi1        1.0     0.000000     0.000000     0.400460    Uiso  ? Bi
   Bi1        1.0     0.000000     0.000000     0.599540    Uiso  ? Bi
   Bi1        1.0     0.666667     0.333333     0.733793    Uiso  ? Bi
   Bi1        1.0     0.666667     0.333333     0.932873    Uiso  ? Bi
   Bi1        1.0     0.333333     0.666667     0.067127    Uiso  ? Bi
   Bi1        1.0     0.333333     0.666667     0.266207    Uiso  ? Bi
   Se2        1.0     0.000000     0.000000     0.000000    Uiso  ? Se
   Se2        1.0     0.666667     0.333333     0.333333    Uiso  ? Se
   Se2        1.0     0.333333     0.666667     0.666667    Uiso  ? Se

#======================================================================
# CRYSTAL DATA
#----------------------------------------------------------------------
data_VESTA_phase_2

_chemical_name_common                  'sm_isp_SD0305047-published_cell'
_cell_length_a                         4.134(2)
_cell_length_b                         4.134(2)
_cell_length_c                         28.6(3)
_cell_angle_alpha                      90.000000
_cell_angle_beta                       90.000000
_cell_angle_gamma                      120.000000
_cell_volume                           423.289581
_space_group_name_H-M_alt              'R -3 m'
_space_group_IT_number                 166
:
:
:
```

となります。ここに書かれている原子の内部座標と基本並進ベクトル

```math
\vec{a} = (a,0,0) \\
\vec{b} = (0,b,0) \\
\vec{c} = (0,0,c)
```

を($a,b,c$は`_cell_length_***`のところ)入力に使えばよいです。

## プリミティブセルに変更

上記のやり方には問題点があって、cubic cellはセル内の原子数が多くなって計算が遅くなってしまうデメリットがあります。

よって含まれる原子数が最小となるprimitive cellに直した方がよいです。先ほどの

Edit $\rightarrow$ Edit data $\rightarrow$ unit cell

で`Remove symmetry`の後に同じところで`Transform...`というボタンをクリックします。すると基本並進ベクトルの基底の取り換えができるのでここで変更したのちに

apply $\rightarrow$ OK

とします。そして

Edit $\rightarrow$ Edit data $\rightarrow$ Structure parameters

の`Remove duplicate atoms`で位置が重なってしまった原子を削除すればprimitive cellのデータになります。

結晶の対称性からprimitive cellがどれになるかは

https://www.sciencedirect.com/science/article/abs/pii/S0927025610002697?via%3Dihub

に書いてあります。例えば$\mathrm{Bi2Se3}$だとこの論文のA.10: Hexagonalの対称性なので

```math
\left(\begin{array}
1 \frac{a}{2} & -\frac{\sqrt{3}a}{2} & 0 \\
\frac{a}{2} &  \frac{\sqrt{3}a}{2} & 0 \\
0 & 0 & c
\end{array}\right)
```

です。ちなみに先のcif2cellのデータは

```math
\left(\begin{array}1
-\frac{a'}{\sqrt{3}} &  0 & c' \\
-\frac{a'}{2\sqrt{3}} &  \frac{a'}{2} & c' \\
- \frac{a'}{2\sqrt{3}} & -\frac{a'}{2} & c'
\end{array}\right)
```

です。($a',c'$は長さをスケール変換しています。)

# 使用したcifファイル

```Bi2Se3.cif
##CIF_1.1

data_sm_global
#Used dictionaries
loop_
_audit_conform_dict_name
_audit_conform_dict_version
_audit_conform_dict_location
cif_core.dic 	2.4.2 	.
cif_pd.dic 		1.0.1 	.
cif_sm.dic 		0.1 	'redaktion.landolt-boernstein(at)springer.com'

#About this content and reference
_sm_credits_copyright
;PAULING FILE Multinaries Edition - 2012. SpringerMaterials Release 2014.
http://www.paulingfile.com
Unique LPF ID Number SD0305047
Project Coordinator: Shuichi Iwata
Section-Editors: Karin Cenzual (Crystal Structures), Hiroaki Okamoto (Phase 
Diagrams), Fritz Hulliger (Physical Properties)
(c) Springer & Material Phases Data System (MPDS), Switzerland & National 
Institute for Materials Science (NIMS), Japan 2014.
(Data generated pre-2002: (c) Springer & MPDS & NIMS; 
post-2001: (c) Springer & MPDS)
All Rights Reserved. Version 2014.06.
;

_audit_creation_method
;This data have been compiled from the crystallographic datasheet for 
"Bi2Se3 Crystal Structure" 
taken from SpringerMaterials (sm_isp_sd_0305047).
;

_publ_section_references
;Yarembash E.I., Vigileva E.S.: <i>Reaction between arsenic selenide and bismuth selenide</i>. (Russian) Journal of Inorganic Chemistry (translated from Zhurnal Neorganicheskoi Khimii) <b>7</b> (1962) 1435-1437.
;

#Phase classification
_sm_phase_labels				'Bi2Se3'
_chemical_name_mineral			'paraguanajuatite'
_sm_chemical_compound_class		'selenide'
_sm_phase_prototype				'Bi2 Te3 '
_sm_pearson_symbol				'hR15'
_symmetry_Int_Tables_number		166
_sm_sample_details
;powder (determination of cell parameters)
;
_sm_measurement_details
;film (determination of cell parameters), 
X-rays (determination of cell parameters)
;
_sm_interpretation_details
;cell parameters determined and structure type assigned
;

data_sm_isp_SD0305047-standardized_unitcell
#Cell Parameters
_cell_length_a					4.134
_cell_length_b					4.134
_cell_length_c					28.6
_cell_angle_alpha				90
_cell_angle_beta				90
_cell_angle_gamma				120
_sm_length_ratio_ab				1.000
_sm_length_ratio_bc				0.145
_sm_length_ratio_ca				6.918
_cell_volume 					423.3
_symmetry_space_group_name_H-M	'R-3m'
_symmetry_Int_Tables_number		166
_cell_formula_units_Z			3
_sm_cell_transformation
;No transformation from published to standardized cell parameters necessary.
;

#Atom Coordinates
loop_
_atom_site_label
_atom_site_type_symbol
_atom_site_Wyckoff_symbol
_sm_site_symmetry
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_occupancy
_sm_coordination_number
_sm_atomic_environment_type
Se1 'Se' .6c .3m 0 0 0.2097 1 ? '?'
Bi1 'Bi' .6c .3m 0 0 0.40046 1 ? '?'
Se2 'Se' .3a .-3m 0 0 0 1 ? '?'

_sm_atom_site_transformation
;No transformation from published to standardized cell parameters necessary.
Atom coordinates assigned by editor.
;

data_sm_isp_SD0305047-published_cell
#Cell Parameters
_cell_length_a					4.134(2)
_cell_length_b					4.134(2)
_cell_length_c					28.6(3)
_cell_angle_alpha				90
_cell_angle_beta				90
_cell_angle_gamma				120
_sm_length_ratio_ab				1.000
_sm_length_ratio_bc				0.145
_sm_length_ratio_ca				6.918
_cell_volume 					423.29
_symmetry_space_group_name_H-M	'R-3m'
_symmetry_Int_Tables_number		166
_cell_formula_units_Z			3

#Atom Coordinates
loop_
_atom_site_label
_atom_site_type_symbol
_atom_site_Wyckoff_symbol
_sm_site_symmetry
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_occupancy
_sm_coordination_number
_sm_atomic_environment_type
? ? ? ? ? ? ? ? ? ?

data_sm_isp_SD0305047-niggli_reduced_cell
#Cell Parameters
_cell_length_a					4.134
_cell_length_b					4.134
_cell_length_c					9.8276
_cell_angle_alpha				77.858
_cell_angle_beta				77.858
_cell_angle_gamma				60
_sm_length_ratio_ab				1.000
_sm_length_ratio_bc				0.421
_sm_length_ratio_ca				2.377
_cell_volume 					141.1
_symmetry_space_group_name_H-M	''
_symmetry_Int_Tables_number		?
_cell_formula_units_Z			3

#Atom Coordinates
loop_
_atom_site_label
_atom_site_type_symbol
_atom_site_Wyckoff_symbol
_sm_site_symmetry
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_occupancy
_sm_coordination_number
_sm_atomic_environment_type
? ? ? ? ? ? ? ? ? ?

```