Major changes:
- Minimum energy conical intersection / crossing point optimization will now work for all engines. The CLI has changed: provide a second input file to compute the second state for optimizing the crossing point.
- Optimizations that fail to converge or produce errors in the underlying QC code now raise exceptions and cause geomeTRIC to exit with error codes. yudongqiu
- Internal API for Engine objects has changed. Previously `Engine.calc()` returns the energy and gradient as a 2-tuple. Now it returns a dictionary containing a minimum of 2 key/value pairs as: `{'energy':energy, 'gradient':gradient}`.
- Custom convergence criteria are now available via the CLI and JSON API. Provide the name of a hard-coded set of criteria, and/or custom individual criteria for energy, grms, gmax, drms, dmax. Individual criteria will override the values provided by the set. The default convergence criteria come from the `GAU` set (same values compared to before). Additional criteria sets are defined in the code located here: https://github.com/leeping/geomeTRIC/blob/master/geometric/optimize.py#L799 . jthorton
Minor changes:
- Handlers no longer print newlines by default. Newline characters are added by hand to the end of each logging message where they are needed.
- Improvements to molecule.py and nifty.py imported from other packages
- Improved handling of TeraChem guess files