1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

多原子イオンを1つの点に置換した結晶構造の作成ログ(説明用)

Last updated at Posted at 2023-11-10

最終目標設定

既存の結晶構造から,多原子イオンを1つの点に置換した新しい結晶構造を作成する.

準備

以下,2つのファイルを用意する.

  • POSCAR: POSCARファイル形式の結晶構造を記したテキストファイル
  • POSCAR.nnlist: POSCARファイルから,原子ごとに隣接原子をリストアップしたテキストファイル

作成したプログラム

  • mk_clusterd_poscar.py
    入力:POSCAR, POSCAR.nnlist
    出力:POSCAR

今回行ったことの流れ

次の流れに沿って,距離が近い原子団を1つの原子に置き換え,新たな結晶構造を作成した.

0.POSCARとPOSCAR.nnlistをPandasのデータフレームとして読み込む.
1.結晶構造の各原子ごとに2Å以内の原子をピックアップする.
※ これは,準備の段階でPOSCAR.nnlistとして作成済み
2.ピックアップされた数が最大の原子をリストアップする.
3.2.でリストアップされた原子と、ともにピックアップされた原子のxyz座標の相加平均をとる.
4.リストアップされた原子の元素種と3.で得た座標を新たな1点とする.
5.2~4で選択されていない原子をリストアップする.
6.4.と5.を組み合わせて,新しい構造を作る.

今回行ったことの詳細説明

例として,COD (Crystallography Open Database) から得たBaCO3 (1000033.cif) を用いる.
https://www.crystallography.net/cod/1000033.cif

POSCARをDataFrameとして読み込んだもの:

central atom x y z Species
0 1 0.250000000000000 0.757000000000000 0.919000000000000 C
1 2 0.250000000000000 0.743000000000000 0.419000000000000 C
2 3 0.750000000000000 0.243000000000000 0.081000000000000 C
3 4 0.750000000000000 0.257000000000000 0.581000000000000 C
4 5 0.250000000000000 0.901100000000000 0.912200000000000 O
5 6 0.250000000000000 0.598900000000000 0.412200000000000 O
6 7 0.750000000000000 0.098900000000000 0.087800000000000 O
7 8 0.750000000000000 0.401100000000000 0.587800000000000 O
8 9 0.459500000000000 0.683900000000000 0.921000000000000 O
9 10 0.040500000000000 0.816100000000000 0.421000000000000 O
10 11 0.540500000000000 0.316100000000000 0.079000000000000 O
11 12 0.040500000000000 0.683900000000000 0.921000000000000 O
12 13 0.459500000000000 0.816100000000000 0.421000000000000 O
13 14 0.959500000000000 0.183900000000000 0.579000000000000 O
14 15 0.959500000000000 0.316100000000000 0.079000000000000 O
15 16 0.540500000000000 0.183900000000000 0.579000000000000 O
16 17 0.250000000000000 0.416310000000000 0.754900000000000 Ba
17 18 0.250000000000000 0.083690000000000 0.254900000000000 Ba
18 19 0.750000000000000 0.583690000000000 0.245100000000000 Ba
19 20 0.750000000000000 0.916310000000000 0.745100000000000 Ba

POSCAR.nnlistをDataFrameとして読み込んだもの:

central atom neighboring atom distance X Y Z unitcell_x unitcell_y unitcell_z central species neighboring species
0 1 1 0.000000 0.000000 0.000000 0.000000 0 0 0 C C
1 1 5 1.282630 0.000000 1.281885 -0.043713 0 0 0 C O
2 1 9 1.289100 1.112990 -0.650283 0.012857 0 0 0 C O
3 1 12 1.289100 -1.112990 -0.650283 0.012857 0 0 0 C O
4 2 2 0.000000 0.000000 0.000000 0.000000 0 0 0 C C
5 2 6 1.282630 0.000000 -1.281885 -0.043713 0 0 0 C O
6 2 10 1.289100 -1.112990 0.650283 0.012857 0 0 0 C O
7 2 13 1.289100 1.112990 0.650283 0.012857 0 0 0 C O
8 3 3 0.000000 0.000000 0.000000 0.000000 0 0 0 C C
9 3 7 1.282630 0.000000 -1.281885 0.043713 0 0 0 C O
10 3 11 1.289100 -1.112990 0.650283 -0.012857 0 0 0 C O
11 3 15 1.289100 1.112990 0.650283 -0.012857 0 0 0 C O
12 4 4 0.000000 0.000000 0.000000 0.000000 0 0 0 C C
13 4 8 1.282630 0.000000 1.281885 0.043713 0 0 0 C O
14 4 14 1.289100 1.112990 -0.650283 -0.012857 0 0 0 C O
15 4 16 1.289100 -1.112990 -0.650283 -0.012857 0 0 0 C O
16 5 1 1.282630 0.000000 -1.281885 0.043713 0 0 0 O C
17 5 5 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
18 6 2 1.282630 0.000000 1.281885 0.043713 0 0 0 O C
19 6 6 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
20 7 3 1.282630 0.000000 1.281885 -0.043713 0 0 0 O C
21 7 7 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
22 8 4 1.282630 0.000000 -1.281885 -0.043713 0 0 0 O C
23 8 8 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
24 9 1 1.289100 -1.112990 0.650283 -0.012857 0 0 0 O C
25 9 9 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
26 10 2 1.289100 1.112990 -0.650283 -0.012857 0 0 0 O C
27 10 10 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
28 11 3 1.289100 1.112990 -0.650283 0.012857 0 0 0 O C
29 11 11 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
30 12 1 1.289100 1.112990 0.650283 -0.012857 0 0 0 O C
31 12 12 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
32 13 2 1.289100 -1.112990 -0.650283 -0.012857 0 0 0 O C
33 13 13 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
34 14 4 1.289100 -1.112990 0.650283 0.012857 0 0 0 O C
35 14 14 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
36 15 3 1.289100 -1.112990 -0.650283 0.012857 0 0 0 O C
37 15 15 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
38 16 4 1.289100 1.112990 0.650283 0.012857 0 0 0 O C
39 16 16 0.000000 0.000000 0.000000 0.000000 0 0 0 O O
40 17 17 0.000000 0.000000 0.000000 0.000000 0 0 0 Ba Ba
41 18 18 0.000000 0.000000 0.000000 0.000000 0 0 0 Ba Ba
42 19 19 0.000000 0.000000 0.000000 0.000000 0 0 0 Ba Ba
43 20 20 0.000000 0.000000 0.000000 0.000000 0 0 0 Ba Ba

クラスタ後の絶対中心座標のみをフィルターで抽出したもの:

補足:クラスタの中心原子と,クラスタに選ばれなかった原子

central atom x y z Species
0 1 0.250000 0.757000 0.919000 C
1 2 0.250000 0.743000 0.419000 C
2 3 0.750000 0.243000 0.081000 C
3 4 0.750000 0.257000 0.581000 C
16 17 0.250000 0.416310 0.754900 Ba
17 18 0.250000 0.083690 0.254900 Ba
18 19 0.750000 0.583690 0.245100 Ba
19 20 0.750000 0.916310 0.745100 Ba

相対中心座標をDataFrame化したもの:

補足:df_nnlistの原子団の相対中心座標

central atom X Y Z
0 1 0.000000 -0.004670 -0.004500
1 2 0.000000 0.004670 -0.004500
2 3 0.000000 0.004670 0.004500
3 4 0.000000 -0.004670 0.004500
16 17 0.000000 0.000000 0.000000
17 18 0.000000 0.000000 0.000000
18 19 0.000000 0.000000 0.000000
19 20 0.000000 0.000000 0.000000

絶対座標 + 相対座標をDataFrame化したもの:

補足:最近傍の原子団を1つの点に置換した結晶構造

X Y Z Species
0 0.250000 0.752330 0.914500 C
1 0.250000 0.747670 0.414500 C
2 0.750000 0.247670 0.085500 C
3 0.750000 0.252330 0.585500 C
16 0.250000 0.416310 0.754900 Ba
17 0.250000 0.083690 0.254900 Ba
18 0.750000 0.583690 0.245100 Ba
19 0.750000 0.916310 0.745100 Ba
1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?