Limit the number of times a job type is spawned per species
Visualize the imaginary frequency of TSs
If an opt job required troubleshooting, apply the same trsh for the fine opt as well
Relax TS troubleshooting, check if the diameter is now larger
Find the lowest barrier of a molecule (helpful for judging stability and most likely degradation pathway). See Maeda's work (Adeel's mentor, Japan) GRRM
Organize scheduler and Job into smaller functions with tests.
Make a separate troubleshooting module, relocate to Job
Transform the xyz attributes to an array form, also consider isotopes
A species should have a .rmg_mol attribute which is a list with b_mol, s_mol, and mol_list, and a .rd_mol
Implement an algorithm that uses the information of unsuccessful conformers (when a rotor scan finds a lower conformer) and comes up with guesses of what the global minimum could be
Support Force Fields and semi-empirical methods in Gaussian (shouldn't confuse with a composite method, here, too, there's no basis set)
zmat conf improvement: probably no need for zmat comparisons, criteria to consolidate confs: if FF energy and either dmat is identical or atomType dmat is identical.
XTB for conformers, see CREST that does conformational searching (https://xtb-docs.readthedocs.io/en/latest/contents.html#). XTB is also implemented in Entos QM which should be free for academic use, but perhaps it's better to use the standalone version.
TS's and rotor scans: when does a rotor invalidate a TS? Determine which rotors to scan in a TS. Maybe everything 1st degree in distance from an atom that has a large displacement for the imaginary freq shouldn't be a pivotal atom. Determine which rotors break the TS and invalidate them.
Even if a rotor is invalidated, still change the dihedral if the initial conformer isn't the minimum.
Wait for all rotor scan jobs to terminate before troubleshooting rotors, so if two rotor scans find a lower conformer, the one which is lowest will be tried first (and all info will be saved for the global minimum algorithm)
A wiser selection of lowest confs by energy (imipramine case)
For TSs, start w/ the lowest conf selected at the sp level, if a site isn't accessible (no rate could be calculated), try using another conf rated by energy.
Ideally, we'd like all(!) confs up to a certain E_threshold for the stereo algorithm
Reactions
Add dummy RMG families in ARC with templates only (for atom mapping)
TS: check normal displacement modes (code by Colin)
IRC check
Clone and compile GSM automatically in ARC on a selected server, or implement pyGSM.
If a species rotor scan finds a better conformer, make new TS guesses from it (keep old ones for comparison)
Preserve non-reacting sites' chirality in a reaction (this might mean creating a duplicate species, since it could also be the product in a different reaction with different chirality). Important for double-ended TS guess methods. See for example: CNC1C2CCN(C1C)CC2 + HO2 <=> CNC1C2CCN([C]1C)CC2 + H2O2
Implement Mark Payne's suggestion of first running freq and reading the Hess before optimizing a TS in QChem
Certain functionals in QChem don't have parallelization of Hessians, so freq jobs are slow. We might be able to speed it up using IDERIV set to ` (instead of 2)