Skip to content

Releases: leeping/geomeTRIC

Compatibility release version 1.0.2

24 Jan 20:07
Compare
Choose a tag to compare

This version enables geomeTRIC to be installed in Python 3.12 environments by cherry-picking the commits from @bennybp 's fix: #174 .

Bugfix release version 1.0.1

31 May 04:14
Compare
Choose a tag to compare

Compatibility fixes for TeraChem:

  • TeraChem input parser now accepts tabs as well as spaces.
  • Automated calls to TeraChem now include two forced keywords: keep_scr yes and scrdir scr.

Major release version 1.0

12 Oct 18:23
Compare
Choose a tag to compare

This release primarily adds transition state optimization, but also includes many other improvements since the release of v0.9.7.2 more than three years ago. Many more exciting features are being prepared for future versions so stay tuned.

Major new features:

  • Transition state optimization has been implemented. Read documentation for additional details.
  • Numerical Hessian calculation and frequency analysis. Includes generation of position and velocity sample points from Wigner distribution.
  • Improved MECI optimization engine to find conical intersections between any number of states, not just two.
  • Subtract net force and torque during optimization. Default behavior is to turn on after a poor-quality step dominated by net translation / rotation is detected.
  • Interface to Gaussian 09/16 (Josh Horton).
  • Interface to ASE for evaluating energies and forces using ASE-supported codes (Tamar Stenczel).

Minor features and improvements:

  • Improved organization of example calculations, unit tests, and logging.
  • Testing coverage has been improved to above 90%.
  • Automated testing using GitHub Actions (Tamar Stenczel).
  • For linear molecules, a regularization term has been added to the rotation quaternion instead of adding a dummy atom.
  • Added an option for the maximum displacement taken over all atoms to be used as the trust radius, rather than the default behavior which uses RMS displacement.
  • Detection of DFT in most Engine subclasses. Print out a warning if DFT is combined with a coordinate system that includes global translation and rotation, because the use of too-small DFT grids could lead to lack of rotational invariance of the energy.
  • Added an option to set minimum trust radius. Its purpose is to prevent artificial convergence of the step size criteria due to the trust radius being too small, and also to prevent shrinking the step size to zero due when a non-smooth PES is encountered.
  • Optimization parameters are now printed out at job start.
  • Orbital guesses are loaded from the last good step when a step is rejected (requires save/load_guess_files to be implemented in Engine).
  • When a previously rejected step is taken again, accept the step to avoid an infinite loop.
  • Add a performance plotting script under tools/ that can be used to compare performance across multiple runs.
  • Constraint violation convergence threshold is now adjustable and part of params; its value is unchanged from the default of 1e-2.
  • When building primitive ICs, add bonds between isolated atoms and the nearest molecule.
  • Improve copying and slicing behavior of Molecule object
  • Note for posterity: Over the course of many tests, the linear angle thresholds and initial value of the Hessian diagonal for dihedral angles were adjusted, tested, then set back to their original values because they did not improve performance, and in some cases degraded performance.

Patch release version 0.9.7.2

28 May 17:01
Compare
Choose a tag to compare

Major changes:

  • License changed to BSD 3-clause license (used to be MIT license)

Minor changes:

  • Improved compatibility with QCFractal
  • Suppress some unnecessary log / warning messages

Bugfix release version 0.9.7.1

10 May 19:38
Compare
Choose a tag to compare

Move sys.exit() calls to main() when exceptions are raised, so that it doesn't crash the QCArchive stack.

Minor release version 0.9.7

08 May 21:56
Compare
Choose a tag to compare

Major changes:

  • Command line option to write out qdata.txt containing energies and gradients along optimization trajectory in ForceBalance-readable format.

Minor changes:

  • Resetting the Hessian when eigenvalues drop below "epsilon" is now the default behavior.

Minor release version 0.9.6

17 Apr 14:36
Compare
Choose a tag to compare

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

Minor release version 0.9.5.1

20 Mar 02:50
Compare
Choose a tag to compare
  • More stable behavior when failed to enforce constraints.
  • Some more unit tests.

Minor release version 0.9.5

13 Mar 16:29
Compare
Choose a tag to compare

Major changes:

  • New feature: Second derivatives of internal coordinates w/r.t. Cartesian coordinates and transformation of Hessians from Cartesian to internal coordinates

  • Improved performance and stability of constrained optimizations that set --enforce

Minor release version 0.9.4

01 Mar 03:57
Compare
Choose a tag to compare

Major changes:

  • Logging now used for all output, allows more flexible control of messages and writing to files by default: @bgobbi
  • OpenMM is now available as a compute engine. Provide a PDB file name using the --pdb argument, and supply a force field or system XML file as the input file.
  • --enforce now accepts a floating point threshold argument and will strictly enforce constraint satisfaction when the deviation from the constraint value falls below the threshold. Still an experimental feature.

Improvements and Fixes:

  • Overall reorganization into a single Optimizer class
  • Added tests and improved coverage
  • QCArchive interface changes