Spin polarized calculation

Why do I have to initialize the spin polarization?

The data block DM.InitSpin sets up the initial density matrix to start the self-consistency cycle. The initialization is needed because:

  • The non-polarized solution is still a solution (saddle point but a minimum until you break the spin symmetry), if both spin up and spin down densities were equal at the start they would remain equal till the end. (SIESTA defaults to a vanilla ferromagnetic initialization when spin polarized is true, just to allow the calculation to escape the spin-symmetric solution).
  • If the solution (minimum) is spin-polarized, there is always more than one (e.g. if there is a ferromagnetic solution, there will be always at least two, total spin being up or down). There can also be different minima as ferromagnetic and antiferro, etc. As in any minimization with local minima, you will find one or the other depending where you start from. What matters at the end is the actual minima (solutions), especially the one (ones) with lowest energy. But you have to find them and for that you have to try different starting points.

The spin polarization at the end of the SCF will be whatever spin-polarized DFT predicts including the spin polarization on atoms that you did not include in the DM.InitSpin block.