Open behnle opened 1 month ago
Hi there @behnle,
Thank you very much for this report and #227 (I will answer there separately. We will take a look, indeed, it seems that the touching columns might be the problem.
I just wanted to let you know that we are also in the process of transferring parsers to individual repositories, as part of being individual plugins. This will happen during the summer.
I think we could: transfer the CP2K parser to its individual repo-plugin, and also fix there your issues. Is this OK for you or are you in some deadline for which you need the parser fix as soon as possible?
Hi @JosePizarro3, thanks for the quick response. No, i personally do not have any deadline. It was one of my users who ran into this, i am just responsible for operating our NOMAD OASIS and giving user support. For me it is not super urgent, OTOH, if this could be included in the NOMAD release container sooner or later, i would not complain.
Cool, then I will put CP2K as one of the first parsers to transfer to its own repo plugin 👍🏻
As you operate the OASIS, one of the good things about this new plugin mechanism is that you can directly "plug in" the specific parser into your oasis without having to wait for a container release.
The CP2K parser dies when Kerker type mixing is applied in the following way:
The resulting SCF iteration printout will then look as follows
as opposed to the output with default mixing:
In essence, the parser crashes on the output using Kerker mixing with
I tracked this down to
time_initial
first being initialized correctly, but while parsing the second SCF iteration,time_initial
is initialized toNone
, the reason being thatsec_scc.scf_iteration
does exist butsec_scc.scf_iteration[-1].time_physical
is empty. https://github.com/nomad-coe/electronic-parsers/blob/e7d1ffe0615d5eb68955705cbed5809b9dca71d1/electronicparsers/cp2k/parser.py#L1582-L1584 This propagates until line 1630/1631, where a value in seconds is added toNone
, causing the parser to crash: https://github.com/nomad-coe/electronic-parsers/blob/e7d1ffe0615d5eb68955705cbed5809b9dca71d1/electronicparsers/cp2k/parser.py#L1629-L1631Complete input and output which crashes the parser: H2O_regprint.inp.txt H2O_regprint.out.txt
Input and output which processes smoothly for comparison: H2O_regprint_nokerker.inp.txt H2O_regprint_nokerker.out.txt (strip the .txt extension for testing) (that the final energies with Kerker mixing and with default mixing differ significantly from each other is a different story...)
The root cause for the issue is probably that in the defunct case, the second and the third column of the SCF iteration output are merged together so that the parser thinks that there is one column less.
Proposed fix: Make the parser somehow immune against columns that touch each other directly. Easier said than done, i know :-)
NOMAD version: 1.2.2.dev465+gc6aff391 in standalone parser development mode Electronic parser: latest from Github CP2K version: 2024.1