Module for BondDissociationEnergies.
- class BondDissociationEnergies(molecule_entry, fragment_entries, allow_additional_charge_separation=False, multibreak=False)
Standard constructor for bond dissociation energies. All bonds in the principle molecule are looped through and their dissociation energies are calculated given the energies of the resulting fragments, or, in the case of a ring bond, from the energy of the molecule obtained from breaking the bond and opening the ring. This class should only be called after the energies of the optimized principle molecule and all relevant optimized fragments have been determined, either from quantum chemistry or elsewhere. It was written to provide the analysis after running an Atomate fragmentation workflow.
Note that the entries passed by the user must have the following keys: formula_pretty, initial_molecule, final_molecule. If a PCM is present, all entries should also have a pcm_dielectric key.
molecule_entry (dict) – Entry for the principle molecule. Should have the keys mentioned above.
fragment_entries (list of dicts) – List of fragment entries. Each should have the keys mentioned above.
allow_additional_charge_separation (bool) – If True, consider larger than normal charge separation among fragments. Defaults to False. See the definition of self.expected_charges below for more specific information.
multibreak (bool) – If True, additionally attempt to break pairs of bonds. Defaults to False.
- build_new_entry(frags, bonds)
Simple function to format a bond dissociation entry that will eventually be returned to the user.
Filter the fragment entries.
Fragment and process bonds.
bonds – Bonds to process.
Search all fragment entries for those isomorphic to the given fragment. We distinguish between entries where both initial and final molgraphs are isomorphic to the given fragment (entries) vs those where only the initial molgraph is isomorphic to the given fragment (initial_entries) vs those where only the final molgraph is isomorphic (final_entries)
frag – Fragment