# SiO₂ 実装と他材料への展開 ## 概要 本ライブラリは ``` Central ↓ Bridge ↓ Second ``` というネットワークモデルを基本として設計されている。 そのため、 現在の実装は SiO₂ を対象としているものの、 アルゴリズム自体はある程度一般化されている。 一方で、 Qn の定義 Topology の作り方 Bond Parameter などは SiO₂ の構造を強く反映している。 ここでは、 どこまでが汎用実装であり、 どこからが SiO₂ 専用実装なのかを整理する。 --- # SiO₂ 固有となる部分 現在の実装で SiO₂ 固有となる部分は 主に次の四点である。 ``` Qn の定義 SiO4 四面体 Bond Parameter Angle Parameter ``` これらは 単純に元素名を書き換えただけでは 利用できない。 --- # 1. Qn の定義 Qn は本来 ``` SiO4 四面体が 何本の Bridge Oxygen を持つか ``` というケイ酸塩で用いられる概念である。 例えば ``` Q4 ``` は ``` 4 本すべてが Bridge Oxygen ``` である。 ``` Q3 ``` なら ``` Non Bridging Oxygen 1 本 ``` を持つ。 つまり ``` Qn ``` という名称自体は ケイ酸塩特有の用語である。 そのため、 ライブラリ内部では Qn と呼んでいるが、 実際には ``` Bridge 数解析 ``` を行っていると考える方が一般化しやすい。 --- # 2. SiO4 四面体 Neighbor 探索では ``` nearest = 4 ``` が標準となっている。 これは ``` SiO4 ``` 四面体を前提としている。 例えば ``` PO4 ``` 四面体なら 同じ設定で利用できる。 しかし ``` TiO6 AlO6 ``` 八面体では ``` nearest = 6 ``` へ変更する必要がある。 つまり、 Neighbor アルゴリズムは汎用であるが、 既定値は SiO₂ 向けである。 --- # 3. Bond Parameter Topology の ``` Bond ``` は ``` Si-O ``` を前提としている。 平衡距離も ``` Si-O ``` で設定されている。 他材料では ``` P-O Ge-O Al-O ``` などへ変更する必要がある。 これは JSON で対応可能である。 --- # 4. Angle Parameter 現在は ``` O-Si-O Si-O-Si ``` が中心である。 これも ``` PO4 BO3 GeO4 ``` などでは 変更が必要となる。 --- # 汎用化されている部分 逆に、 次の部分は材料に依存しない。 --- ## Structure ``` VaspStructure ``` は 完全に汎用である。 元素にも ネットワークにも依存しない。 POSCAR を扱うだけである。 --- ## Neighbor Search Neighbor 探索も 材料依存ではない。 距離と ``` nearest ``` だけで探索している。 --- ## Network Model ``` Central ↓ Bridge ↓ Second ``` というモデル自体も 比較的汎用である。 例えば ``` P-O-P Ge-O-Ge Al-O-Si B-O-B ``` などにも利用できる。 --- ## Writer Writer は ``` 解析結果 ``` しか見ていない。 したがって ``` Si O ``` という情報は持っていない。 Writer 自体は RMC_POT の書式へ変換するだけなので、 最も汎用性が高い。 --- # どの材料まで利用できるか ## そのまま利用しやすい材料 比較的容易に利用できるもの ``` SiO2 GeO2 P2O5 B2O3 AlPO4 Al-Si-O 系 ``` これらは ``` 架橋酸素 ``` という概念が存在する。 そのため、 Bridge Network という考え方を そのまま利用できる。 --- ## 少し修正が必要な材料 例えば ``` Li2SiO3 Li2Si2O5 Na2SiO3 ``` などでは ``` Modifier Cation ``` が存在する。 この場合 ``` Li Na ``` は Bridge にはならない。 Qn 判定では ``` Si ↓ O ↓ Si ``` だけを見る必要がある。 Neighbor 探索はそのまま使えるが、 解析条件は JSON を調整する必要がある。 --- ## アルゴリズム変更が必要な材料 例えば ``` Li3PO4 Li3PS4 NASICON ``` では ``` Li ``` がネットワーク形成原子ではない。 目的も ``` Li 拡散 Li Site ``` 解析となる。 この場合 ``` Bridge Network ``` という考え方そのものが 解析目的と一致しない。 したがって QnNetworkAnalysis を そのまま利用することは難しい。 --- ## 適用が困難な材料 例えば ``` Fe Ni Cu Pd Pt ``` などの 金属ガラスでは ``` Bridge Oxygen ``` が存在しない。 Qn の概念自体がない。 この場合は Neighbor Graph Voronoi CN Delaunay ``` など、 全く異なる解析アルゴリズムが必要となる。 --- # 今後の拡張 現在の実装は ``` QnNetworkAnalysis ``` という名前になっている。 しかし、 実際に行っている処理は ``` Bridge Network Analysis ``` である。 将来的には ``` NetworkAnalysis ``` という抽象クラスを用意し、 ``` QnNetworkAnalysis PO4NetworkAnalysis OctahedralNetworkAnalysis MetalNetworkAnalysis ``` などへ派生させる構成が考えられる。 Builder は ``` JSON ↓ 解析クラス選択 ``` だけを行えばよい。 これにより、 Writer は変更せずに 解析アルゴリズムだけを差し替えられる。 --- # 本ライブラリの位置付け 本ライブラリは ``` Qn を解析するライブラリ ``` というよりも、 ``` 局所ネットワークを解析し、 RMC_POT の拘束入力へ変換するライブラリ ``` として設計されている。 現在は SiO₂ を対象としているため、 Qn 解析が中心となっているが、 設計そのものは ``` 構造解析 ↓ 抽象ネットワーク ↓ RMC_POT 入力 ``` という三段階構成になっている。 この責務分離により、 - 新しい解析アルゴリズム - 新しい材料 - 新しい拘束形式 を比較的容易に追加できる構成となっている。 以上で、本ライブラリの設計思想、解析アルゴリズム、RMC_POT の FNC/Topology 生成、および SiO₂ を中心とした適用範囲についての解説を終える。