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₂ 実装と他材料への展開について解説する。