最終目標設定
既存の結晶構造から,炭酸イオン(CO32-)を1つの点に置換した新しい結晶構造を作成する.
今回行ったことの流れ
1.約30万個のPOSCARファイル※の中から,元素種C,Oを含むものを抽出する.
※ COD(Crystallography Open Database[1])から得たcifファイルをcif2cell[2]を用いて,変換した.
2. 1. で抽出したPOSCARファイルから,各原子について1.7Å※以内の隣接原子がリスト化されたPOSCAR.nnlist(というテキストファイル)を作成する.
※ 炭酸イオンの熱化学半径は1.64Å[3]
3. 2.で得たPOSCAR.nnlistから,隣接原子のリストに,Cを1つかつOを3つ含む,POSCAR.nnlistを抽出する.
4. 3.で抽出したPOSCAR.nnlistに対して,Cを1つかつOを3つ含む原子団のxyz座標を,各々の原子座標の相加平均で置き換える.
5. オリジナルと生成したPOSCARファイルを可視化して比較する.
[1] COD: https://www.crystallography.net/cod/
[2] cif2cell: https://github.com/torbjornbjorkman/cif2cell
[3] スマート,L.・E.ムーア 著,河本 邦仁・平尾 一之 訳,入門 固体化学,化学同人(1996)
1. の詳細(:約30万個のPOSCARファイルの中から,元素種C,Oを含むものを抽出)
-
get_poacar_file_folder_abs_path_list.py[[4]
-
入力:COD[1]からダウンロードしたcifファイルを変換したPOSCARファイル約30万件が入ったディレクトリ(:308325件)
-
出力:poscar_abs_path_list.npy
-
-
get_C_O_existed_poscar_abs_path_list.py[5]
- 入力:poscar_abs_path_list.npy
- 出力:C_O_existed_poscar_abs_path_list.npy
-
get_C_O_existed_poscar_folder_abs_path_list.py[6]
- 入力:C_O_existed_poscar_abs_path_list.npy
- 出力:C_O_existed_poscar_folder_abs_path_list.npy
[4] https://github.com/k-morii-toridai/scripts_get_poscar_abs_path_list.git
[5] https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
[6] https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_folder_abs_path_list.git
2. の詳細(:各原子について1.7Å以内の隣接原子のリストPOSCAR.nnlistを作成)
- mk_nnlist_by_poscar2nnlist.py[7]
- 準備(requirment):poscar2nnlist[8]
- 入力:POSCAR※
- ※ C_O_existed_poscar_folder_abs_path_list.npyで各POSCARの絶対パスを指定
- 出力:POSCAR.nnlist
- 出力先:各ディレクトリ
[7] https://github.com/k-morii-toridai/scripts_mk_nnlist.git
[8] 研究室で作成されたfortranで書かれたバイナリファイル.各環境でビルドする必要がある.
3. の詳細(:隣接原子のリストに,Cを1つかつOを3つ含むPOSCAR.nnlistと親フォルダのリストを抽出)
-
get_CO3-contained_nnlist_abs_path_list.py[9]
- 入力:C_O_existed_poscar_folder_abs_path_list.npy
- 出力:CO3_contained_nnlist_abs_path_list.npy
-
get_CO3_contained_poscar_folder_abs_path_list.py[10]
- 入力:CO3_contained_nnlist_abs_path_list.npy
- 出力:CO3_contained_poscar_folder_abs_path_list.npy
[9] https://github.com/k-morii-toridai/scripts_get_CO3-contained_nnlist_abs_path_list.git
[10] https://github.com/k-morii-toridai/scripts_get_CO3-contained_poscar_folder_abs_path_list.git
4. の詳細(:Cを1つかつOを3つ含む原子団のxyz座標を,各々の原子座標の相加平均で置換)
-
mk_CO3-clusterd_poscar.py[11]
- 入力:POSCAR, POSCAR.nnlist
- 出力:POSCAR
-
do_mk_CO3-clusterd_poscar.py.py[11]
- 入力:mk_CO3-clusterd_poscar.py,CO3_contained_poscar_folder_abs_path_list.npy
- 出力:各ディレクトリでmk_CO3-clusterd_poscar.pyの出力
[11] https://github.com/k-morii-toridai/scripts_mk_CO3-clusterd_poscar.git
5. の詳細(:オリジナルと生成したPOSCARファイル可視化して比較)
VESTA(Visualization for Electronic and STructural Analysis)[12]を用いて,各結晶構造を可視化した.以下,左図にオリジナル,右図に生成したものを配置している.
[12] https://jp-minerals.org/vesta/jp/
- 例1)1000033(:BaCO3)
- 例2)1000320(:Ba3ScCO3F7)
注)Ba2+,Sc3+,F-,CO32-
- 例3)1000372(:KCuCO3F)
注)K+,Cu2+,CO32-,F-
- 例4)1000459(:Ca4Al2(OH)12CO3(H2O)5)
注)Ca2+,Al3+,OH-,CO32-,H2O