# Topology (`*.top`) ## What Is Topology? With `switch = 4`, RMC_POT can use bonded potentials instead of conventional Fixed Neighbour Constraints (FNC). The required input is a **Topology (`*.top`)** file. The RMC_POT Topology format is broadly based on GROMACS topology conventions. However, **it is not a topology intended to run GROMACS molecular dynamics; it is an input file for evaluating bonded potentials in RMC_POT**. --- # Differences from FNC FNC constrains distances only. Topology can describe intramolecular potential terms such as: - Bonds. - Angles. - Dihedrals. - Impropers. - Pairs. It can therefore constrain not only Si–O bonds but also O–Si–O and Si–O–Si angles, an important distinction when preserving glass networks. --- # Bonded Potentials in RMC_POT After proposing a move, RMC_POT evaluates not only agreement with experimental data but also bond energy, angle energy, and other potential terms. A structure with acceptable bond distances but severely distorted angles is therefore less likely to be accepted. This provides a more physically based constraint mechanism than conventional FNC. --- # Topology Structure As in GROMACS, a Topology file consists of sections such as: ```text [ moleculetype ] [ atoms ] [ bonds ] [ pairs ] [ angles ] [ dihedrals ] ... ``` RMC_POT uses only the sections it requires. The current library primarily generates `atoms`, `bonds`, and `angles`. --- # Approach Used by This Library Here, a “molecule” represents a **local network**, not necessarily a discrete chemical molecule. The goal is to represent an extended covalent network as molecules that RMC_POT can process. --- # Bond Generation The bond list is constructed from Central → Bridge connections generated by `QnNetworkAnalysis`. For SiO₂, Si–O connections are bonds; Bridge–Bridge and Si–Si connections are not treated as bonds. --- # Angle Generation Angles such as O–Si–O and Si–O–Si are constructed from the bond information by identifying shared atoms: ```text Bonds ↓ Find shared atoms ↓ Angles ``` For example, an O → Si → O sequence produces an O–Si–O angle. --- # Bond Parameters Topology bonds require an equilibrium distance and a force constant, commonly denoted `r0` and `kb`. The library reads these values from `bond_parameters` in JSON and writes them to the Topology file. --- # Angle Parameters Similarly, angles require an equilibrium angle `θ0` and force constant `kθ`. A representative tetrahedral O–Si–O angle in SiO₂ is 109.47°. --- # Atomic Information The `[ atoms ]` section includes information such as atom type, charge, and mass. These values are also obtained from JSON configuration. The current implementation assumes SiO₂-oriented settings. --- # Unit Topology `write_unit_topology()` generates a Topology for each **local unit**, such as an SiO₄ tetrahedron. Bonds and angles are retained within each unit, but no bonds are introduced between units. This makes it possible to preserve local structures while leaving degrees of freedom for rearrangement of the overall network. --- # Network Topology `write_network_topology()` outputs the entire analyzed network as one Topology. A connected Si–O–Si–O–Si network is then represented using bonded potentials across the network. This is useful when RMC refinement must preserve network connectivity. However, the constraints may be too strong if only local structural units need to be preserved. --- # Unit Topology vs. Network Topology | Property | Unit Topology | Network Topology | |---|---|---| | Constrained region | Local structure | Entire network | | Bonds | Within each unit only | Across the entire network | | Angles | Within each unit only | Across the entire network | | Degrees of freedom | Higher | Lower | | Network rearrangement | Possible | Less likely | The appropriate choice depends on the objective of the RMC calculation. --- # Relationship to the SiO₂ Implementation The current implementation assumes a Si → O → Si network. Bond, angle, and unit construction are therefore oriented toward SiO₂. For example, `nearest = 4` and O–Si–O angles assume SiO₄ tetrahedra. Although the Topology writer itself is general-purpose, the current network builder implements algorithms oriented toward SiO₂. --- # Role of RmcConstraintWriter The writer converts bond, angle, and atomic information produced by `QnNetworkAnalysis` into RMC_POT Topology input: ```text Analysis ↓ Abstract network ↓ Topology ``` Because the responsibilities are separated, Topology format changes or extensions to RMC_POT can be accommodated without modifying the network-analysis algorithm. The next chapter explains the JSON configuration and its relationship to each class, followed by the current SiO₂ implementation and possible extensions to other materials.