What's Changed
This is a first release after a long long time (8 years!). From now on, we plan to make more frequent releases so that users can more easily keep up with the new development.
Here are a few notable new features that have been added over the last few years:
-
Implementation of alternative Surface Hopping algorithms that don't require analytical non-adiabatic couplings --- Landau-Zener approach (implemented by @suchanj and further developed by @JanosJiri) and Beack-An couplings (implemented by @JanosJiri).
-
Many new interfaces to electronic structure code!
- Interface to BAGEL electronic structure package by @JanosJiri, which allows a SH simulations at CASPT2 level of theory
- Interface to xTB by @juraskov
- Protocol buffer (TCPB) interface to TeraChem by @danielhollas
- ChemShell interface for QM/MM simulations by @postulkj
- and many more, see below for full list ⬇️
We hope you enjoy this release. 🫶 🤘
New features and enhancements 🧑🏭
Major new features ✨
- Landau Zener Surface Hopping by @suchanj in #24
- L-Z SH with TeraChem over MPI interface by @suchanj in #36
- Improvements of LZSH algorithm by @JanosJiri in #159
- Baeck-An couplings for SH by @JanosJiri in #186
- Python script for analyzing TSH trajectories from ABIN. by @JanosJiri in #206
New interfaces 🤝
- xTB interface by @juraskov in #138
- Protocol buffer (TCPB) interface to TeraChem by @danielhollas in #145
- Interface for Landau-Zener SH with MNDO program by @JanosJiri in #155
- BAGEL interface for XMS and MS-CASPT2 in FSSH and LZSH by @JanosJiri in #153
- OPENQP Landau-Zener interface by @JanosJiri in #225
- Interfaces to ChemShell by @postulkj in #208
- Fix wrong gradient state in ChemShell LZ by @postulkj in #217
- Bring back TeraChem file interface by @danielhollas in #165
- DFTB+ interface upgrade by @danielhollas in #179
- Enable classical MD with GLE thermostat by @danielhollas in #90
Minor features 🧪
- Use usleep to wait for TeraChem by @danielhollas in #164
- Support -V/--version command line options. by @danielhollas in #75
- Robust and reproducible PRNG initialization for REMD by @danielhollas in #110
- Rename
&nhcoptinput section to&thermostat(nhcoptstill works as a fallback ifthermostatis not present) by @JanosJiri in #213 - Rename
r.abintorun.abin.shby @danielhollas in #191 - Velocity and geometry units added to output files. by @JanosJiri in #200
- Add
ignore_statein Launda-Zener hopping by @danielhollas in #185 - NaI analytic potential for FSSH by @JanosJiri in #178
- Add Schwenke's gas phase H2O analytical potential by @danielhollas in #166
- H2O CVRQD potential by @danielhollas in #171
- Implement numerical forces for Schwenke water potential by @mbarnfield63 in #174
Bug fixes 🐛
Critical bugs 😰
- Fix restart from old restart files by @danielhollas in #134
- FIX TC Surface Hopping interface, broken since #62 by @danielhollas in #80
- Harden TC-MPI connection (handle empty port case) by @danielhollas in #41
- FIX: Read velocities from file in
r.terabinby @danielhollas in #124 - Use the correct decoherence correction by default by @danielhollas in #104
- LZ with TC fixes #142 by @suchanj in #150
- SH: Fix edge condition in try_hop_nacme_rescale() by @danielhollas in #136
- Fix MOLPRO-SH interface by @danielhollas in #131
Minor bugs 😅
- Langevin thermostats are incompatible with SHAKE by @danielhollas in #156
- Patch atom name comparison for velocity file reading by @suchanj in #43
- LZ zero division fix by @suchanj in #52
- SH: ignore_state for MOLPRO-SH by @danielhollas in #132
- Fix PIMD energy for internal water potentials by @danielhollas in #105
- Re-enable REMD with TC-MPI interface by @danielhollas in #68
- Fix -shiftdih option in analyze_movie by @danielhollas in #40
- Do not try to shutdown TC server if communication was not established by @danielhollas in #139
- Better shebang for
tsh_traj_anal.pyby @JanosJiri in #207 - Ignoring BA sigma for
ignore_stateby @JanosJiri in #197 - Correcting NaI conversion units for NAC by @JanosJiri in #194
- Make sure the last step is written when using dE_S0S1 by @danielhollas in #184
Dev changes 🛠️
Code refactor and improvements ⚙️
- Remove NAB by @danielhollas in #30
- Fix Makefile for Plumed by @danielhollas in #44
- Streamline Makefile by @danielhollas in #45
- Update Fortran MPI interface: "use mpi" instead of "include mpif.h" by @danielhollas in #46
- Clean compiler warnings and fix FFTW and Plumed compilation by @danielhollas in #37
- Remove on-the-fly histogramming by @danielhollas in #39
- Harden PLUMED restart by @danielhollas in #53
- Encapsulate FFTW, squash more compiler warnings by @danielhollas in #56
- Prettify everything! (add formatter) by @danielhollas in #64
- Refactor atom name normalization + test water.F90 by @danielhollas in #65
- Refactor r.abin and r.terabin by @danielhollas in #69
- Ensure implicit none via compiler option by @danielhollas in #77
- Remove stubs and comments for Ehrenfest method by @danielhollas in #87
- Refactor GLE module, re-enable PIGLET test by @danielhollas in #91
- SH: Remove inac==1 option, HST model by @danielhollas in #95
- Create MPI wrapper module by @danielhollas in #97
- Redirect stdout to /dev/null for my_rank>0 by @danielhollas in #100
- SH: Remove itrj index from all arrays by @danielhollas in #103
- Do not print file headers when restarting by @danielhollas in #106
- Mdstep refactor by @danielhollas in #108
- Refactor force_abin by @danielhollas in #109
- Prettify after refactor by @danielhollas in #117
- Fix intent in lz_restin by @danielhollas in #118
- convert all system() calls to execute_command_line() by @danielhollas in #119
- Refactor init by @danielhollas in #121
- Makefile in utils/ by @danielhollas in #127
- SH: Remove NSTMAX by @danielhollas in #125
- SH: Cleanup the main SH routine by @danielhollas in #126
- SH: Tests and minor refactor by @danielhollas in #133
- Mpich update by @danielhollas in #147
- Cleanup functions related to rotational velocity, improve sample input files by @danielhollas in #162
- Vendor fprettify autoformater and add to CI by @danielhollas in #167
- Cleanup create_trajectories.sh with shellcheck by @danielhollas in #177
- Disable spline potential by @danielhollas in #182
- Orca interface cleanup by @danielhollas in #181
- Fixes from Fortitude linter by @danielhollas in #190
- Update fortitude linter to v0.7 by @danielhollas in #201
Build, Testing and Continuous Integration (GitHub Actions)
- Continuous Integration via Github Actions by @danielhollas in #28
- Setup code coverage using Codecov.io by @danielhollas in #35
- Add pFUnit library for unit testing by @danielhollas in #42
- Add PLUMED to Github CI by @danielhollas in #47
- MAJOR fix to tests! by @danielhollas in #51
- Move source to src/ by @danielhollas in #50
- Surface floating-point operation errors in Github CI by @danielhollas in #49
- Fix test.sh by @danielhollas in #54
- Refactor cleaning test directories by @danielhollas in #55
- Tweaks and fixes for GA and Codecov configs by @danielhollas in #58
- Test TeraChem MPI interface by @danielhollas in #62
- Fix GitHub CI by @danielhollas in #67
- Fix compilation with ifort by @danielhollas in #70
- TC tests fixes by @danielhollas in #71
- Refactor error handling by @danielhollas in #72
- Pin pFUnit version by @danielhollas in #78
- Add a basic test for TC-MPI surface hopping interface by @danielhollas in #81
- Add test for Morse potential + refactor by @danielhollas in #84
- Reenable GLE and PIGLE tests by @danielhollas in #88
- Test Double-well potential + refactor by @danielhollas in #92
- Add MTS test by @danielhollas in #93
- Add SPLINE test by @danielhollas in #94
- Add test for global Nosé-Hoover thermostat + refactor by @danielhollas in #96
- Fix the code coverage for mpi error paths by @danielhollas in #101
- SH: test simple velocity rescaling by @danielhollas in #99
- GHA: support Plumed 2.8 by @danielhollas in #102
- Add test for Lennard-Jones / Coulomb potential + refactor by @danielhollas in #98
- Migrate Codecov from bash uploader by @danielhollas in #115
- Include ifort in test suite by @danielhollas in #111
- ERMD test by @suchanj in #120
- Fix intel test by @danielhollas in #169
- GHA: Use CODECOV_TOKEN to reduce failed uploads by @danielhollas in #170
- Add Dependabot config for GHA updates by @danielhollas in #173
- formatter: Add inline python requirements ala PEP 722 by @danielhollas in #180
- CI: Switch intel build to ifx by @danielhollas in #183
- CI: Add separate debug build with GCC 13 by @danielhollas in #187
- CI: Add fortitude linter check by @danielhollas in #202
- Update Ubuntu runners to fix CI by @danielhollas in #204
- Remove PyQT6 dependency in tsh_traj_anal.py by @danielhollas in #214
- Tweak Makefile to so that
make test TEST="CMD PIGLE"works by @danielhollas in #218 - Fix GCC-9 build by @danielhollas in #226
- Update documentation for v1.2 release by @danielhollas in #228
- Preparation for v1.2 release by @danielhollas in #211
New Contributors
- @suchanj made their first contribution in #24
- @juraskov made their first contribution in #138
- @JanosJiri made their first contribution in #155
- @mbarnfield63 made their first contribution in #174
- @postulkj made their first contribution in #208
Full Changelog: v1.1-alpha...v1.2.0