Kinetica.jl API
autodE Interface
Conformer Searching
Kinetica.autode_conformer_search!
— Functionautode_conformer_search!(sd::SpeciesData, sid)
Performs a conformer search for the species at sd.xyz[sid]
, updating its geometry.
Constructs an initial guess of species geometry from its SMILES, then runs an autodE conformer search with xTB as the energetic driver. Finds the lowest energy conformer and writes it back to sd.xyz[sid]
.
Requires spin multiplicity and charge for the given species to be cached in sd.cache[:mult][sid]
and sd.cache[:charge][sid]
respectively, which can be achieved by calling get_mult!
and get_charge!
. Failure to do so will result in an error.
Also populates sd.cache
with autodE-derived values for symmetry number and geometry for later use in TST calculations.
Kinetica.autode_NCI_conformer_search
— Functionautode_NCI_conformer_search(sd::SpeciesData, sids[, name="complex"])
Performs a search for the lowest energy non-covalent interacting reaction complex defined by the species in sd
at species IDs sids
.
Constructs an autodE NCIComplex
from the provided species and finds the lowest energy conformation of species. Returns a new ExtXYZ frame containing the geometry of this conformation.
This frame is additionally tagged with information about the complex, such as its spin multiplicity, charge and xTB energy. This information can be found in the resulting frame
's "info" dictionary.
This method should only be performed following calls to autode_conformer_search!
, as it both generates correct species geometries and also populates sd.cache
with neccessary information about the spins and charges of species.
The complexity of this conformer search can be modified by changing KineticaASE.ade.Config
before running any calculations, using the options shown in the autodE documentation (https://duartegroup.github.io/autodE/examples/nci.html).
Species Conversion
Kinetica.autode_to_frame
— Functionautode_to_frame(ademol::Py[, info_dict=nothing])
Converts an autodE Molecule
to an ExtXYZ frame.
Reads atoms from ademol
and constructs an ExtXYZ frame with them. Frame defaults to having an empty info
field, although this can be populated by passing a Dict{String, Any}
to the info_dict
keyword argument.
Kinetica.frame_to_autode
— Functionframe_to_autode(frame::Dict{String, Any}[, mult::Int=1, chg::Int=0])
Converts an ExtXYZ frame to an autodE Molecule
.
Writes a temporary xyz file from frame
and reads it back in with autodE. There doesn't seem to be a way around writing to disk here, as autodE only detects an xyz input when reading a file ending in '.xyz', which can't be replicated with an in- memory IO buffer.
Optionally allows specification of spin multiplicity and charge through the mult
and chg
keyword arguments respectively.
Utilities
Kinetica.autode_get_graph
— Functionautode_get_graph(sd::SpeciesData, sid)
Returns the connectivity graph of a species in sd
at ID sid
.
Connectivity graph is returned as a PythonCall Py
object.
Kinetica.autode_is_isomorphic
— Functionautode_is_isomorphic(graph1::Py, graph2::Py)
Returns whether two autodE connectivity graphs are isomorphic.
Graphs can be obtained from autode_get_graph()
.
Kinetica.autode_frame_symmetry
— Functionautode_frame_symmetry(frame::Dict{String, Any}[, mult::Int=1, chg::Int=0])
Returns the symmetry number and geometric identifier of a given geometry.
Geometric identifier is 1 if a geometry is linear and 2 otherwise. This assumes that the geometry is not monoatomic, in which case the identifier would be 0.