atomate2
atomate2 copied to clipboard
Improve failed perturbations handling in elastic workflow
I have seen a few cases where some pertubations of the elastic workflow fail and the elastic tensor is still calculated since on_missing_references
is set to NONE
. Due to the fact that sym_reduce
is True by default, the number of perturbations is already relatively small for highly symmetric systems. So, the result, although still somewhat reasonable, was wrong.
I think there are a few points that could be addressed to improve the current situation:
- there should probably be an option to disable this behaviour, since it may lead to wrong results. Especially if symmetry is used to reduce the number of perturbations.
- maybe a check should be performed in the
fit_elastic_tensor
and raise an error if too many perturbations have failed or, in a more advanced fashion, if all the perturbations concering one kind of strain failed. - If I am not mistaken, in case of failure of some of the perturbations, there is no obvious way of knowing that it happened just from the output database. It may be good to have a warning flag in the document or a list of the deformations that were supposed to be in the list of perturbations, but were not calculated. While this information could be retrieved from fireworks/jobflow_remote, it seems quite inconvenient and is not a given that the information will still be easily available at a later time.
What do you think? Did anybody else have these kind of issues?
Even though, I have build a force-field based elastic maker, I haven't tested it yet in so much detail but I think we should make it as safe as possible for users. Warnings and additional information on the fit should be available to the user.