aiidateam / aiida-quantumespresso

The official AiiDA plugin for Quantum ESPRESSO
https://aiida-quantumespresso.readthedocs.io
Other
52 stars 77 forks source link

Support restart from file when ionic minimization cycle did not converge after the maximum number of steps. #938

Open superstar54 opened 1 year ago

superstar54 commented 1 year ago

In the case exit status 502: The ionic minimization cycle did not converge after the maximum number of steps. Another iteration starts using the from scratch, as shown in the report (no ionic convergence but clean shutdown: restarting from scratch but using output structure.)

Because this is a clean shutdown, one could also restart from the file. This is very important for the system that is difficult to converge the electronic step. It is also useful for large systems.

mbercx commented 1 year ago

Hmm, I think @sphuber once raised a reason to restart from scratch, but I'm not sure anymore why. I would tentatively at least be in favor of using the charge density.

With regard to restarting for geometry optimizations, I'm also wondering if it doesn't make more sense not to return an output_structure for the PwCalculation, but rely on ion_positions instead. Not sure how useful a non-converged intermediary structure is.

sphuber commented 1 year ago

Hmm, I think @sphuber once raised a reason to restart from scratch, but I'm not sure anymore why. I would tentatively at least be in favor of using the charge density.

I have also been scratching my head, but can also no longer think why. Given that the handler deals with exit codes that correspond to clean shutdowns (as reported in the handler message) so it should be perfectly fine to restart from the charge density as well.

With regard to restarting for geometry optimizations, I'm also wondering if it doesn't make more sense not to return an output_structure for the PwCalculation, but rely on ion_positions instead. Not sure how useful a non-converged intermediary structure is.

I disagree with this. I think for consistency, the PwCalculation should always attach the output structure, even if not fully converged. It will also make it easier to restart from the intermediate calculation later, at which point the working directory may already be long gone, and restarting using ion_positions will not work.