炭酸イオンを含むPOSCARを，POSCAR.nnlistを用いて判定し，その精度検証を行う（ログ）

## 目的


## 目標
ある結晶構造が炭酸イオンを含むかどうかを判定する．加えて，その精度を検証する．


## 流れ
* ある結晶構造が炭酸イオンを含むかどうかを判定．
1．元素種C, Oを含むPOSCARファイルパスのリストを取得．
2．炭酸イオンの大きさ（半径）を見積もる．その距離（半径）と，1. で得たPOSCARファイルからPOSCAR.nnlistファイルを作成する．
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

* その精度を検証する．
5-1．3．の炭酸イオンかどうかの判定の精度を検証するため，2．で指定する距離（炭酸イオンの半径）を変え，4．の炭酸イオンだと判定されるPOSCARファイルの数が変わるかどうかを確認する．
（5-2．4．で取得した炭酸イオンを含むと判定されたPOSCARファイルを可視化して，炭酸イオンを含むかどうかを検証する．）



## 結果（グラフ版）
* 検証5-1-1：POSCAR.nnlistの距離を変えることで，炭酸イオンを含む結晶構造の数がどう変わるかを確認した．
→ 1.60Å，1.65Åでは，その数が一定でかつそのPOSCARの種類は変わらなかった．
* 検証5-1-2：方法1-1で抽出された数が変わったときに，その差分のPOSCARファイルを可視化して確認した．
→ 距離が1.65Åより大きいとき（1.70Åのとき），差分は炭酸イオンではなく，炭酸水素イオン（HCO3^2-）が含まれていた．
→ 距離が1.60Åより小さいとき（1.55Åのとき），差分は炭酸イオンではなく，Cの結合手が4本のものが含まれていた．
→ 局所的に見たら中心にC，周りにO3つの構造を，炭酸イオンだと補足してしまっている．
* 検証5-1-3：1.60Å~1.65Åの間のPOSCARファイルを可視化させて目視確認した．
→ 10件ほどで炭酸イオンが含まれることを確認した　　



![rel_dist_posnum_CO3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3487151/4e92a27b-d5c0-57b8-0bc8-f7519ecba121.png)



## 詳細ログ
### 1．元素種C, Oを含むPOSCARファイルパスのリストを取得．
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list

```terminal
ls -CF
```
get_CO3-contained_nnlist_abs_path_list.ipynb*  get_CO3-contained_nnlist_abs_path_list.py*  my_package/  old/  sample.txt*

```terminal
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
```
[sudo] password for morii-k:
Cloning into 'scripts_get_C_O_existed_poscar_abs_path_list'...
remote: Enumerating objects: 31, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 31 (delta 13), reused 24 (delta 6), pack-reused 0
Receiving objects: 100% (31/31), 1.68 MiB | 2.97 MiB/s, done.
Resolving deltas: 100% (13/13), done.

```terminal
cd scripts_get_C_O_existed_poscar_abs_path_list/
ls -CF
```
get_C_O_existed_poscar_path_list.py*  get_poscar_existed_path_list.py*  sample_get_poscar_existed_path_list.py.txt*
get_C_O_existed_poscar_path_list.sh*  old/


```terminal
./get_C_O_existed_poscar_path_list.sh
```
len(poscar_folder_path_list): 507142
Now getting poscar folder sub path list!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 507142/507142 [08:08<00:00, 1038.73it/s]
len(poscar_existed_file_path_list): 308325
Both poscar_existed_file_path_list and poscar_existed_folder_path_list were saved as .npy
len(poscar_abs_path_list_loaded): 308325
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 308325/308325 [11:44<00:00, 437.72it/s]
len(C_O_existed_poscar_file_path_list): 205733
C_O_existed-poscar file, and folder path list were saved as .npy!!!



### 2．炭酸イオンの大きさ（半径）を見積もる．その距離（半径）と，1. で得たPOSCARファイルからPOSCAR.nnlistファイルを作成する．

Qiitaの記事<sup>[1]</sup>にて作成済みのため省略．
注）[1]では距離を1.7Åとして実行した．
[1] POSCARからneighbors listの作成（ログ） #Python3 - Qiita



### 3．と4．の詳細ログ 
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．


```terminal
cd ..
ls =CF
```
get_CO3_contained_poscar_path_list.py*  my_package/  old/  sample_get_CO3_contained_poscar_path_list.py.txt*  scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7



```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.7
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:22<00:00, 1013.61it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617203/617203 [00:58<00:00, 10569.84it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:19<00:00, 792.81it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617199/617199 [01:01<00:00, 10080.29it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [57:06<00:00, 60.04it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1189/205733

real    67m3.767s
user    227m15.456s
sys     44m5.871s


```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list_1.7.npy*  my_package/                                        scripts_get_C_O_existed_poscar_abs_path_list/
CO3_contained_poscar_path_list_1.7.npy*         old/
get_CO3_contained_poscar_path_list.py*          sample_get_CO3_contained_poscar_path_list.py.txt*






<!-- コメントアウト：過去のログ


```terminal
time python3 get_CO3-contained_nnlist_abs_path_list.py
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:17<00:00, 1039.23it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617203/617203 [00:58<00:00, 10614.81it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:20<00:00, 790.17it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617199/617199 [00:56<00:00, 10886.85it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:05:22<00:00, 52.45it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1189/205733

real    75m10.917s
user    261m15.936s
sys     44m53.345s


```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list.npy*  get_CO3-contained_nnlist_abs_path_list.ipynb*  my_package/  sample.txt*
CO3_contained_poscar_path_list.npy*         get_CO3-contained_nnlist_abs_path_list.py*     old/         scripts_get_C_O_existed_poscar_abs_path_list/

-->





### 5-1．3．の炭酸イオンかどうかの判定の精度を検証するため，2．で指定する距離（炭酸イオンの半径）を変え，4．の炭酸イオンだと判定されるPOSCARファイルの数が変わるかどうかを確認する．


2．で見積もる炭酸イオンの大きさ（半径）を1.7Åからを幾通りかに変更する．
1.1Å：0件
1.29Å：362件
1.3Å：512件
1.4Å：      , 1180件（ver2）
1.45Å：     , 1242件（ver2）
1.5Å：1235件, 1234件（ver2）
1.55Å：     , 1194件（ver2）
1.6Å：      , 1189件（ver2）
1.65Å：     , 1189件（ver2）← 炭酸イオンの熱化学半径は1.64Å
1.7Å：1189件, 1188件（ver2）　
1.9Å：1133件
2.1Å：1094件

予想としては，指定する距離が，炭酸イオンの大きさより大きくなると，NeighborsListで取得する炭酸イオン以外の原子数が多くなり，炭酸イオンと判定されるPOSCARファイルの数は0に近づく．
対して，指定する距離が，炭酸イオンの大きさより小さくなると，NeighborsListで取得する炭酸イオンを取得できなくなり，炭酸イオンと判定されるPOSCARファイルの数は0に近づく．

また，炭酸イオンと判定される数が最大となる距離が，炭酸イオンを最もよく取得できる距離である．


Qiitaの記事<sup>[1]</sup>と同じように，複数の距離（半径）を指定して，POSCAR.nnlistを作成する．
[1] POSCARからneighbors listの作成（ログ） #Python3 - Qiita

#### 1.3Åの場合
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: ←1.3と入力
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:33:34<00:00, 36.64it/s]
it took 5614.419535636902sec.

real    95m3.973s
user    159m2.670s
sys     57m57.416s


確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/1/00/00/1000000


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   `-- poscar2nnlist_log.txt
`-- nnlist_1.7
    |-- POSCAR.nnlist
    |-- POSCAR.nnlist.csv
    `-- poscar2nnlist_log.txt

2 directories, 7 files
```

各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.3/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list

```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list_1.7.npy*  my_package/                                        scripts_get_C_O_existed_poscar_abs_path_list/
CO3_contained_poscar_path_list_1.7.npy*         old/
get_CO3_contained_poscar_path_list.py*          sample_get_CO3_contained_poscar_path_list.py.txt*


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.3に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.3
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:05<00:00, 1110.01it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 822934/822934 [03:08<00:00, 4357.58it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:07<00:00, 831.34it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:39<00:00, 4140.07it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:08:27<00:00, 50.08it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):512/205733

real    80m41.232s
user    120m41.792s
sys     39m5.489s






#### 1.9Åの場合

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: ← 1.9と入力
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:36:00<00:00, 35.71it/s]
it took 5761.030113458633sec.

real    96m18.947s
user    151m7.230s
sys     57m4.751s



確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/1/00/00/1000000


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_1.9
    |-- POSCAR.nnlist
    `-- poscar2nnlist_log.txt

3 directories, 10 files
```

各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.9/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list

```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list_1.3.npy*  CO3_contained_poscar_path_list_1.7.npy*  old/
CO3_contained_poscar_folder_path_list_1.7.npy*  get_CO3_contained_poscar_path_list.py*   sample_get_CO3_contained_poscar_path_list.py.txt*
CO3_contained_poscar_path_list_1.3.npy*         my_package/                              scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.3に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.9
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:02<00:00, 1127.08it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1028667/1028667 [03:58<00:00, 4307.37it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [07:36<00:00, 450.88it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:36<00:00, 4248.66it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:16:56<00:00, 44.57it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1133/205733

real    93m24.888s
user    161m10.355s
sys     39m27.325s










#### 2.1Åの場合

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 2.1 ←入力した




確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/1/00/00/1000000


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.9
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_2.1
    |-- POSCAR.nnlist
    `-- poscar2nnlist_log.txt

4 directories, 13 files
```

各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_2.1/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list

```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list_1.3.npy*  CO3_contained_poscar_path_list_1.7.npy*  old/
CO3_contained_poscar_folder_path_list_1.7.npy*  CO3_contained_poscar_path_list_1.9.npy*  sample_get_CO3_contained_poscar_path_list.py.txt*
CO3_contained_poscar_folder_path_list_1.9.npy*  get_CO3_contained_poscar_path_list.py*   scripts_get_C_O_existed_poscar_abs_path_list/
CO3_contained_poscar_path_list_1.3.npy*         my_package/


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を2.1に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 2.1
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:14<00:00, 1058.60it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1234400/1234400 [05:00<00:00, 4104.40it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:12<00:00, 815.71it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:42<00:00, 4011.33it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:17:14<00:00, 44.39it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1094/205733

real    91m49.332s
user    129m10.674s
sys     42m28.141s









#### 1.1Åの場合

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.1 ←入力した
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:32:31<00:00, 37.06it/s]
it took 5551.337497711182sec.

real    92m50.562s
user    154m57.971s
sys     61m59.684s



確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/1/00/00/1000000


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.1
|   |-- POSCAR.nnlist
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.9
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_2.1
    |-- POSCAR.nnlist
    |-- POSCAR.nnlist.csv
    `-- poscar2nnlist_log.txt

5 directories, 16 files
```

各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.1/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list

```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list_1.3.npy*  CO3_contained_poscar_path_list_1.7.npy*  old/
CO3_contained_poscar_folder_path_list_1.7.npy*  CO3_contained_poscar_path_list_1.9.npy*  sample_get_CO3_contained_poscar_path_list.py.txt*
CO3_contained_poscar_folder_path_list_1.9.npy*  CO3_contained_poscar_path_list_2.1.npy*  scripts_get_C_O_existed_poscar_abs_path_list/
CO3_contained_poscar_folder_path_list_2.1.npy*  get_CO3_contained_poscar_path_list.py*
CO3_contained_poscar_path_list_1.3.npy*         my_package/


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.1に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.1
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:15<00:00, 1051.45it/s]100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1440133/1440133 [05:53<00:00, 4071.28it/s]100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:47<00:00, 716.21it/s]100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:43<00:00, 3982.60it/s]Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:06:01<00:00, 51.93it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):0/205733

real    81m59.022s
user    128m16.760s
sys     43m10.338s















#### 1.5Åの場合

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to 
catch: 1.5 ← 入力した．
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:36:45<00:00, 35.44it/s]
it took 5805.28795003891sec.

real    96m53.816s
user    159m44.326s
sys     61m12.162s


確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/1/00/00/1000000


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.1
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.5
|   |-- POSCAR.nnlist
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.9
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_2.1
    |-- POSCAR.nnlist
    |-- POSCAR.nnlist.csv
    `-- poscar2nnlist_log.txt

6 directories, 19 files
```

各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.5/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list

```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list_1.1.npy*  CO3_contained_poscar_path_list_1.1.npy*  get_CO3_contained_poscar_path_list.py*
CO3_contained_poscar_folder_path_list_1.3.npy*  CO3_contained_poscar_path_list_1.3.npy*  my_package/
CO3_contained_poscar_folder_path_list_1.7.npy*  CO3_contained_poscar_path_list_1.7.npy*  old/
CO3_contained_poscar_folder_path_list_1.9.npy*  CO3_contained_poscar_path_list_1.9.npy*  sample_get_CO3_contained_poscar_path_list.py.txt*
CO3_contained_poscar_folder_path_list_2.1.npy*  CO3_contained_poscar_path_list_2.1.npy*  scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.5に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.5
```
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:36<00:00, 950.12it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1645866/1645866 [06:27<00:00, 4250.32it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:38<00:00, 740.02it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:34<00:00, 4349.59it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:18:06<00:00, 43.90it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1235/205733

real    94m38.732s
user    197m37.565s
sys     43m44.647s









#### 1.2Åの場合

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to 
catch: 1.5 ← 入力した．
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:36:45<00:00, 35.44it/s]
it took 5805.28795003891sec.

real    96m53.816s
user    159m44.326s
sys     61m12.162s


確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/1/00/00/1000000


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.1
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.5
|   |-- POSCAR.nnlist
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.9
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_2.1
    |-- POSCAR.nnlist
    |-- POSCAR.nnlist.csv
    `-- poscar2nnlist_log.txt

6 directories, 19 files
```

各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.5/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list

```terminal
ls -CF
```
CO3_contained_poscar_folder_path_list_1.1.npy*  CO3_contained_poscar_path_list_1.1.npy*  get_CO3_contained_poscar_path_list.py*
CO3_contained_poscar_folder_path_list_1.3.npy*  CO3_contained_poscar_path_list_1.3.npy*  my_package/
CO3_contained_poscar_folder_path_list_1.7.npy*  CO3_contained_poscar_path_list_1.7.npy*  old/
CO3_contained_poscar_folder_path_list_1.9.npy*  CO3_contained_poscar_path_list_1.9.npy*  sample_get_CO3_contained_poscar_path_list.py.txt*
CO3_contained_poscar_folder_path_list_2.1.npy*  CO3_contained_poscar_path_list_2.1.npy*  scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.5に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.5
```
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:36<00:00, 950.12it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1645866/1645866 [06:27<00:00, 4250.32it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:38<00:00, 740.02it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:34<00:00, 4349.59it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:18:06<00:00, 43.90it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1235/205733

real    94m38.732s
user    197m37.565s
sys     43m44.647s












#### 1.29Åの場合

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.29 ← 入力した．
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:29:22<00:00, 38.36it/s]
it took 5362.844165086746sec.

real    89m32.123s
user    154m6.251s
sys     59m1.928s


確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/1/00/00/1000000


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.1
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.29
|   |-- POSCAR.nnlist
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.5
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.9
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_2.1
    |-- POSCAR.nnlist
    |-- POSCAR.nnlist.csv
    `-- poscar2nnlist_log.txt

7 directories, 22 files
```

各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.29/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.29に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.29
```
time python3 get_CO3_contained_poscar_path_list.py 1.29
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:09<00:00, 1084.47it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1851599/1851599 [07:18<00:00, 4219.83it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [09:16<00:00, 369.88it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617199/617199 [02:25<00:00, 4235.67it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [47:58<00:00, 71.46it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):362/205733

real    70m20.643s
user    171m31.076s
sys     46m10.532s









#### 1.3（: added filter 2 ver.）
get_CO3_contained_poscar_path_list.pyにフィルターを追加した．これを用いて，再度距離1.3で実行．
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.3
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:09<00:00, 1083.52it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1851599/1851599 [07:06<00:00, 4337.73it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [05:29<00:00, 623.66it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617199/617199 [02:24<00:00, 4264.75it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [48:49<00:00, 70.24it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):512/205733

real    67m12.931s
user    175m0.002s
sys     46m26.615s




#### 1.5（: added filter 2 ver.）
get_CO3_contained_poscar_path_list.pyにフィルターを追加した．これを用いて，再度距離1.3で実行．
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.5
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:08<00:00, 1090.54it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1851599/1851599 [07:09<00:00, 4306.46it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [10:32<00:00, 325.46it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617199/617199 [02:23<00:00, 4298.38it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [57:48<00:00, 59.31it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1234/205733

real    81m16.987s
user    229m11.523s
sys     43m43.566s













#### 1.6Åの場合（: added filter 2 ver.）

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.6　←入力した．
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:33:17<00:00, 36.76it/s]
it took 5597.050124883652sec.

real    93m31.137s
user    156m40.621s
sys     58m18.482s





確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/9/01/78/9017837


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.1
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.29
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.5
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.6
|   |-- POSCAR.nnlist
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.9
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_2.1
    |-- POSCAR.nnlist
    |-- POSCAR.nnlist.csv
    `-- poscar2nnlist_log.txt

8 directories, 25 files
```



各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.29/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.6に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.6
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:11<00:00, 1074.87it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2057332/2057332 [08:02<00:00, 4263.84it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [19:55<00:00, 172.11it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:35<00:00, 4287.81it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:22:11<00:00, 41.72it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1189/205733

real    115m13.712s
user    191m18.734s
sys     46m23.013s















#### 1.4Åの場合（: added filter 2 ver.）

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist

```terminal
ls -CF
```
mk_nnlist_by_poscar2nnlist.py*  neib_code.zip*  sample_mk_nnlist_by_poscar2nnlist.py.txt*      setup_poscar2nnlist.sh*
neib_code/                      old/            scripts_get_C_O_existed_poscar_abs_path_list/


```terminal
cat sample_mk_nnlist_by_poscar2nnlist.py.txt
```
how to use this commnad：
python3 mk_nnlist_by_poscar2nnlist.py <nnlistを作成したいPOSCARファイルの親フォルダリスト（.npy）のパス>

example:
python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.4  ←入力した．
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:29:31<00:00, 38.30it/s]
it took 5371.110774755478sec.

real    89m40.805s
user    158m36.805s
sys     57m52.490s




確認のため，ディレクトリ構造を例示する．：
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/cif/9/01/78/9017837


```terminal
tree
```
```
.
|-- POSCAR
|-- cif2cell_log.txt
|-- nnlist_1.1
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.29
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.3
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.4
|   |-- POSCAR.nnlist
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.5
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.6
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.7
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
|-- nnlist_1.9
|   |-- POSCAR.nnlist
|   |-- POSCAR.nnlist.csv
|   `-- poscar2nnlist_log.txt
`-- nnlist_2.1
    |-- POSCAR.nnlist
    |-- POSCAR.nnlist.csv
    `-- poscar2nnlist_log.txt

9 directories, 28 files
```


各POSCARファイルが存在するディレクトリのサブディレクトリにnnlist_1.29/というディレクトリが作成され，
内部にPOSCAR.nnlistファイルが保存されているのが確認できる．

続いて，
3．2．で得たPOSCAR.nnlistファイルを用いて，POSCARファイルが炭酸イオンを含むかどうかを判定する．
4．3．で炭酸イオンだと判定されたPOSCARファイルパスの一覧を取得する．

ディレクトリを移動して，現在地を確認する．：
```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_get_CO3-contained_nnlist_path_list


```terminal
cat sample_get_CO3_contained_poscar_path_list.py.txt
```
#requirment
sudo git clone https://github.com/k-morii-toridai/scripts_get_C_O_existed_poscar_abs_path_list.git
cd scripts_get_C_O_existed_poscar_abs_path_list
./get_C_O_existed_poscar_path_list.sh

#how to use
python3 get_CO3_contained_poscar_path_list.py <CO3の抽出に使いたいnnlistで指定した距離>
#注:<CO3の抽出に使いたいnnlistで指定した距離>はすでに作成済みのnnlistで指定した距離

#example
python3 get_CO3_contained_poscar_path_list.py 1.7


ここで，python3に渡す引数を1.6に指定して，実行する．：
```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.4
```
(略)
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1180/205733
(略)













#### 1.55Åの場合（: added filter 2 ver.）

```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.55
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:24:28<00:00, 40.59it/s]
it took 5068.716016054153sec.

real    84m39.070s
user    154m39.505s
sys     60m30.226s




```terminal
time python3 get_CO3_contained_poscar_path_list.py 1.55
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:03<00:00, 1119.42it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2468798/2468798 [08:39<00:00, 4747.91it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:10<00:00, 820.51it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:29<00:00, 4608.69it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:16:16<00:00, 44.96it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1194/205733

real    93m59.316s
user    165m40.470s
sys     49m28.832s











#### 1.45Åの場合（: added filter 2 ver.）
```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.45
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:17:21<00:00, 44.32it/s]
it took 4641.5339868068695sec.

real    77m29.498s
user    147m11.557s
sys     54m29.465s


```terminal
 time python3 get_CO3_contained_poscar_path_list.py 1.45
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [02:55<00:00, 1174.97it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2674531/2674531 [09:30<00:00, 4692.09it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:41<00:00, 927.97it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:27<00:00, 4726.83it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:00:43<00:00, 56.47it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1242/205733

real    78m31.473s
user    179m41.825s
sys     44m1.348s










#### 1.65Åの場合（: added filter 2 ver.）
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.65
Now poscar2nnlist is making POSCAR.nnlist from POSCAR!!!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:27:34<00:00, 39.15it/s]
it took 5254.614668369293sec.

real    87m44.312s
user    157m30.135s
sys     58m18.981s


```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list/
time python3 get_CO3_contained_poscar_path_list.py 1.65
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:23<00:00, 1010.82it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2880264/2880264 [10:55<00:00, 4394.84it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [04:22<00:00, 784.29it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 411466/411466 [01:35<00:00, 4311.13it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:03:53<00:00, 53.66it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1189/205733

real    84m26.614s
user    188m18.801s
sys     46m52.276s












#### 1.70Åの場合（: added filter 2 ver.）
```terminal
pwd
```
/mnt/ssd_elecom_black_c2c_480G/scripts/scripts_mk_nnlist


```terminal
time python3 mk_nnlist_by_poscar2nnlist.py ./scripts_get_C_O_existed_poscar_abs_path_list/C_O_existed_poscar_folder_path_list.npy
```
Now loading poscar_folder_path_list from .npy file...
poscar_folder_path_list was loaded from .npy file!!!
len(poscar_folder_path_list): 205733
Input a number which is poscar2nnlist's second arg. :nearest neighbors distance(Å) you want to catch: 1.7
folder which name you inputted on command line, 1.7, was already existed.
So quit running this script.

real    0m14.662s
user    0m1.986s
sys     0m1.372s


```terminal
cd ../scripts_get_CO3-contained_nnlist_path_list/
time python3 get_CO3_contained_poscar_path_list.py 1.7
```
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [03:24<00:00, 1006.20it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3038988/3038988 [11:38<00:00, 4350.91it/s]
100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [05:15<00:00, 651.13it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 617199/617199 [02:26<00:00, 4210.65it/s]
Now, judging whether C_O_existed_poscar file is CO3-contained or not.
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 205733/205733 [1:03:27<00:00, 54.03it/s]
len(CO3_contained_nnlist_path_list)/len(C_O_existed_poscar_nnlist_path_list)):1188/205733

real    86m30.943s
user    248m35.241s
sys     52m9.268s