I am wondering if there is a detailed explanation about how ASE chooses the INCAR tags, since VASP already provides default values for a lot of tags, does ASE choose the default values? There are a few parameters that might be tricky, for example, ISMEAR should be different for different systems, it depends on whether the system is metal or semiconductor. My question is: How does ASE choose the INCAR tags smartly or does ASE just choose the default values?


1 Answer 1


ASE in general picks the VASP default, by simply not including the tag if not directly asked for. This is done by setting the tag to "None" which has no meaning in VASP. Then when the INCAR is generated, the tag is simply not output, leaving VASP to fall back on its default behavior.

For things such as the functional, ASE does attempt to set up things as properly as possible with regards to the VASP manual. The "recommended" setup dataset also corresponds to the VASP wiki recommended pseudopotentials.

ASE does not set any defaults based on metal vs semiconductor, I vaguely think Pymatgen might have some functionality for this though.

If you do not set kpoints, the gamma point will be used, however you must request the vasp_gam executable for the speedup associated with gamma point only calculations manually.

  • $\begingroup$ what about the k-points? I see some examples don’t provide k-points explicitly. $\endgroup$
    – Jack
    Commented Jan 6, 2022 at 7:07
  • $\begingroup$ Added some kpoint information. $\endgroup$ Commented Jan 6, 2022 at 7:52
  • $\begingroup$ Thank you for your kindly help. Is there any tutorial that helps me to work through the standard process of structure optimization=> self-consistent field calculation=>Band structure calculation? I find there are some videos on the official website, but it is more like an introduction instead of a tutorial. $\endgroup$
    – Jack
    Commented Jan 6, 2022 at 7:59
  • 1
    $\begingroup$ "I vaguely think Pymatgen might have some functionality for this though." By default, Pymatgen does not do much with regards to metal vs. semiconductors. It will print out a few warnings, e.g. here for instance if it thinks you're using the wrong ISMEAR with a metal. It can also set KSPACING based on the band gap. But otherwise, it doesn't matter if the material is a metal or semiconductor in terms of the inputs. $\endgroup$ Commented Jan 6, 2022 at 9:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .