Base#

class autode.transition_states.base.TSbase(atoms: Atoms, reactant: Species | None = None, product: Species | None = None, name: str = 'ts_guess', charge: int = 0, mult: int = 1, bond_rearr: BondRearrangement | None = None, solvent_name: str | None = None)#

Base transition state class. e.g.:

         H   H
         \ /
F ------- C --------Cl
   r1    |   r2              r1 = 2.0 Å
         H                   r2 = 2.2 Å
__init__(atoms: Atoms, reactant: Species | None = None, product: Species | None = None, name: str = 'ts_guess', charge: int = 0, mult: int = 1, bond_rearr: BondRearrangement | None = None, solvent_name: str | None = None)#

Parent transition state class

Parameters:
  • product – If None then mode checking will not be available

  • name – Name of this TS guess

  • charge – Total charge on this TS guess, in units of e

  • mult – Spin multiplicity (2S+1) for S unpaired electrons

  • bond_rearr – Bond rearrangement associated with the transformation reactant -> product

  • solvent_name – Name of the solvent

property active_bond_constraints: DistanceConstraints#

Set all the distance constraints required in an optimisation as the active bonds

Keyed with atom indexes for the active atoms (tuple) and

equal to the constrained value

Return type:

(dict)

property could_have_correct_imag_mode: bool#

Determine if a point on the PES could have the correct imaginary mode. This must have

  1. An imaginary frequency (quoted as negative in most EST codes)

  2. The most negative(/imaginary) is more negative that a threshold, which is defined as autode.config.Config.min_imag_freq

Raises:

(ValueError) – If the bond-rearrangement is not set, so that there is no chance of determining the right mode

property has_correct_imag_mode: bool#

Check that the imaginary mode is ‘correct’ set the calculation (hessian or optts)

Raises:

(ValueError) – If reactants and products aren’t set, thus cannot run a quick reaction profile

property has_imaginary_frequencies: bool#

Does this possible transition state have any imaginary modes?

imag_mode_has_correct_displacement(disp_mag: float = 1.0, delta_threshold: float = 0.3, req_all: bool = True) bool#

Check whether the imaginary mode in a calculation with a hessian forms and breaks the correct bonds

Keyword Arguments:
  • delta_threshold (float) – Required ∆r on a bond for the bond to be considered as forming

  • req_all (bool) – Require all the bonds to have the correct displacements

Return type:

(bool)

Displaces atoms along the imaginary mode forwards (f) and backwards (b) to see if products and reactants are made

Returns:

if the imag mode is correct or not

Return type:

(bool)

autode.transition_states.base.displaced_species_along_mode(species: Species, mode_number: int, disp_factor: float = 1.0, max_atom_disp: float = 99.9) Species#

Displace the geometry along a normal mode with mode number indexed from 0, where 0-2 are translational normal modes, 3-5 are rotational modes and 6 is the largest magnitude imaginary mode (if present). To displace along the second imaginary mode we have mode_number=7

Parameters:
  • mode_number (int) – Mode number to displace along

  • disp_factor (float) – Distance to displace (default: {1.0})

  • max_atom_disp (float) – Maximum displacement of any atom (Å)

Return type:

(autode.species.Species)

Raises:

(autode.exceptions.CouldNotGetProperty | autode.exceptions.AutodeException)

autode.transition_states.base.forward_backward_isomorphic_to_reactant_product(forwards: Species, backwards: Species, reactant: Species, product: Species) bool#

Are the forward/backward displaced species isomorphic to reactants/products?

Parameters:
  • backwards (autode.species.Species)

  • reactant (autode.species.ReactantComplex)

  • product (autode.species.ProductComplex)

Return type:

(bool)

autode.transition_states.base.imag_mode_generates_other_bonds(ts: TSbase, f_species: Species, b_species: Species, allow_mx: bool = False) bool#

Determine if the forward or backwards displaced molecule break or make bonds that aren’t in all the active bonds bond_rearrangement.all. Will be fairly conservative here

Parameters:
  • f_species (autode.species.Species) – Forward displaced species

  • b_species (autode.species.Species) – Backward displaced species

  • allow_mx (bool) – Allow any metal-X bonds where X is another element

Return type:

(bool)