Release of MidasCpp 2022.10.0

We are happy to announce the new MidasCpp 2022.10.0 release. Just follow the instruction in the manual or directly go to our GitLab page to clone the git repository or to download the source code.

Midas 2022.10.0

This update features some refactoring of the PES code of MidasCpp, where some thing have been streamlined. Most of the updates are related to GPR-ADGA, making the control flow simpler, and can potentially facilitate future code improvements further down the road. As a by-product of this some GPR keywords have also changed significantly in this release. See the MidasCpp manual for details. Furthermore some keywords have been updated/changed to be more verbose. Other notable updates (in addition to the PES/GPR code restructuring):

New Features

  • Adds a new paradigm vfork_exec for spawning new processes. This will use the same code path as the fork_exec option, except it uses a vfork() call instead of a call to fork().
  • Adds keyword #2 RotationScheme for #1 SinglePoint with the options Kabsch and Legacy. This will determine the algorithm used for finding the rotation matrix between the structures given by an external singlepoint program and the structure saved in MidasCpp. Kabsch should be more numerically stable, giving a more pure-rotation matrix. Legacy is still the default option.
  • Adds the new .mmetamol file format, for molecular files. This is used e.g. for providing a fragmentet molecule for a DIF calculation.
  • Changes the #2 ModSys keyword under #1 System to be #1 ModSys, and thus a level 1 keyword on its own.
  • Updated the Watson option of the #3 KineticEnergy keyword. Now takes two extra sub-keywords, #4 Coriolis and #4 PseudoPot, defining how to treat the Watson Keo. Both can be set to NONE, EQUILIBRIUM, or (mode) EXPANDED. Default is EXPANDED.
  • New keywords related to merging multilevel PES. See manual for details.

Minor Features

  • Updated to be compatible with lapack 3.10.1
  • Transformer code now uses MPI_Allreduce instead of a loop over MPI_Bcast.

Minor Bugfixes

  • When writing the EsPoint files containing electronic single point results, the Q labels now match the labels on the Point_Prop and Potential files. These match the labels given to modes on input.
  • A memory bug when reading coriolis matrices has been fixed.
  • Using #3 LimitModalBasis under #2 McTdH would previously cause an error due to a bug. This has been fixed.
  • Fixed a rare bug, where for some MPI libraries printing MPI Library version to the output file could go into an infinite loop.
  • Fixed a bug with reading Gradient and Hessian information in the GPR module.

Changed defaults

  • unit_tests are no longer run as part of allwf, and Instead only unit_tests_seed is run. unit_tests can still be run manually by doing ./TEST unit_tests.

Let us know if you encounter any problems.

social