Releases: Quantum-Dynamics-Hub/libra-code
v5.12.0
What's Changed
Human-generated changelog:
- The full workflow for NBRA and non-NBRA! calculations with TD-DFTB excited states is now available, although needs more testing (main contributor: Alexey Akimov)
- Added multiple auxiliary functions for reading the NA-MD-related output of DFTB+ calculations (main contributor: Thomas Niehaus)
- Extensive testing of Libra/MOPAC interface for INDO-S/CI excited state calculations (main contributor: Kevin Walsh)
- The new approaches accounting for spin-adaptation in the CI expansion of excited state, truncation of the CI expansion and using controlled space of occupied orbitals in the SD definition are now added to Libra/MOPAC and Libra/DFTB+ workflows, simplifications for singlet excited states are also added (contributors: Alexey Akimov, Kevin Walsh, Thomas Niehaus)
- Added general functionality to construct arbitrary spin-state CSFs, added the workflows to proper calculation of SD, CSF, and CI time-overlaps - the older
mappingfunctions are deprecated, new procedures now ensure consistent ordering of orbitals in Slater determinants and the corresponding sign effect, to prevent arbitrary phases (main contributor: Alexey Akimov) - Finalized implementation of the kc-RPMD approach (main contributor: Victor Suarez)
- Improvements in HEOM: Matsubara frequencies can be complex now, initial tests of other spectral densities in HEOM (main contributor: Victor Suarez)
- Improvement of HEOM calculations: more efficient hierarchy generation, possibility to initialize the calculations using existing auxiliary density matrices, and parallelism (main contributor: Victor Suarez)
- Added less frequent printing of computed properties in TSH and HEOM calculations, which is particularly useful for long runs (main contributor: Victor Suarez)
- Implemented Local Diabatic Representation (LDR) approach, related to the one of Bing Gu (main contributor: Daeho Han), including functionality for grid sampling/construction, property calculations (populations/coherences), etc.
- Added module for generation of quasi-regular grids (implemented by Alexey Akimov using Fortran code provided by Vladimir Mandelshtam)
- Clean up to remove multiple compilation warnings (main contributor: Simone Balducci)
Automatically-generated changelog:
- Finished incorporating new single excitation specific functions to mopac workflow by @ktwalsh in #264
- Add more analyses in the LDR dynamics by @DaehoHan in #265
- Added "nprint" control parameter to print every nprint timesteps, default to 1. Removed redundant KC-RPMD "d" parameter consistent with 2026 paper. Commented in unit description for KC-RPMD parameters. by @suarez-va in #266
- Some readers for DFTB output with example usage by @thomas-niehaus in #268
- Add CMake build files to .gitignore by @sbaldu in #269
- Fix numerous compilation warnings by @sbaldu in #270
- HEOM added ADM print and initialization by @suarez-va in #271
- Fixed KC-RPMD compilation issues. new HEOM features documented. HEOM gen_heirarchy() now very efficient, matsubara frequencies switched to complex typing. by @suarez-va in #272
New Contributors
- @thomas-niehaus made their first contribution in #268
- @sbaldu made their first contribution in #269
Full Changelog: v5.11.0...v5.12.0
v5.11.0
Human generated release notes
- Polariton model for Shin-Metiu Hamiltonian (Yuchen Wang of Norah Hoffmann's group)
- kc-RPMD for classical nuclear limit is fully-functional (Victor Suarez of Joshua Kretchmer's group)
- added Langevin thermostat (Victor Suarez of Joshua Kretchmer's group)
- citools module for handling configuration state functions CSFs of different spin multiplicities, as well as related functions such as recursive calculation of Clebsch-Gordan coefficients, determinants reordering, and preparation of determinant-to-CSF transformation matrices, interface for MOPAC (Alexey Akimov)
- simplified version for generating CSF coefficients of the singlet states (Kevin Walsh)
- large collection of TSH recipes (Mohammad Shakiba of Alexey Akimov's group)
- fix of the DISH approach for Schwartz 1 decoherence time scheme (Mohammad Shakiba of Alexey Akimov's group)
- Read-the-docs initiation, revised overall README.md and added related information pages (Alexey Akimov)
- latest updates of the Bohmian module, PyTorch Hamiltonians for exact DVR calculations
Autogenerated release notes
What's Changed
- add files for Shin–Metiu-Polariton model by @YuchenWang2015 in #257
- Revision of step 3 mapping function and printing of average decoherence rate by @MohammadShakiba in #258
- Devel by @suarez-va in #259
- upload Shin_metiu_dvr model by @YuchenWang2015 in #260
- add a section for saving .h5 file by @YuchenWang2015 in #261
- Recipes for TSH + DISH with Schwartz 1 by @MohammadShakiba in #262
- Added single excitation specific functions to citools by @ktwalsh in #263
New Contributors
- @YuchenWang2015 made their first contribution in #257
- @ktwalsh made their first contribution in #263
Full Changelog: v5.10.1...v5.11.0
Libra v5.10.1: Bohmian dynamics, PyTorch DVR, FISH, revised atomistic workflows
Human-added content
Major additions:
- Bohmian dynamics module in PyTorch - uses multivariate Cauchy-Lorentz trajectory basis functions to represent the probability density, automatic differentiation to compute derivatives needed to construct quantum potential and differentiate it to obtain quantum forces, uses partial vectorization for efficiency; this release comes with the revision of the manuscript "Stable Direct Dynamics with Quantum Potential: Lorentzian Trajectory Basis Function is All You Need" that describes the methodology and shows the method's performance;
- Highly-efficient DVR solvers via PyTorch - implement exact numerical solution of TD-SE for adiabatic and non-adiabatic dynamics. Way faster than the previous C++ implementation. Very convenient to use as well.
- NA-MD recipes - a collection of standardized recipes defining various quantum-classical methodologies now comes with Libra. This should minimize the inconsistencies of defining such recipes by different users.
- FISH (fully-integrated surface hopping) - this method was already available in the previous version, but now it is finalized with few minor fixes. The relevant publication is now available: Han, D.; Shakiba, M.; Akimov, A. V. "Fully-Integrated Surface Hopping as Quantum Decoherence Correction in Nonadiabatic Dynamics" J. Phys. Chem. Lett. 2025, 16, 28, 7168–7176
- LDR (local diabatic representation) approach for exact quantum dynamics on a grid - a new module written in PyTorch is added and is nearly finalized, the corresponding article in preparation.
- Interface to ODIN code for correct calculations of time-overlaps with DFTB+ - this is now added, the corresponding DFTB+/Libra interface and workflows are revised. In general, this helps obtain significantly more reasonable results than before, but care should be exercised when using SK files - only correctly-generated ones can be used.
- Revised atomistic workflows - in particular, the calculations of the overlaps and time-overlaps of Slater determinants is now corrected, the mapping functions are revised, the phase factors previously given in the code are dropped. This does affect the calculations of TD-DFT overlaps and time-overlaps, and helps minimize the presence of "sudden jumps" in population dynamics. At the same time, our tests show that previous workflow still yielded close numerical results in many cases
Minor changes and additions:
- improved documentation, especially regarding the installation procedures,
- fixed bugs in Ferretti's model
- added several model Hamiltonians written with PyTorch
- fixed CITATION.cff for Zenodo compatibility
Auto-generated content
What's Changed
- Debug the Ferretti's model by @DaehoHan in #254
- Added the LDR solver with PyTorch by @DaehoHan in #255
- Fix coefficient initialization in LDR by @DaehoHan in #256
Full Changelog: v5.9.0...v5.10.0
Full Changelog: v5.10.0...v5.10.1
Libra v5.10.0: Bohmian dynamics, PyTorch DVR, FISH, revised atomistic workflows
Human-added content
Major additions:
- Bohmian dynamics module in PyTorch - uses multivariate Cauchy-Lorentz trajectory basis functions to represent the probability density, automatic differentiation to compute derivatives needed to construct quantum potential and differentiate it to obtain quantum forces, uses partial vectorization for efficiency; this release comes with the revision of the manuscript "Stable Direct Dynamics with Quantum Potential: Lorentzian Trajectory Basis Function is All You Need" that describes the methodology and shows the method's performance;
- Highly-efficient DVR solvers via PyTorch - implement exact numerical solution of TD-SE for adiabatic and non-adiabatic dynamics. Way faster than the previous C++ implementation. Very convenient to use as well.
- NA-MD recipes - a collection of standardized recipes defining various quantum-classical methodologies now comes with Libra. This should minimize the inconsistencies of defining such recipes by different users.
- FISH (fully-integrated surface hopping) - this method was already available in the previous version, but now it is finalized with few minor fixes. The relevant publication is now available: Han, D.; Shakiba, M.; Akimov, A. V. "Fully-Integrated Surface Hopping as Quantum Decoherence Correction in Nonadiabatic Dynamics" J. Phys. Chem. Lett. 2025, 16, 28, 7168–7176
- LDR (local diabatic representation) approach for exact quantum dynamics on a grid - a new module written in PyTorch is added and is nearly finalized, the corresponding article in preparation.
- Interface to ODIN code for correct calculations of time-overlaps with DFTB+ - this is now added, the corresponding DFTB+/Libra interface and workflows are revised. In general, this helps obtain significantly more reasonable results than before, but care should be exercised when using SK files - only correctly-generated ones can be used.
- Revised atomistic workflows - in particular, the calculations of the overlaps and time-overlaps of Slater determinants is now corrected, the mapping functions are revised, the phase factors previously given in the code are dropped. This does affect the calculations of TD-DFT overlaps and time-overlaps, and helps minimize the presence of "sudden jumps" in population dynamics. At the same time, our tests show that previous workflow still yielded close numerical results in many cases
Minor changes and additions:
- improved documentation, especially regarding the installation procedures,
- fixed bugs in Ferretti's model
- added several model Hamiltonians written with PyTorch
Auto-generated content
What's Changed
- Debug the Ferretti's model by @DaehoHan in #254
- Added the LDR solver with PyTorch by @DaehoHan in #255
- Fix coefficient initialization in LDR by @DaehoHan in #256
Full Changelog: v5.9.0...v5.10.0
v5.9.0
What's Changed
Human-generated description
- this version contains the finalized version of QTSH - see the paper here: Han, D.; Martens, C. C.; Akimov, A. V. "Generalization of Quantum-Trajectory Surface Hopping to Multiple Quantum States" J. Chem. Theory Comput. 2025 20, 5022-5042 https://doi.org/10.1021/acs.jctc.4c01751
- the restricted path integral (RPI) code and workflow is up - the manuscript is about to be submitted
- autopep8 tool applied to all of the Pyhon files to cleanup the style
- ongoing KC-RPMD developments
- the TRPES ("time-resolved photoelectron spectrogram") plotting script is added
- active state calculations from the LD - a small but potentially far-going fix
- added plotting of UV-vis/PDOS/energy vs time and population dynamics
- added Gu-Franco decoherence scheme
- added correct GFSH (the prior one conceptually aligns with the GFSH, but may be technically different, which is indeed seen in some tests!)
- some SQC and MMST variables and functions are added, but they are still in their infancy
Automatically-generated info
- Debug the phenol model by @DaehoHan in #235
- Add coherence indicator calculating and plotting routines by @DaehoHan in #236
- Update base_matrix for AppleClang by @foxtran in #234
- Updated Code: added kcrpmd auxiliary variable variables as double vector by @suarez-va in #240
- Update CMakeLists by @foxtran in #237
- add fucntion for UV-Vis spectrum by @SpringDabao in #238
- added kcrpmd_vars_status and allocate_kcrpmd() to libdyn.cpp, added placeholders for kcrpmd effective potential by @suarez-va in #241
- Add the force options in QTSH by @DaehoHan in #243
- Added new generate_m_matrices() function, temporarily just copying children hamiltonian by @suarez-va in #245
- added remaining KC-RPMD potential functions, effective potential now working by @suarez-va in #247
- step4 plot by @KosarYasin in #249
- Add the missing scipy.sparse dependency to trpes.py by @DaehoHan in #250
- Restructured code to minimize number of function calls, added in KCRPMD forces. Created new RPMD file for general RPMD calls by @suarez-va in #252
- Add the RPI workflow by @DaehoHan in #253
New Contributors
- @suarez-va made their first contribution in #240
- @KosarYasin made their first contribution in #249
Full Changelog: v5.8.1...v5.9.0
Libra v5.8.1
What's Changed
Human-generated description:
- Cleaned up and optimized the F-tracking and tNAC phase correction methodologies, added some experimental functions related to it;
- libint2 wrapper of higher moments in GTO basis (x, y, z, x^2, xy, ... z^3);
- important bug fixes in the molint implementation of some integrals with Gaussian functions, added the corresponding documentation/derivations;
- ChatGPT-generated implementation of the Munkres-Kuhn algorithm;
- Added new model Hamiltonian for phenol molecule;
- on-going development of the QTSH methodology
- added a good amount of testing modules for pytest (at the Python level)
- multiple minor and not-so-minor fixes and language style impovements, adding clang support by @foxtran
Automatically-generated info:
- Add diabatic hop features to FSSH-2 and FSSH-3 by @DaehoHan in #218
- Skipping the active state computation in the other rep if not necessary by @DaehoHan in #219
- Spin adapted configuration + bug fix for saving sd files by @MohammadShakiba in #221
- bug fix for CP2K pdos labels returning empty list by @MohammadShakiba in #222
- Fix the loop in printing 2D wavepackets by @DaehoHan in #226
- Minor fixes by @foxtran in #224
- Fix some compilation warnings/error by @foxtran in #227
- Fix qtag_potential: two overloads with and without AA-BB-CC by @foxtran in #228
- add function for fitting population by @SpringDabao in #231
- Add deco time test by @DaehoHan in #230
- New Libint functions for computing the integrals in GTOs with Cartesian moment operators by @MohammadShakiba in #229
- Bug fix for step 2 file saving and extension of states Slater determinants in step 3 by @MohammadShakiba in #233
New Contributors
Full Changelog: v5.8.0...v5.8.1
Libra v5.8.0: F-tracking and simplified NAC phase correction
The main changes
-
The new F-tracking and simplified NAC phase correction are added and tested (the main reason for this release)
-
Libra/MOPAC interface is developed but is yet to be demonstrated;
-
QTSH is implemented but is yet to be demonstrated
-
A critical bugfix in the step3 of Libra/cp2k interface - to possibly help solve the sudden jump problems we have observed recently
-
The documentation of the main function in
libra_py.dynamics.tsh.computeis updated and is now consistent with the parameters of thedyn_control_paramsclass. -
Surface hopping in diabatic representation is added and is being tested by Daeho Han; within this development, new variable to hold active diabatic state indices for all trajectories are added. Several ways of computing diabatic populations are added: based on counting trajectories and on transformation of adiabatic SE or SH populations.
-
Added auxiliary function to determine the active space selection in step3 of Libra/cp2k interface.
More formal changelog:
- Update QTSH by @DaehoHan in #212
- Bug fixes for ML workflow, step3, CP2K methods and data reading for BLLZ by @MohammadShakiba in #213
- Added an auxiliary function to step 3 for generating new active spaces based on the number of occupied and unoccupied orbitals by @MohammadShakiba in #214
- Reuse the rep_sh param to consider hops in the diabatic representation by @DaehoHan in #215
- Bug fixes for step3 many-body by @MohammadShakiba in #216
Full Changelog: v5.7.1...v5.8.0
Libra v5.7.1
Full Changelog: v5.7.0...v5.7.1
Libra v5.7.0
The major additions
- the new FSSH-3 methodology is implemented
- the FSSH-2 of Araujo et al. is implemented (with slight changes compared to the published version, but likely this is what was intended)
- added Jasper-Truhlar criterion of velocity reversal on frustrated hops
- added MD trajectory alignment function/script which processes the MD trajectory to remove the center of mass translation and the overall rotation of the molecule as whole (this is a Python re-interpretation of the Fortran code found in the auxiliary tools of NWChem)
- added a number of published spin-boson (and their many-state generalization) models withing the GLVC (generalized linear vibronic coupling models)
- implemented the Ohmic and Drude-Lorentz baths discretizations
- implemented a correct way of computing SH-based diabatic populations of states
- revised the way to initialize adiabatic states when the initial conditions are chosen in the diabatic representation
- added a number of matrix decompositions and linear equations solvers (based on matrix decompositions) from Eigen 3 code
- fixed bugs in sum_col and sum_row functions of generic matrix class
- significantly accelerated calculations of the matrix of the SD overlaps but using numpy methods in
step3module of the NBRA workflow (see below) - implemented a lot of the functions and workflow for the ML-based prediction of KS Hamiltonians (see below)
- ongoing work on clarifying the MFSD (see below)
Auto-generated updates
- Update MFSD by @DaehoHan in #207
- Use act_states for saving the reference state of MFSD by @DaehoHan in #208
- Kohn-Sham Hamiltonian mapping with machine-learning first version by @MohammadShakiba in #209
- Revision of step3 and high-throughput implementation of KS ML map approach by @MohammadShakiba in #210
Full Changelog: v5.6.0...v5.7.0
v5.6.0
Final version of the XF-based methods (SHXF, MQCXF, and MFXF), coming along with the manuscript submission.
Major implementation was done already in the previous implementations. The present version ensures the consistency of some underlying transformation.
What's Changed
- XF propagations for the LD scheme by @DaehoHan in #200
- New functions in data_read and molden_methods by @MohammadShakiba in #201
- Update the XF algorithms by @DaehoHan in #202
- Fixing time propagation in XF by @DaehoHan in #204
- Fix the reordering of phase gradients by @DaehoHan in #205
- Elaborate on the comments about the td widths by @DaehoHan in #206
Full Changelog: v5.5.0...v5.6.0