Release of MidasCpp 2023.10.0

We are happy to announce the new MidasCpp 2023.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 2023.10.0

Major Changes

  • The MPI parallelization for the response part of the wave function code has been updated to use a new algorithm. The new algorithm has the feature of being deterministic whereas the old implementation was not (as it depended on timing of the processes). Also the new algorithm seems to be more efficient at parallelizing the jobs, providing faster runtimes, when using many ranks. The order in which terms are calculated has been changed, and will thus slighty alter round-off errors, giving slighty different results compared to the old algorithm, also for the non-MPI case. This will give small discrepancies when comparing to calculations made with earlier versions of MidasCpp. This change only affects wave function response calculations, as the part responsible for calculating ground states were already using the new algorithm.

New Features

  • Several KEOs based on general curvilinear coordinate systems are now available. The new KEO variants are based on Taylor expansions of the elements of the G matrix and the extrapotential term, which appear formalism to derive KEOs for general coordinates. Additional options to truncate the Taylor expansion-based KEOs with respect to maximum order of mode-coupling and to screen away negligible 3M- and 4M-mode terms in the KEO are supplied. To construct the KEOs in MidasCpp, files containing the Taylor expansion coefficients are generated by the TNUM software package.
  • TDMVCC with orthogonal modals (oTDMVCC). Orthogonal modals are enabled in a TDMVCC calculation by specifying ACT_ORTHOG_LINEAR under #3 ModalParametrization.

Minor Features

  • The TdH, McTdH, and TDVCC module will now write expectation values in the same format. (The old TdH and McTdH format with contributions from individual modes can still be accessed through `#3 SaveExptvalCo
  • Added new option for #3 OutputFile (under #2 ModVibCoord NormalCoordinates), to change the floating point precision of the printed values.
  • New reader added for reading hessian, gradient, structure, and frequency files from xTB calculations. Works in similar fashion as the TurbomoleReader.
  • The grid for evaluating the VSCF density when using a B-spline basis now has uniform spacing. Before, the grid was uniform from the left bound to the center and from the right bound to the center, but the spacing between point on the left and the right could be different. This means that all ADGA calculations using a B-spline grid in the VSCF have changed. However the obtained fitted potentials are
  • Added a keyword (#3 ExtPotNoShift) under #2 Operator, which facilitates the use of non-MidasCpp-generated potentials in a sum-of-products form and .mop format in MidasCpp calculations. The use of the keyword surpresses the shifting of the PES which is relevant for MidasCpp-generated potentials. At this point this was only tested for calculations using polyspherical and general KEOs.
  • Added tracking and printing to file for modal statistics (non-biorthogonality and non-orthogonality) via the keyword #3 ModalStatistics.
  • Added the option of using DIIS acceleration in CP-ALS.
  • Will now print which LAPACK version is used in the output file, as part of a technical block.
  • Adds an interface to do HOSVD and HOOI of multidimensional tensor data.

Minor Bugfixes

  • Fixed response input bug where a MidasError was thrown if the next input block had whitespace in front of the keyword.
  • Fixed an MPI issue where the data from a Lanczos calculation would not be written to disc for MPI calculations.
  • Fixed an issue where a balanced bi-normalization of eigenvectors of an anti-hermitian matrix could lead to some eigenvectors having NaN-entries.
  • Fixed a bug where the grid for the VSCF density would be constructed in a non-ascending order if the basis bounds have the same sign and a B-spline basis is used.
  • MidasPot should now work with single-precision floats as well.

Changed defaults

  • Time dependent calculations (TDVCC, TdH, McTdH) will now give a MIDASERROR if you do not provide a computation name, an operator name and a basis name in the input file.

Source code structural changes

  • The time dependent part of the code have been collected/unified a bit (similar enum class concepts, and more streamlined CalcDefs through the parent class). The unification of some enum classes has also lead to change some of the input for fx. initial states in TD computation.

Minor enhancements

  • Improved keyword error messaging.
  • Improved printing of energies.

Let us know if you encounter any problems.

social