Addition
- **Support for constraints** with `coord_type: redund`, see [the documentation](https://pysisyphus.readthedocs.io/en/master/coordinate_systems.html#constraints)
- Several new (internal, more or less...) coordinates
- CartesianX, CartesianY, CartesianZ
- TranslationX, TranslationY, TranslationZ and beginnings of rotational coordinates as in geomeTRIC (see [10.1063/1.4952956](https://aip.scitation.org/doi/abs/10.1063/1.4952956) and [geomeTRIC](https://github.com/leeping/geomeTRIC))
- New method to obtain TS-guess based on [10.1002/jcc.23910](https://doi.org/10.1002/jcc.23910) that makes use of the new constraints support. See [tests/test_birkholz_interpolation](https://github.com/eljost/pysisyphus/tree/dev/tests/test_birkholz_interpolation) for an unit test.
- [xtb-python](https://xtb-python.readthedocs.io/en/latest/) calculator (PyXTB)
- [OpenBabel](https://openbabel.org/docs/dev/UseTheLibrary/Python.html) force field calculator, using the python interface
- Ability to specify different isotope masses, e.g., to constrain atoms in IRC runs (see [examples/complex/08_hcn_deuterium_tsopt_irc](https://github.com/eljost/pysisyphus/blob/master/examples/complex/08_hcn_deuterium_tsopt_irc))
- Many improvements for the internal (still experimental) MD module
- Very experimental metadynamics support
- Colvar (CV) gradients from automatic differentiation or explicit implementation
- Added Bond, Bend and Dihedral CVs (periodicity of dihedrals is not yet implemented)
- Plotting of free energy curve/surface for 1 and 2 CVs using `pysisplot --gau [gau1] [gau2]`
- MD can now be started from YAML input
- Plotting with `pysisplot --md` (total energy, conserved quantity, temperature, including running average)
- Fixed CSVR thermostat
- Added Berendsen thermostat
- Dumping to HDF5
- Added [wrapper script](https://github.com/eljost/pysisyphus/blob/master/scripts/pysis_validate_md.py) to validate pysisyphus MD runs with [physical-validation](https://physical-validation.readthedocs.io/en/latest/) (see [10.1371/journal.pone.0202764](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0202764))
- Internal, small (solvent) molecule DB, preoptimized at different levels of theory, that can also be accessed from the Packmol wrapper `pysispack`
- Easy access and usage of benchmark/test sets (Baker, Baker-TS, S22, Birkholz, ...) via benchmarks-subpackage
- Added test set for COS calculations, intended for GFN2-XTB optimizations
- Parser for [Geometries]-section in .molden-files
- `rx_mode` argument for TSHessianOptimizers. Allows for easy specification of complicated approximate eigenvectors, used for
selecting an initial eigenvector for uphill following.
- `rot_disable_pos_curv` and `trans_force_f_perp` arguments for the Dimer calculator. The first one fixes the initial Dimer orientation until the curvature becomes negative. The latter argument controls whether always perpendicular and parallel force components are returned.
- I-PI-Server calculator that supports the I-PI socket protocol. The present implementation works, e.g., with DFTB+ as client. See [examples/opt/10_h2o_xtb_ipi_server](https://github.com/eljost/pysisyphus/tree/dev/examples/opt/10_h2o_xtb_ipi_server) for an example.
Bugfixes
- PrimType could not be specified in YAML input when additional primitive internals were requested
- Velocity is now properly rescaled after removal of v_com
- Dropped assert that prevented runs with multiple geoms
- Wrong final energy for Baker-TS case 15
Miscellaneous
- Printing of additional platform information
- PySCF verbosity can no be controlled with the `verbosity` argument
- First PR from outside of our group, thanks to bapride11, who improved the Dimer calculator (added `rotation_remove_trans`)
- Optimization thresholds are now also plotted in `pysisplot --opt`
- Simplified implementation of the using()-decorator that declares test dependencies
- LinearBends/LinearAngles aren't propagated to the TS guess in `run_tsopt_from_cos`, as this is usually a bad idea. Now only the bonding skeleton is propagated to the TS guess.