distort-ts
Takes a gaussian output file and constructs 2 gaussian input files by distorting the last geometry of the provided file along the first imaginary frequency and using as template the .com file with the same name as the provided output file. This approach is sometimes termed (unofficialy) as "poorman's irc", but in no case it substitutes a proper IRC calculation.
usage: pyssianutils distort-ts [-h] [--factor FACTOR] [-l | -r]
[-m MARKER | --no-marker]
[-o OUTDIR | --inplace] [-ow]
[--suffix SUFFIX SUFFIX]
files [files ...]
Positional Arguments
- files
Gaussian Output Files
Named Arguments
- --factor
factor used to scale the displacement of the imaginary frequency. In general a small distortion is desired but at the same time, a really small distortion risks having both (forward and reverse) geometries converging to the same minima
Default:
0.13
- -l, --listfile
When enabled instead of considering the files provided as the gaussian output files considers the file provided as a list of gaussian output files
Default:
False
- -r, --folder
Takes the folder and its subfolder hierarchy and creates a new folder with the same subfolder structure. Finds all the .log, attempts to find their matching .com files and creates the new inputs in their equivalent locations in the new folder tree structure.
Default:
False
- -m, --marker
Text added to the filename to differentiate the original file from the newly created one. For example, myfile.com may become myfile_new.com
Default:
'new'
- --no-marker
The file stems are kept
Default:
False
- -o, --outdir
Where to create the new files, defaults to the current directory
- --inplace
Creates the new files in the same locations as the files provided by the user
Default:
False
- -ow, --overwrite
When creating the new files if a file with the same name exists overwrites its contents. (The default behaviour is to raise an error to notify the user before overwriting).
Default:
False
- --suffix
Input and output suffix used for gaussian files
Default:
('.com', '.log')
Usage
This util has two possible applications. On one hand, we may have a minima that has a small imaginary frequency. A relatively standard approach to try to get rid of said imaginary frequency is to follow the vibration in one or both directions and re-optimize the resulting geometries. On another hand, transition state searches are typically complicated and running an IRC on every single candidate transition state might be too expensive, in comparison with two optimizations per transition state. This approach, can help in discarding transition states structures that are not the target of the study by a cheaper computational price. Also, it provides a slightly better guarantee about running the IRC calculation on the non-discarded TSs.
For a given optimization to a transition state, e.g example_ts.log
,
(requiring both, opt
and freq
keywords) and the matching input
example_ts.com
we can generate the geometries from distorting the ts by:
$ pyssianutils distort-ts example_ts.log --no-marker
Processing File example_ts.log
This will generate two files, example_ts_f.com
and
example_ts_r.com
. If we also want to generate a version with a
larger distortion we can
$ pyssianutils distort-ts example_ts.log --factor 0.25 --marker v2
Processing File example_ts.log
Which in turn generates the files example_ts_f_v2.com
and
example_ts_r_v2.com
. Note that if we want to modify the "r" and "f" with
a different text that we prefer we need to change our user defaults, for example:
$ pyssianutils defaults forward_mark FORWARD --section input.distortts
setting [input.distortts][forward_mark] = FORWARD
storing new defaults
$ pyssianutils defaults reverse_mark REVERSE --section input.distortts
setting [input.distortts][reverse_mark] = REVERSE
storing new defaults
with these new defaults, running
$ pyssianutils distort-ts example_ts.log --factor 0.25 --marker v2
Processing File example_ts.log
will instead produce the files example_ts_FORWARD_v2.com
and
example_ts_REVERSE_v2.com
.
All of these input files will look like example_ts.com, with two major
differences: the geometries will be the distorted ones from the ts, and any
suboptions of the opt
present in the original file, will be removed
(typically opt=(calcfc,noeigentest,ts)
will transform into opt
)