Parser warnings policy¶
As a rule of thumb, always include two keys in the output parameters of a
calculation, warnings
and parser_warnings
. These two keys contain
a list of messages (strings) that are
useful for debugging problems in the execution of calculations.
Below are the guidelines for the usage of the keys
warnings
and parser_warnings
in the output parameters of a calculation.
Warnings¶
These should be devoted to warnings or error messages relative to the execution of the code. As a (non-exhaustive) list of examples, for Quantum-ESPRESSO, run-time messages such as
Maximum CPU time exceeded.
c_bands: 2 eigenvalues not converged
Not enough space allocated for radial FFT
The scf cycle did not reach convergence.
The FFT is incommensurate: some symmetries may be lost.
Error in routine [...]
should be put in the warnings. In the above cases the warning messages are
directly copied from the output of the code, but a warning can also be
elaborated by the parser when it finds out that something strange went on
during the execution of the code. For QE an example is
QE pw run did not reach the end of the execution.
Among the code-based warnings, some can be identified as ‘’critical’‘, meaning
that when present the calculation should be set in FAILED
state.
There should be an internal list in the parser, e.g. critical_messages
, defining
such critical warnings.
Other non-critical warnings instead might be used to signal the presence of some
possible source of troubles, but that nevertheless did not prevent the calculation
to be considered FINISHED
.
Parser_warnings¶
These should be reserved to warnings occurring during parsing, i.e. when the parser does not find an information it was looking for in the output files. For Quantum-ESPRESSO (PW), for instance (implemented in the aiida-quantumespresso package) examples are
Skipping the parsing of the xml file.
Error while parsing for energy terms.
- etc.
Therefore, these warnings should be placed just to notify that the output was not found in the way the developer had expected, and they signal the necessity of improving the parser code.