VASP DOS calculations for metal Hexacyanoferrates

Hi all,

I am attempting to study metal hexacyanoferrates using VASP and have been having some issues reproducing DOS calcs from literature but I am unsure where I am going wrong. I am performing the calcs using spin polarization and GGA+U. I have tried both PBE and PBEsol pseudopotentials. All my calculations seem to converge just fine.

My current workflow is to perform a geometric optimization, followed by a single point calc, and then calculate the DOS. I can not upload the INCAR and OUTCAR files but am adding them to this google drive folder.

My main concern is that I am missing the energy state around 2 eV. For my calculations I have K+ in the interstitial spacing, but others have shown an energy state near there with potassium as well.

My current workflow is as follows with some input parameters:

  1. geometry optimization
  • ISTART = 0, ICHARG = 1, LWAVE = .TRUE., IBRION = 2
  1. Single point calc -->
    A) take CONTCAR from step one and make POSCAR
    B) use WAVECAR from step one to start single point calc
    A) Take chargcar from step 2 to start step 3
    B) CONTCAR from 2 to POSCAR for 3 (this should’nt be necessary but I do to be safe)
  • no ISTART, ICHARG = 11, NEDOS=10000

Which papers are you trying to reproduce?

Hi Shyamd,

Some of the papers that have similar DOS for K2Ni[Fe(CN)6] (or Na instead of K) are below. But also it looks like the system on MAterials Project also has the energy state around 2 eV (

Structure Distortion Induced Monoclinic Nickel Hexacyanoferrate as High‐Performance Cathode for Na‐Ion Batteries

Potassium Nickel Iron Hexacyanoferrate as Ultra-Long-Life Cathode Material for Potassium-Ion Batteries with High Energy Density

Density-functional-theory-predicted symmetry lowering from cubic to tetragonal in nickel hexa­cyano­ferrate

Which VASP potentials are you using? We use an old set of pseudopotentials circa ~ 2002 - 2004. We use the K_sv pseudopotential for Potassium as well, which might make a diff.

I appreciate your well-commented INCAR files :slight_smile:

It could be a difference in U value too, it looks like you’re using 3 eV and 6 eV whereas we use 5.3 eV and 6.2 eV for Fe and Ni respectively. The large difference in Fe U value will definitely have an effect.

Just a quick note that in your INCAR you have:

# Gaussian Smearing
SIGMA = 0.02

This is not Gaussian smearing, it’s tetrahedral integration (for which the SIGMA value has no effect). Just an FYI.



Thank you for the response.

I am using a running vasp 5.4.4 and the pseudopotentials are from 2007.

With respect to Mkhorton’s comment, I determined that it was in fact the U values. I was using values for U form literature where people presented DOS plots for the same system I am starting with. When I went with U_Fe=3.9 and U_Ni=5.3 there was a large drop in TOTEN and the final DOS had the proper energy band around 2eV. I then ran the system again, changing U_Fe (4.3) and U_Ni (5.7) but keeping the different constant and got the proper system again.

I had one question regarding U and the ability apply values to similar systems. For example, if I optimize the K2Ni[Fe(CN)6] energy with respect to U_Fe and U_Ni, and then substitute in a different metal for Ni but keep U_Fe the same.

My study is on the MnxNi1-x[Fe(CN)6] system. Ni[Fe(CN)6] and the mixed metals are all cubic while Mn[Fe(CN)6] is monoclinic. My idea was to optimize the Ni system, take the U_Fe and fix it while optimize the U for Mn in the monoclinic system, and then use U_Fe, U_Ni, and U_Mn for the mixed metals.

Is this a valid approach?

Thank you for all of the help.



I had one question regarding U and the ability apply values to similar systems. For example, if I optimize the K2Ni[Fe(CN)6] energy with respect to U_Fe and U_Ni, and then substitute in a different metal for Ni but keep U_Fe the same.

There are a lot of differing opinions on this. In principle, U values are element, system and site dependent. Pragmatically, people tend to use fixed U values for specific elements, perhaps varying them depending on what anions are present.

My own opinion on this is that optimizing a U value to fit an experimentally-known band gap is not appropriate, since it is not the “job” of the U to fix the band gap (though, in practice, a good U value will give a DFT-predicted band gap that is closer to its correct value). But finding a good way to fit a U value is difficult.

There are also ways to calculate a U value on a per-site, per-system basis via linear response methods, and this is possible with VASP too (there are tutorials online).

That all makes sense. I will take a stab at optimizing U per the vasp wiki. It seems not too difficult of a procedure. Luckely the systems are rather symmetric.

I guess the last question would be then is there ever coupling or correlation of U values making it not reasonable to independently determine each one.

There’s no easy answer there either. To get a truly self-consistent answer is difficult. I’m personally by no means an authority on this, there’s been some good work on reach self-consistency, e.g. see some discussion here from Timrov et al.

I think, depending on the computational resources you have available, if you’re interested in the DOS I would skip the U altogether and calculate with a higher-level theory like HSE06. There’s still the question of how you get the input geometry however.