Spin contamination for calculations including iron


Click here for full thread
Forum Regular
There is a small bug in the code when it comes to calculating the exact value of S2 for cases where the number of beta electrons is greater than the number of alpha electrons. The code always calculates the exact S2 as 0.5*(N_alpha - N_beta)*(0.5*(N_alpha - N_beta) + 1). This formula is only going to be correct if the number of alpha electrons (N_alpha) is greater than the number of beta electrons (N_beta). This is why in the fe2dft.nw example the exact value goes from 8.75 to 3.75 when clearly they should be the same for multiplicities of 6 and -6. The last exact S2 value for this input is 0.0 as would be expected from the simple formula given above, but you have created an open-shell singlet and the calculated value of S2 is 5.0 as would be expected given the arrangement of the electrons. So in this case you are getting essentially no spin contamination.

For your iron oxide example, when I optimized the geometry starting in the -1 state (i.e. I did not first optimize in the -3 state), my calculated S2 was 0.7745 for the optimized geometry. This seems like a reasonable amount of spin contamination to me. Doing as you suggest (first -3 then -1) I end up with a different structure with a significant amount of spin contamination. DFT does not often play well with transition metals so I would carefully check your results to see if you are getting reasonable orderings of the molecular orbitals.