Capping Architecture
In Designing the Fragmenting Component consideration caps gave rise to the need to represent caps.
What is a Cap?
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
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.