Capping Architecture

In Designing the Fragmenting Component consideration caps gave rise to the need to represent caps.

What is a Cap?

../../../../_images/cap_overview.png

Fig. 10 Overview of capping and the terminology used.

Fig. 10 illustrates how caps arise when large covalently bonded systems are fragmented. More specifically, if there is a bond between atoms \(A\) and \(B\), and there is a fragment which contains \(A\), but not \(B\), then we say we have broken the \(A-B\) bond. When a cap is added to the fragment, it is attached to \(A\), which is termed the “anchor atom”, and the cap replaces \(B\), thus \(B\) is known as the “replaced atom”.

Why Do We Need Caps?

If we assume that we split the electrons in a bond evenly between the anchor and replaced atoms, then any fragment containing a broken bond would be a radical. Since the point of fragmenting a system is usually to simulate part of the larger system, we wish to avoid treating the fragment (otherwise the electronic structure of the fragment would be substantially different). The solution is to approximate the severed bond as existing the replaced atom and an added monovalent atom (usually hydrogen).

Capping Considerations

new state

Caps have state beyond that of a Nucleus object, e.g., they need to know what nucleus they replace.

container

The CapSet class should be container-like with the elements being the individual caps. It is assumed that each cap is only added once (thus it is set-like), but is also indexable. A container is needed to hide optimizations related to

Architecture

../../../../_images/architecture2.png

Fig. 11 Architecture of the capping component.

Fig. 11 shows the architecture of the capping component and how the classes are related. The classes are summarized below.

Cap

Main page: Designing the Cap Class

Introduced to address the new state consideration, the Cap class holds the nucleus or nuclei used to complete the severed bond.

CapSet

Main page: Designing the CapSet Class

Introduced to address the container consideration, the CapSet class models a set of Cap objects.

Summary

new state

Addressed by creating the Cap class.

container

Addressed by creating the CapSet class.