aiida-vasp / parsevasp

A general parser for VASP
MIT License
13 stars 13 forks source link

incar_tags.yml does not contain all possible values or defaults #29

Open zhubonan opened 4 years ago

zhubonan commented 4 years ago

Tag ICHARGE can have value 0,1,2,4 as well as 11 and 12.

But in incar_tag.yml, only 0, 1, 2, 4 are allowed. https://github.com/aiida-vasp/parsevasp/blob/5e8a3c6b487911cf513560c248366403791adf36/parsevasp/incar_tags.yml#L821-L830

As a result, aiida-vasp plugin refuses to run calculations with ICHARGE=12. Maybe to value checking should be off by default to give a bit more flexibility? Correction - this is due to spelling mistake the tag should be ICHARG rather than ICHARGE.

I am also wondering how incar_tag.yml is generated.

espenfl commented 4 years ago

@zhubonan Yes, this is true. First of, we do not yet check for the value, only that the key exists in this file. So all the extra information is currently redundant. However, the plan is that we will do this at some point. This includes checking that the keys are valid (of course we need to have a developer mode, or override), but also that the current value is valid. We could also use defaults and maybe most important, but also the most complicated is to be able to cross check, such that if there is two or more variables that have incompatible values, user gets notified.

The file is currently generated by pulling the information in their wiki. And this is unfortunately not yet fully complete or consistent with respect to default and allowed values. We are working with the VASP developers to try to figure out a solution to this that is also convenient for them. It would for instance be nice if we could have some kind of master file that handles the definition of these for everyone. Could be pulled from the docstring in the VASP code or similar, but that is a rather extensive task.

espenfl commented 4 years ago

I changed the title to reflect that this is more general than ICHARGE. It will most likely take some time before we have a file that is more complete.

zhubonan commented 4 years ago

Thanks for the reply. Yes, indeed the value is not checked at the moment. I just found out that my problem is actually due to misspelling - it should be ICHARG rather than ICHARGE, rookie mistake! Sorry, I should have spotted this.

The tag validation did catch it correctly.

espenfl commented 4 years ago

Okey, great. Then that works at least. In fact I believe getting this framework in place would be really useful. But we need to do some more work with the VASP group, which is likely to take some more time.

zhubonan commented 4 years ago

That would be great. They must have a list of all possible values. I checked the wiki page that ICHARG=11 is not in the first line stating all allowed values....

espenfl commented 4 years ago

Yes, so I would prefer that we/they create some kind of master file that is also used to generate their docs. Then we just tap into that. Also, having that file versioned separately from the source code would make it easier for users to follow changes and updates.