Topology (*.top)
Topology とは
RMC_POT の switch = 4 では、
従来の Fixed Neighbour Constraint (FNC) の代わりに
Bonded Potential を利用できる。
このとき使用する入力ファイルが
Topology (*.top)
である。
RMC_POT の Topology は、 基本的には GROMACS の topology を基に設計されている。
しかし、
GROMACS の MD を実行するための topology そのものではなく、RMC_POT が Bonded Potential を計算するための入力ファイル
である点に注意が必要である。
FNC との違い
FNC は
距離
のみを拘束する。
一方 Topology では
Bond
Angle
Dihedral
Improper
Pair
など、 分子内ポテンシャルを利用できる。
したがって
Si-O
だけではなく
O-Si-O
Si-O-Si
まで拘束できる。
これは ガラスネットワークを保持する上で 非常に大きな違いとなる。
RMC_POT における Bonded Potential
RMC_POT は Move を生成した後、
実験データへの適合度
だけではなく
Bond Energy
Angle Energy
...
も同時に評価する。
そのため
距離だけ合っているが
角度が崩壊している
ような構造は 受理されにくくなる。
これは 従来の FNC よりも 物理的な拘束方法である。
Topology の構成
Topology は GROMACS と同様に
[ moleculetype ]
[ atoms ]
[ bonds ]
[ pairs ]
[ angles ]
[ dihedrals ]
...
という Section から構成される。
RMC_POT は 必要な Section のみを利用する。
本ライブラリでは 現在主に
atoms
bonds
angles
を生成している。
本ライブラリでの考え方
Topology は
分子
を書くためのものではない。
ここでいう Molecule は
局所ネットワーク
を意味する。
つまり
巨大な共有結合ネットワーク
を
RMC_POT が扱える Molecule
へ変換することが目的である。
Bond の生成
QnNetworkAnalysis が生成した
Central
↓
Bridge
情報から
Bond List
を作成する。
SiO₂ では
Si
↓
O
だけが Bond となる。
Bridge 同士や
Si-Si
は Bond としない。
Angle の生成
Bond 情報から
O-Si-O
Si-O-Si
角度を生成する。
これらは
Bond
↓
共有原子探索
↓
Angle
という流れで作られる。
例えば
O
↓
Si
↓
O
なら
O-Si-O
Angle が生成される。
Bond Parameter
Topology の Bond には
平衡距離
力定数
が必要となる。
本ライブラリでは JSON に定義された
bond_parameters
を利用して出力する。
一般には
r0
kb
が対応する。
Angle Parameter
Angle も同様に
θ0
kθ
を利用する。
例えば SiO₂ なら
O-Si-O
109.47°
などが代表的な値となる。
Atom 情報
Topology の
[ atoms ]
には
Atom Type
Charge
Mass
などが記述される。
これらも JSON 設定から取得する。
現在の実装では SiO₂ 用設定を利用することを前提としている。
Unit Topology
現在のライブラリでは
write_unit_topology()
によって
局所 Unit
単位で Topology を生成する。
これは
SiO4
四面体などを 独立 Unit として扱うことを目的としている。
Unit 内では
Bond
Angle
を保持するが、
Unit 間には Bond を張らない。
そのため
局所構造は保持しながら
ネットワーク全体には自由度を残す
という拘束が可能となる。
Network Topology
一方
write_network_topology()
では
解析された Network 全体を 一つの Topology として出力する。
つまり
Si-O-Si-O-Si
というネットワーク全体を Bonded Potential として扱う。
こちらは
ネットワークを維持したまま
RMC を行いたい
場合に利用する。
一方で、
局所構造だけを拘束したい場合には 拘束が強すぎる可能性がある。
Unit Topology と Network Topology の違い
項目 |
Unit Topology |
Network Topology |
|---|---|---|
拘束対象 |
局所構造 |
ネットワーク全体 |
Bond |
Unit 内のみ |
全 Network |
Angle |
Unit 内のみ |
全 Network |
自由度 |
高い |
低い |
ネットワーク組換え |
起こり得る |
起こりにくい |
どちらを利用すべきかは、 RMC の目的によって異なる。
SiO₂ 実装との関係
現在の実装は
Si
↓
O
↓
Si
ネットワークを前提としている。
したがって
Bond
Angle
Unit
の作り方も SiO₂ を想定した実装になっている。
例えば
nearest = 4
や
O-Si-O
Angle は SiO₄ 四面体を前提としている。
そのため、 Topology Writer 自体は汎用であるが、 現在の Network Builder は SiO₂ 向けアルゴリズムである。
RmcConstraintWriter の役割
Topology Writer は
QnNetworkAnalysis
が生成した
Bond
Angle
Atom 情報
を
RMC_POT が理解できる
Topology
へ変換するだけである。
つまり
解析
↓
抽象ネットワーク
↓
Topology
という責務分離になっている。
この設計により、
Topology の書式変更や RMC_POT の拡張があっても、 ネットワーク解析アルゴリズムを変更せずに対応できる。
次章では、 JSON 設定ファイルと各クラスの対応、 および現在の SiO₂ 実装と他材料への展開について解説する。