0
0

炭酸イオンを1つの点に置換した結晶構造の作成ログ

Last updated at Posted at 2023-11-16

最終目標設定

既存の結晶構造から,炭酸イオン(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

image.png

image.png

  • 例2)1000320(:Ba3ScCO3F7

注)Ba2+,Sc3+,F-,CO32-

image.png

image.png

  • 例3)1000372(:KCuCO3F)
    注)K+,Cu2+,CO32-,F-

image.png

  • 例4)1000459(:Ca4Al2(OH)12CO3(H2O)5
    注)Ca2+,Al3+,OH-,CO32-,H2O

image.png

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0