Qn ネットワーク解析

目的

RMC_POT の FNC や Topology を作成するためには、

「どの原子同士が局所構造を構成しているか」

を決定する必要がある。

本ライブラリでは、この局所構造を

Central
      │
   Bridge
      │
Second

という三層構造として定義する。

SiO₂ の場合は

Si
 │
 O
 │
Si

となる。

この構造をネットワークとして解析し、 Qn 値や Bond 情報を生成する。


ネットワークモデル

本ライブラリでは ネットワークを

Central ----- Bridge ----- Second

という一般形で表現する。

各原子種は JSON から指定される。

例えば SiO₂ では

Central : Si
Bridge  : O
Second  : Si

である。

この設計により、 解析アルゴリズム自体は SiO₂ 固有ではない。


Qn の定義

Qn は

「Central に結合している Bridge のうち、 別の Central とも結合している Bridge の本数」

として定義される。

例えば

      Si
      │
O─────┼─────O
│           │
Si         Si

では

Q2

となる。

Bridge が他の Central に接続していない場合は Non-bridging Oxygen (NBO) とみなされる。


解析手順

解析は概ね次の順で行われる。

POSCAR

↓

原子種抽出

↓

Central 抽出

↓

Bridge 抽出

↓

Second 抽出

↓

Central-Bridge 探索

↓

Bridge-Second 探索

↓

Bridge 判定

↓

Qn 判定

↓

Bond 情報生成

↓

Angle 情報生成

↓

FNC Pair 生成

1. 原子種抽出

POSCAR に含まれる原子種を読み込み、

JSON に定義された

  • central_types

  • bridge_types

  • second_types

へ分類する。

この段階では距離判定は行わない。


2. Central–Bridge 探索

Central と Bridge の近傍探索を行う。

探索方法は

cutoff

または

nearest

の二種類である。

cutoff

距離範囲内のすべてを採用する。

first_min
~

first_max

の範囲で判定する。

nearest

距離条件を満たした候補から

N 個

だけ採用する。

SiO₂ では

nearest = 4

を利用することが多い。

これにより

SiO4

四面体が安定して得られる。


3. Bridge–Second 探索

Bridge から見た Second 原子を探索する。

方法は二種類ある。

second_use_first_network = false

Bridge を中心に 改めて距離探索を行う。

O

↓

Si

を距離だけで探索する。

最も単純な方法である。


second_use_first_network = true

Bridge–Second を 新たに探索しない。

すでに求めた

Central

↓

Bridge

のネットワークを反転し、

Bridge

↓

Second

を構成する。

こちらの方が

Central–Bridge

と

Bridge–Second

の整合性が保たれるため、 SiO₂ ではこちらを推奨する。


4. Bridge 判定

Bridge ごとに

Bridge

↓

Second

が何個存在するか調べる。

Central 自身は除外し、

別の Central

へ接続しているものだけを

Bridge

とみなす。


5. Qn 判定

Central ごとに

Bridge

↓

別 Central

となっている Bridge を数える。

例えば

4 本

↓

Q4
3 本

↓

Q3
2 本

↓

Q2

となる。

Qn は Bridge の本数ではなく、

Bridge のうち

「他の Central と共有されているもの」

だけを数える。


解析結果

解析後には 次の情報が生成される。

Central ごとの Qn

Bridge 情報

Bond 情報

Angle 情報

FNC Pair

これらは RMC の書式とは独立した 抽象ネットワーク情報である。

以降の Writer は この情報だけを利用して RMC_POT の

  • FNC

  • Topology

を書き出す。

つまり

解析

↓

抽象ネットワーク

↓

RMC ファイル

という三段階構成になっている。

これにより、

解析アルゴリズム

と

出力フォーマット

を完全に独立させている。