の補足資料です。
第一原理計算をするには対象となる物質の構造のデータが必要となります。それを作るためのツールなどを紹介したいと思います。
結晶構造の情報は論文などを調べて入手します。必要な情報は
- 単位胞内の原子の位置
- 基本並進ベクトル
の2つです。対称性やWycoff位置から自力でこれらを求めてもよいのですが、自動的にやってくれるソフトがあるのでそれを紹介します。
結晶構造のデータベース
まず構造データを調べるところからです。おすすめは以下のサイトです(ライセンスを得ていないと入れないので理系の大学などのネット回線でないと閲覧できないかもしれません。):
調べたい物質を検索して検索条件でcrystal structure
にチェックを入れれば、結晶構造についての情報が載った論文に絞って探すことができます。
また次のページでもライセンスなしで物質のcifファイルが入手できます。
このページは周期表に構成元素を入力して検索するようになっています。
次に良さそうな論文のページに行くと、大抵の場合cifファイルがダウンロードできます。
(たまにかなりマイナーな物質だとcifファイルを用意してないことや、そもそも結晶内の原子の位置が分かってないことがあります。)
このcifファイルはVESTAという結晶の描画ソフトのデータになっていて、VESTAにドラッグ&ドロップすると結晶構造を3Dで図示してくれます。VESTAについては以下のページが参考になると思います。
cif2cellで入力データに変換
これをCif2cellというpythonパッケージで処理すると、Quantum Esspressoの入力形式に合わせて先に述べた必要な2つの情報を出力してくれます。
Cif2cellの使い方はこちらの記事で紹介されていました:
cif2cellのzipファイルをダウンロードして解凍すると、中にsetup.py
というファイルが入ってるので
sudo python setup.py install
としてコンパイルすれば使えるようになります。(必要に応じてオプションもつけてください。)
注意点
ちなみにCif2cellはpython2でしか動かないので注意してください。python3には対応していません。
実行例
$\mathrm{Bi_2Se_3}$という物質で試してみます。
の論文の構造で計算してみます。リンク先からダウンロードしたcifファイルはBi2Se3.cif
として保存しました。cifファイルの中身は長いのでこの記事の最後に張り付けておきます。
これをVESTAで図示すると次のようになります。紫がBi、黄緑がSeです。
構造データの取得
これに対して
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
などとして下さい。すると、次のファイルが出力されます。
#************************************************************************************
#* 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ファイルの冒頭は
#======================================================================
# 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
:
:
:
となります。ここに書かれている原子の内部座標と基本並進ベクトル
\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がどれになるかは
に書いてあります。例えば$\mathrm{Bi2Se3}$だとこの論文のA.10: Hexagonalの対称性なので
\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のデータは
\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ファイル
##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
? ? ? ? ? ? ? ? ? ?