Libra with TC-NBRA, MASH, FSSH2, revDISH, revised TSH and Ehrenfest, phase-corrected exact calculations #199
Closed
alexvakimov
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
1. Structural changes and paradigm changes
Restructured the libra_py library to set all the package-specific modules into a separate sub-library. Adapted importing
libraries based on packages folder
Simplified the interface of hop proposal, hop acceptance, and hop handling functions, as well as dish - these all
are now taking the dyn_variables input rather than individual variables of all kinds
Moved DISH coherence time updates inside dish function, added other decoherence options although they are not doing anything - just for completeness
2. New major capabilities
[src/nHamiltonian and src/dyn]: The phase/state-consistency transformations (a.k.a local diabatization transformations)
are now applied directly to element of the nHamiltonian object right after the new diabatic-to-adiabatic transformation is computed
they are removed right before re-computing the time-overlaps at the next dynamical step. This way, the Hamiltonian properties
are well-behaved and can be used both the TSH and Ehrenfest methods. This makes the Ehrenfest method conserve energy even in the adiabatic
basis when NACs are used, as well as using the NAC-based integrators in the TD-SE integration of the TSH methods. This is a very
critical change that hopefully makes the current implementation more reliable and robust than before.
[src/dyn]: added themrally-correct NBRA (TC-NBRA) approach
[src/dyn]: initial implementations of the Exact Factorization (XF) and mixed quantum-classical XF (MQCXF) methods
[src/dyn]: Implemented MASH scheme
[src/dyn]: Implemented FSSH2 scheme of Leonardo Araujo
[src/dyn]: A new implementation of the DISH method, it is suitable for NBRA workflow too
[src/dyn/wfcgrid2]: Added a phase-consistency correction to the diabatic-to-adiabatic transformation matrices computed at all grid points.
This change is important since otherwise the kinetic energy calculations won't converge with dx due to highly-oscillatory behavior of the
wavefunction in regions of strong nonadiabaticity. With this correction, the energy conservation is now much more robust and the convergence
of kinetic energy w.r.t. the grid's dx is achieved. The wavefunctions are well-behaved too.
[src/math_meigen]: Added Cholesky decomposition of real matrices
[libra_py.models]: Added Ferretti Hamiltonian
[src/dyn]: added Voronoi tesselaiton scheme and initial conditions sampling based on it
[libra_py.dynamics.exact]: Added a new capability to the exact propagation function to save the wavefunction snapshots into files for their
later plotting and animation. Updated the corresponding functions' documentation.
[libra_py.packages.cp2k.methods]: Added analysis function for pdos, exc analysis, energy vs time to CP2K methods
3. Improvements and new minor capabilities
Dynamics
Made the velocity rescaling happening only if the initial and final states are different
Added the option to save the derivative coupling vectors along the trajectory
CP2K and NBRA
Fixed the cp2k input generator script so that the calculations are more robust, correct, and lead to convergences
Added new functionality to CP2K input generator for hybrid functionals
Updated CP2K input generator
Added new functions for computing MO coefficients + description of functions
Added "restart_file" parameter for step_2. It is useful for big systems to have the initial guess of SCF orbitals
Added isUKS implementation of open-shell systems. In Step3 of cp2k interacing-code, modified some functions to
account for systems with different numbers of electrons in alpha and beta channels.
QTSH
GWP
4. Bug fixes and documentation
src/dyn
Fixed the bug with the velocity rescaling of only the quantum nuclear DOFs
Fixed some bug that was breaking even normal FSSH, modified interface of the hop acceptance function to give a bit more flexibility
src/nHamiltonian
adiabstic one, also added new functions to transform the elements of the nHamiltonian class according to certain
transformation matrix, there are several kinds of such transformations with the same matrix - forward,backward, explicit, implicit or normalizing
DISH
QTAG
Models
CP2K
Added some documentation in the cp2k input generation module
Fixed reading of TDDFT data in CP2K v23 - a very important fix, because it sometimes led to strange
energies, especially of the ground state.
MFSD
approximation in computing MF forces, added some documentation on the related functions, fixed some bugs in MFSD -
the effective NAC calculations, momentum rescaling. The momentum rescaling and corresponding Hamiltonian update
functions are also added in the main dynamics module for MFSD. Fixed more bugs in the mfsd code - the calculations of the
Ehrenfest energies was not done correctly. Also, fixed the generic code for computing Ehrenfest energies - need to split by the trajectories
dynamics_plotting and data_visualize
updated the decomentation of the dynamics_plotting function that plots surface and fixed a bug of not having the
output directory to store figures produced
Revised dynamics_plotting and data_visualize modules, added some documentation, added new member functions to the dyn_variables class
step2 of NBRA
step3 of NBRA
Added new mapping module with fully revised math and simplified interface
DFTB+
Fixed some functions in DFTB+ package for it to be used in current NA-MD procedures, added documentation,
got rid of the critical params, replaced them by default onese, fixed a minor bug in the dftb run_step2 function
so the overlaps are now correct, changed the number of result objects returned by the do_step function
Fixed the DFTB+ methods for reading time-overlap matrices - made them more robust to the known problem of having NaN
and wrong values in the off-diagonal blocks of the super-molecule overlap matrix calculations
FT
5. Cleaning up
Removed deprecated dynamics tutorials
Removed the DFTB time-overlap calculation tutorials. Moved the tutorial to the Tutorials_Libra repo and revised it
Removed excessive output from libint2 code
Cleaned up some commented and unnecessary code in the Dynamics.cpp and related files
Revised the LZ workflow, removed deprecated or obsolete functionality and keywords
Removed the examples of ACF and FT calculations. Now moved to the Tutorials_Libra repository
This discussion was created from the release Libra with TC-NBRA, MASH, FSSH2, revDISH, revised TSH and Ehrenfest, phase-corrected exact calculations.
Beta Was this translation helpful? Give feedback.
All reactions