RMGDFT / rmgdft

RMG is an Open Source code for electronic structure calculations and modeling of materials and molecules. It is based on density functional theory and uses a real space basis and pseudopotentials.
GNU General Public License v2.0
47 stars 11 forks source link

TDDFT restart #57

Closed jjakowski closed 1 year ago

jjakowski commented 4 years ago

There seems to be an issue with restart capabilities in TDDFT. The dynamics seems to go smoothly from the last point pf previous simulation when restarted. However, in the long term the trajectory ot real-time TDDFT seems altered and discontinuous.

Below is an example of UVVIS dipole evolution for c60 when TDDFT was restarted after 1000 steps.

image

The red line corresponds to previous simulations and the green one to restarted. Although at first everything looks smooth. But when the overall time dependence of dipole is plotted then one can clearly see that the dynamics has been altered. and does not really follow the original, red curve trajectory:

image

jjakowski commented 4 years ago

.. here is the same TDDFT simulations but the initial TDDFT goes uninterrupted past the time=1000. The difference between "red" and "green" curves indicates an altered trajectory due to TDDFT restart:

image

jjakowski commented 4 years ago

It turns out that "potential acceleration" is large part responsible for the TDDFT dynamics issues. It acts as a un-physical kick perturbation potential and alters trajectory of TDDFT dynamics. Turning off potential acceleration (potential_acceleration_constant_step="0.0") drastically improves the quality of dynamics, as shown below for C60:

image

There is still however, some lingering issues with TDDFT restart. I did tests of TDDFT restart reproducibility with acceleration turned off.

Here is the plot for the same system: image

Here I made a checkpoint at time=450 and then I used it for a series of restarts (different colors). The green one correspond to a single trajectory starting from time=450 and ending at time =775. The red, blue and red are correspond to 3 different restarts done consecutive one after each other to mimic our working scenario. So basically one can expect that red-blue-red line should follow exactly the green line. However, only then first red piece follows the green line. This suggests that at the restart the TDDFT is not exactly done the same way as during the normal run.

Noticeably the amplitude of "blue" oscillations (after the restart at time=500) is higher.

WenchangLu commented 1 year ago

potential_acceleration ="0.0" for TDDFT